Modelos de Projeto

O PowerPortalsPro traz dois modelos de projeto que estruturam um portal completo — conectividade, autenticação, manipuladores de segurança, localização e páginas de identidade pré-construídas — prontos para rodar em minutos. Um aplicativo React de página única (recomendado) e um aplicativo web Blazor estão ambos disponíveis, e o conjunto de recursos PowerPortalsPro é idêntico em ambos. Escolha a stack de front-end que se encaixe no seu time.

Instalação dos Templates

Instale o pacote PowerPortalsPro.AspNetCore.Templates do NuGet usando a CLI .NET. Ambos os templates vêm neste único pacote:

Escolhendo um Modelo

Uma vez instalado, crie um projeto a partir da CLI .NET ou do diálogo "Novo Projeto" do Visual Studio (procure por "Power Portals Pro"). Dois modelos estão disponíveis — escolha aquele que combina com sua pilha front-end:

React (recomendado)

Um host ASP.NET Core combinado com um aplicativo de página única React + Vite + TypeScript construído no Fluent UI React. Recomendado para novos portais — ferramentas modernas de front-end, um ciclo de desenvolvimento rápido com recarga a quente e o conjunto de componentes mais amplo.

Blazor

Um aplicativo web ASP.NET Core Blazor construído sobre o Fluent UI Blazor, com um modo de renderização que você escolhe no momento do andaime via --interactivity. É um ótimo encaixe quando sua equipe trabalha principalmente em C# e prefere ficar totalmente na pilha de interface do .NET.

Recomendado

Ambos os templates expõem as mesmas capacidades do PowerPortalsPro — grades, editores, segurança, localização e identidade. Sugerimos o React para novos projetos, a menos que sua equipe tenha um motivo específico para permanecer totalmente em C#, caso em que o template do Blazor é totalmente suportado.

O Modelo React

O powerportalspro-react template gera dois projetos que rodam juntos:

Modos de Interatividade Blazor

O template Blazor também aceita --interactivity Server, --interactivity WebAssembly, ou --interactivity Auto escolher seu modo de renderização (o template React é sempre um aplicativo de página única, então não tem opção equivalente). Escolher um modo logo de cara só afeta o layout do projeto gerado — o próprio PowerPortalsPro roda corretamente nos três. Veja a página Blazor Interactivity para uma comparação completa.

Dica

A --interactivity bandeira corresponde à bandeira do template padrão dotnet new blazor com o mesmo nome, então tudo que você já sabe sobre os modos de renderização do Blazor é mantido.

O que está incluído

O modelo gera um projeto de portal totalmente funcional com o seguinte:

Entendendo Program.cs

O Program.cs arquivo é onde todos os serviços são registrados e o pipeline de aplicação é configurado. Aqui está uma divisão de cada seção:

Modelo React

O guia abaixo descreve o modelo Program.csBlazor . O host do template React registra os mesmos serviços centrais — AddPowerPortalsProWebServer(), o Dataverse ConnectionOptions, localização, manipuladores de segurança e e-mail — mas omite o registro específico AddPowerPortalsProWebBlazorFluentUI() do Blazor, serve o React SPA e expõe os endpoints de autenticação via MapAuthEndpoints<PortalUser>() em vez de MapAdditionalIdentityEndpoints().

Cache distribuído

O template registra um cache distribuído baseado em memória. Em produção, substitua isso por um cache persistente como Redis ou SQL Server para melhor desempenho em múltiplas instâncias.

Registro Fluent UI

AddPowerPortalsProWebBlazorFluentUI() registra todos os componentes do Fluent UI Blazor usados pelos editores, grids e componentes de layout do PowerPortalsPro.

Serviços de servidor

AddPowerPortalsProWebServer() registra os serviços principais do lado do servidor, incluindo a camada de acesso a dados do Dataverse, aplicação de segurança, pipeline de interceptores e carregamento de localização.

Conexão Dataverse

A ConnectionOptions configuração especifica como o portal se autentica com o Dataverse. O modelo utiliza autenticação por Segredo do Cliente com credenciais armazenadas em appsettings.json ou Segredos de Usuário.

Dica

Para melhores práticas de segurança, armazene suas credenciais em Segredos de Usuário durante o desenvolvimento e no Azure Key Vault ou variáveis de ambiente em produção. Nunca comprometa segredos com o controle de versão.

Configuração de Localização

AddLocalizationDirectory registram diretórios contendo arquivos JSON de localização. Por padrão LocalizeAllAvailableTables é true, então rótulos, nomes de colunas e nomes de visualização são retirados automaticamente de todas as tabelas do Dataverse. Defina para false e use AddTableToLocalize / AddTablesToLocalize para restringir a localização a uma lista explícita.

Opções de Identidade

A IdentityOptions seção configura ASP.NET configurações de Identidade Central, como exigir confirmação por e-mail antes do login.

components.PowerPortalsPro.Demo.Client.Customizations.Pages.GettingStarted.ProjectTemplatesPage.program-translation-title

components.PowerPortalsPro.Demo.Client.Customizations.Pages.GettingStarted.ProjectTemplatesPage.program-translation-description

Dica

components.PowerPortalsPro.Demo.Client.Customizations.Pages.GettingStarted.ProjectTemplatesPage.program-translation-note

Registro de Manipuladores de Segurança

Os manipuladores de permissão são registrados no contêiner DI para controlar o acesso CRUD para cada tabela. O modelo inclui handlers para Conta (acesso total) e Contato (somente leitura com atualizações baseadas no proprietário).

Configuração do E-mail

Ele EmailServiceOptions configura o endereço de e-mail do remetente usado para confirmação de conta e redefinição de senha. Isso é enviado pelo serviço de e-mail Dataverse.

Autenticação Microsoft (Opcional)

O modelo inclui código comentado para adicionar autenticação Microsoft Entra ID (Azure AD). Descomente e configure seu ID de Cliente e seu Segredo para habilitar login externo via contas Microsoft.

Middleware Pipeline

UsePowerPortalsProWebServer() adiciona o middleware PowerPortalsPro. UseLocalization() Habilita o sistema de localização. MapAdditionalIdentityEndpoints() registra o endpoint de login baseado em cookies usado pelas páginas de identidade.

Autenticação em Dois Fatores (Opcional)

O modelo inclui código comentado para habilitar a Autenticação de Dois Fatores usando códigos baseados em e-mail. Descomente a AuthenticatorTokenProvider opção e a AddDefaultTokenProviders() chamada para ativá-la.

Customizações Comuns

Após a estrutura do projeto, aqui estão os próximos passos comuns: