Compartilhar via


Organize suas soluções

Antes de criar soluções, reserve algum tempo para planejar com antecedência sua estratégia de ambiente e sua estratégia de solução. Considere os seguintes aspectos:

Aspecto Consideração
Escopo do aplicativo Sua implementação abrange vários aplicativos, como Vendas, Atendimento ao Cliente, Serviço de Campo, Finanças etc.?
Cadência de versão Com que frequência você planeja implantar atualizações na produção?
Sua metodologia de entrega é baseada em práticas ágeis, como ciclos de sprint?
Suporte à produção Como você lida com correções urgentes na produção sem introduzir novos recursos prematuramente?
Arquitetura da solução Quantas soluções você gerencia?
Essas soluções compartilham componentes ou dependem umas das outras?
Planejamento de ambiente Quantos ambientes do Microsoft Dataverse você precisa para dar suporte ao ciclo de vida de desenvolvimento?
Você precisa de ambientes separados para desenvolvimento, teste e produção?
Os desenvolvedores trabalham de forma colaborativa em um ambiente compartilhado ou exigem ambientes isolados para trabalhar de forma independente?

As seções a seguir descrevem três estratégias, organizadas das mais simples às mais complexas e realçam suas respectivas vantagens e desvantagens.

Estratégia de solução única

Todas as personalizações são agrupadas em uma solução não gerenciada durante o desenvolvimento, que posteriormente é exportada como uma única solução gerenciada para implantação.

Recomendado para:

  • Implementações de pequena e média escala
  • Cenários em que a modularização futura é improvável
Vantagem Desvantagem
Configuração e gerenciamento de ambiente simplificados. Requer mais esforço para dimensionar ou modularizar mais tarde, se necessário.
Implantação simplificada. Com apenas uma solução para gerenciar, exportar e importar entre ambientes é simples e menos propenso a erros. Uma única solução que contém um grande número de personalizações pode resultar em tempos de implantação mais longos. Para reduzir o tamanho da solução, use a segmentação de tabela. Para reduzir os tempos de importação, vá para recomendações de desempenho.
Mais fácil localizar, auditar e gerenciar alterações. Quando vários desenvolvedores trabalham no mesmo ambiente de desenvolvimento, eles correm o risco de sobrescrever as alterações uns dos outros. Esse risco pode ser reduzido implementando o controle de versão do código-fonte, adotando uma estratégia de ramificação e usando um ambiente de desenvolvimento dedicado para cada branch. A estratégia de controle de versão e ramificação de código-fonte fornece controle de alterações, suporte à colaboração e mecanismos de resolução de conflitos. Mais informações: adotar uma estratégia de ramificação do Git.

Nota

Melhorias recentes no Microsoft Power Platform reduziram os tempos de importação para soluções gerenciadas, incluindo aquelas que usam a opção de atualização. Essas otimizações incluem melhor tratamento de dependências de componentes e sobrecarga reduzida para componentes inalterados. Para saber como se beneficiar dessas melhorias, acesse as recomendações de desempenho.

Várias soluções no mesmo ambiente de desenvolvimento

Várias soluções não gerenciadas são mantidas em um único ambiente de desenvolvimento, cada uma normalmente dedicada a recursos ou módulos não relacionados.

Recomendado para:

  • Implementações de pequena e média escala com áreas funcionais distintas e independentes que não compartilham componentes.
Vantagem Desvantagem
Configuração e gerenciamento de ambiente simplificados. Manter várias soluções não gerenciadas no mesmo ambiente de desenvolvimento aumenta a probabilidade de conflitos de dependência. Por exemplo, você pode encontrar uma situação em que a Solução A não pode ser importada porque depende da Solução B, enquanto a Solução B não pode ser importada porque depende da Solução A.
As áreas funcionais podem ser implantadas independentemente umas das outras. Vários desenvolvedores que trabalham no mesmo ambiente de desenvolvimento podem sobrescrever mutuamente as alterações. Trabalhar em uma solução não gerenciada não fornece isolamento. Cada modificação é aplicada diretamente ao ambiente, independentemente de qual solução esteja sendo editada.

Nota

Quando você tem várias soluções no mesmo ambiente de desenvolvimento, depois de importar as soluções gerenciadas para seu ambiente de destino, você geralmente está criando camadas. Mais informações: Camadas de solução e comportamento de mesclagem

É importante que você:

  • Não inclua o mesmo componente não gerenciado em mais de uma solução.
  • Utilize apenas uma solução que inclua todas as suas tabelas. Não tenha duas soluções diferentes em que ambas contêm tabelas. Isso ocorre porque frequentemente há riscos de relação única entre as tabelas, o que cria uma dependência entre soluções e causa problemas de atualização ou exclusão da solução no ambiente de destino posteriormente.
  • Use apenas um editor de soluções. O editor de soluções é proprietário dos componentes de uma solução gerenciada e sua associação não pode ser alterada posteriormente. Por exemplo, se uma tabela personalizada for importada como gerenciada por meio da Solução A com o Publisher X, você não poderá mover essa tabela posteriormente para a Solução B com o Publisher Y. A única opção é excluir a tabela, atualizar a Solução A para remover a tabela do sistema de destino e recriar a tabela na Solução B com o Publisher Y e importar a Solução B. Esse processo resulta na perda de todos os dados armazenados na tabela personalizada, a menos que sejam migrados com antecedência.
  • Evite criar dependências entre soluções. As dependências impõem uma ordem de importação e podem causar problemas. Por exemplo, se você tiver uma solução para tabelas e outra para fluxos na nuvem, e um fluxo depender de uma coluna personalizada, ele funcionará durante o desenvolvimento porque a coluna existe. No entanto, se apenas a solução de fluxo de nuvem for importada para o ambiente de destino, o processo de importação poderá não reconhecer a dependência na coluna personalizada. Como resultado, a solução de fluxo é instalada com êxito, mas o fluxo em si não funciona. Mais informações: exemplos de dependências criadas por várias soluções

Exemplos de dependências criadas por várias soluções

  • Faixas de opções do aplicativo. Quando várias soluções modificam a faixa de opções do aplicativo ou o mapa do site do mesmo aplicativo.
  • Plug-ins ou fluxos de nuvem. Se o plug-in ou o fluxo disparar em uma coluna personalizada ou atualizar uma tabela personalizada, o objeto dependerá dessas tabelas personalizadas.
  • Funções de segurança. Quando as tabelas personalizadas existem, as funções de segurança normalmente dependem dessas tabelas para acesso do usuário.

Várias soluções com ambientes de desenvolvimento dedicados

Essa estratégia envolve o desenvolvimento de cada solução não gerenciada em seu próprio ambiente de desenvolvimento isolado do Dataverse. Essa estratégia é comumente usada em arquiteturas modulares em que, por exemplo, diferentes aplicativos, como Vendas, Atendimento ao Cliente ou Serviço de Campo, são criados e mantidos de forma independente. Uma solução base que contém componentes comuns (por exemplo, tabelas de conta e contato) é criada e implantada como uma solução gerenciada em cada ambiente de desenvolvimento específico do aplicativo. Cada aplicativo então tem sua própria solução não gerenciada, em camadas sobre a solução gerenciada base, permitindo que as equipes estendam a funcionalidade sem alterar a base.

Recomendado para:

  • Projetos empresariais em larga escala.
  • Equipes com vários desenvolvedores ou parceiros
  • Cenários que exijam governança estrita e pipelines de CI/CD.
Vantagem Desvantagem
Mais fácil de crescer e evoluir seu sistema adicionando ou atualizando módulos sem afetar outras pessoas. Maior sobrecarga de infraestrutura e manutenção.
Várias equipes podem trabalhar em paralelo em módulos diferentes sem entrar em conflito com as alterações umas das outras. Requer uma estratégia e governança de ambiente robustas.
Mais fácil implementar testes automatizados e práticas de DevOps. Implantação mais complexa.
Soluções menores são mais rápidas de implantar, especialmente em pipelines de CI/CD se você precisar implantar apenas um aplicativo específico.
Problemas ou regressões são mais fáceis de rastrear quando as alterações são isoladas dentro de módulos específicos.

Como criar camadas de solução

Nota

Antes de criar as soluções nas etapas a seguir, use o mesmo editor para todas as suas soluções em seus ambientes. Mais informações: Fornecedor de soluções

  1. No ambiente de desenvolvimento "base", você tem sua solução base com as tabelas não gerenciadas comuns e nenhuma outra tabela. Em seguida, exporte essa solução como gerenciada.
  2. Você configura um segundo ambiente de desenvolvimento para a camada de extensão ou "aplicativo" que mais tarde residirá sobre a camada base.
  3. Você importa a camada base gerenciada para o ambiente de desenvolvimento da camada de aplicativo e cria uma solução não gerenciada para a camada de aplicativo. Camadas corretas de soluções usando várias soluções com vários ambientes.
  4. Agora você pode estender o modelo de dados adicionando tabelas, colunas, relações de tabela, plug-ins, fluxos e assim por diante à solução específica de "aplicativo". Depois, exporte a solução do aplicativo como gerenciada. Observe que a solução de aplicativo ainda depende da solução de camada base, mas gerenciar várias soluções dessa forma é uma abordagem melhor. Considere o exemplo mencionado antes do fluxo que depende de uma coluna personalizada. Na maioria dos casos, tanto a coluna personalizada quanto o fluxo residem na mesma solução de aplicativo. No entanto, mesmo que a coluna personalizada faça parte da solução base, você deve concluir e implantar essa solução base como gerenciada primeiro, caso contrário, o fluxo dentro da solução de aplicativo não poderá sequer ser criado.
  5. No ambiente de produção, importe a camada de base gerenciada, depois importe a camada gerenciada do aplicativo. Isso cria duas camadas gerenciadas no ambiente com dependências claras entre as soluções gerenciadas.
  6. Repita esse padrão para manter quantas soluções diferentes forem necessárias. No entanto, recomendamos que você mantenha a menor quantidade possível de soluções para manter as camadas gerenciáveis.

Usar a segmentação de tabela
Cenário 5: Suporte ao desenvolvimento da equipe