Soluções

Concluído

As soluções são contêineres que rastreiam e gerenciam personalizações em um ambiente do Dataverse. As soluções são usadas para transportar aplicativos e componentes de um ambiente para outro ou aplicar um conjunto de personalizações a aplicativos existentes.

Quando há vários ambientes, cada um tem seu próprio conjunto de soluções.

Diagrama que mostra o ambiente de visão geral da Solução.

Observação

Quando você tem um aplicativo Microsoft Dynamics 365, como o Sales, o aplicativo é instalado usando a mesma estrutura de soluções. Os ISVs também enviam seus produtos usando soluções.

As características das soluções são:

  • Incluem metadados e determinadas entidades com dados de configuração. As soluções não contêm dados comerciais.
  • Contém muitos componentes diferentes do Microsoft Power Platform, como aplicativos baseados em modelo, aplicativos de tela, mapas de sites, fluxos, tabelas, metadados de tabelas, colunas, formulários, visualizações, regras de negócios, definições de processos, conectores personalizados, recursos da Web, escolhas, gráficos e componentes que são criados por desenvolvedores, como scripts ou código compilado.
  • São empacotadas como uma unidade a ser exportada e importada para outros ambientes, ou são desconstruídas e verificadas no controle de origem como código-fonte para ativos.
  • São usadas para aplicar alterações a soluções existentes.

Tipos de soluções

Os dois tipos de soluções são:

  • Não gerenciada: usada durante o desenvolvimento e para transporte para outros ambientes de desenvolvimento.
  • Gerenciada: usada para distribuição para ambientes que não são de desenvolvimento.

Se usa soluções não gerenciadas em ambientes de desenvolvimento enquanto se faz alterações de configuração no aplicativo. As soluções são exportadas como não gerenciadas e, depois, são verificadas no sistema de controle de origem. As soluções não gerenciadas devem ser consideradas como fonte.

Use soluções gerenciadas para implantar em qualquer ambiente que não seja de desenvolvimento, incluindo teste de aceitação de usuários (UAT), teste de integração do sistema (SIT) e ambientes de produção.

As soluções gerenciadas podem ser reparadas (atualização, correção e exclusão) independentemente de outras soluções gerenciadas. Como uma prática recomendada de ALM, as soluções gerenciadas devem ser geradas por um servidor de compilação e consideradas um artefato de build.

Camadas da solução

As camadas de solução descrevem a cadeia de dependência de um componente da solução raiz que o apresenta, por meio de cada solução que estende ou altera o comportamento do componente. As camadas são criadas por meio da extensão de um componente existente (usando uma dependência) ou da criação de um novo componente ou versão de uma solução.

O nível de solução é implementado em um nível de componente. Existem soluções gerenciadas e não gerenciadas em diferentes camadas em um ambiente Microsoft Dataverse. O Dataverse tem duas camadas distintas:

  • Camada não gerenciada: todas as soluções importadas e não gerenciadas e as personalizações especializadas ficam nessa camada. Todas as soluções não gerenciadas compartilham uma única camada não gerenciada.
  • Camada gerenciada: todas as soluções importadas e gerenciadas e a solução do sistema ficam nesse nível. Quando várias soluções gerenciadas são instaladas, a última instalada é acima da solução gerenciada instalada anteriormente. Portanto, a segunda solução instalada pode personalizar a que foi instalado antes dela. Quando duas soluções gerenciadas têm definições conflitantes, o comportamento do tempo de execução prioriza a mais recente ou uma lógica de mesclagem é implementada. Se você desinstalar uma solução gerenciada, a solução gerenciada abaixo terá efeito. Se você desinstalar todas as soluções gerenciadas, o comportamento padrão definido na solução do sistema será aplicado. A camada do sistema está na base do nível de camadas gerenciadas. A camada do sistema contém as entidades e os componentes necessários para que a plataforma funcione.

Diagrama que mostra as camadas da solução.

Os arquitetos de soluções precisam decidir o número de soluções que serão usadas para sua solução comercial. Embora você possa trabalhar com uma única solução, isso poderia levar a dependências em lançamentos e as soluções grandes podem levar muito tempo para serem exportadas e importadas. A maioria dos projetos usa várias soluções. Os arquitetos de soluções devem compreender o comportamento de mesclagem quando uma solução é atualizada ou quando várias soluções instaladas afetam o mesmo componente.

No exemplo a seguir, quatro soluções foram usadas: o Common Data Model Healthcare Accelerator, uma solução Contoso Commom e duas soluções em camadas que contêm aplicativos. Por exemplo, o formulário contato é personalizado na extensão Common Data Model Healthcare. Os mesmos elementos de formulário são modificados na solução Contoso Common. Os usuários verão as alterações da solução Contoso Common.

Diagrama mostrando exemplos de camadas de solução.

Estrutura da solução

As estratégias para a criação de soluções, listadas na ordem de mais simples à mais complexa, são:

  • Solução única
  • Várias soluções
  • Várias soluções com componentes compartilhados

Ao criar uma solução única, você estabelece um conjunto de personalizações em execução. Essa abordagem facilita a localização de itens que foram personalizados. Além disso, essa abordagem é recomendável quando você deseja criar uma única solução gerenciada. Se você acha que talvez precise dividir a solução no futuro, considere o uso de várias soluções.

Se você tem duas soluções não relacionadas que não compartilham componentes, a abordagem mais direta é criar duas soluções não gerenciadas.

Você pode ter várias soluções que compartilham componentes. Você pode ter um determinado conjunto de funcionalidades comuns em várias soluções. Essa funcionalidade comum é compatível com qualquer uma das outras funcionalidades exclusivas de cada solução. Alguns componentes podem ser incluídos em mais de uma solução, desde que todas as alterações feitas neles sejam compatíveis com todas as outras soluções que as usam. É importante que todas as soluções compartilhem o mesmo fornecedor de soluções. Se o fornecedor da solução não for idêntico, não será possível instalar mais do que uma soluções.

Regras que você deve seguir com soluções:

  • Crie um fornecedor de soluções e o use para todas as soluções.
  • Não use o fornecedor padrão, a solução padrão ou a solução Dataverse padrão.
  • Mantenha a estrutura da solução o mais simples possível.
  • Evite marcar a caixa de seleção Incluir todos os componentes, a menos que você adicione uma tabela não gerenciada.
  • Inclua metadados de tabela somente quando estiver alterando as propriedades da tabela.
  • Adicione os subcomponentes de uma tabela (colunas, formulários, visualizações, etc.) somente quando estiverem sendo alterados.

Adicionar somente o que é necessário para uma solução é conhecido como segmentação de uma solução.

Captura de tela que mostra a adição de uma tabela.

Ao decidir como segmentar uma ou mais soluções, considere o seguinte:

  • Use várias soluções somente para uma finalidade tangível, pois várias soluções adicionam complexidade.
  • Várias soluções que compartilham componentes devem ser evitadas.
  • Várias soluções exigem seus próprios ambientes para garantir que permaneçam independentes.
  • Cuidado ao gerenciar dependências.
  • Os criadores devem saber em que solução colocar novos componentes.
  • Os padrões comuns de várias divisores de solução são particionamento horizontal e vertical.

Divisão da solução horizontal

A divisão horizontal refere-se à criação de soluções que contêm somente componentes do mesmo tipo.

Diagrama da divisão de solução horizontal.

Camadas de soluções verticais

A camada vertical agrupa componentes em áreas funcionais. Normalmente, você terá uma base compartilhada/solução comum com soluções separadas para cada área de negócios principal.

Diagrama que mostra as camadas verticais da solução.

Você pode combinar particionamento vertical e horizontal, por exemplo, a base que contém todas as tabelas e processos com soluções separadas para cada aplicativo.