CRM 2016 – Solution Patches (ALM)


Pessoal,

Outra grande novidade que tivemos com a versão do CRM 2016 são os “Solution Patches“. Podemos segmentar ainda mais nossas solutions, para termos uma ideia de nossas possibilidades, agora conseguimos criar patches (fragmentos) de subcomponentes de um entidade. Além da segmentação, conseguimos otimizar todas as fases de um projeto, de seu desenvolvimento até sua distribuição para um ambiente produtivo, Ganhamos muitas força no segmento de ALM (Application Lifecycle Management – Gerenciamento do Ciclo de Vida dos Aplicativos) no Dynamics CRM!

Com a possibilidade de fragmentarmos uma solução em patches, ganhamos uma bem vinda independência, pois podemos apenas trabalhar com aquilo que é necessário, não precisamos importar um entidade inteira, para apenas editar um atributo já existente. O impacto de cada patch tende a ser muito menor e mais direcionado do que apenas o uso de soluções.

Outro ponto que faz todo o sentido para utilizarmos os patches, seria quando temos um time de consultores/desenvolvedores trabalhando ao mesmo tempo em uma solução, podemos criar patches para que cada consultor/desenvolvedor trabalhe em suas atividades de forma isolada. Ao final do ciclo de desenvolvimento/testes, podemos agrupar os patches em apenas uma nova solução, ela receberá todas as customizações que foram feitas, realizando a distribuição para os demais ambientes do projeto.

Para facilitar um pouco. Criei um fluxo para entender como podemos fragmentar nossas soluções em patches:

 

patches_2

 

Vale lembrar que todo o conceito que já possuímos de soluções ainda continua valendo, os patches não vieram para acabar com as soluções e sim para nos auxiliarmos no ciclo de vida de nossos projetos. Não devemos generalizar e pararmos de “quebrar” nossos projetos em soluções, sendo por objetivo de modularização, distribuição de tipos de componentes e qualquer outro objetivo que faça total sentido de termos mais do que uma solução!

Outro ponto que gostei muito, foi a utilização do atributo “Versão” (version) de uma solução, agora temos algum propósito prático de utilizá-lo no CRM. Soluções e patches fazem uso dele para termos a devida organização das diferentes frentes do projeto. Apenas precisamos entender um pouco sobre o formato de preenchimento:

Major.Minor.Build.Release

O Major e Minor representam versões de Solução, já o Build e Release, representam versões dos Patches!

Onde:

  • Major – Grandes alterações que irão impactar o produto/solução como um todo, geralmente indicam que temos uma nova versão do produto/solução;
  • Minor – Pequenas alterações que uma “major version” recebeu, mas que não impactaram tanto quanto uma “major”
  • Build – Versão do “build” de desenvolvimento
  • Release – Release de versão do desenvolvimento, como se fosse cada revisão que é feita

Algumas considerações sobre o uso de Patches:

  • Os patches podem ser utilizados em soluções Gerenciadas ou Não Gerenciadas;
  • Não use Patches em ambientes de produção. Este é o mais importante para mim, pois fica claro que devemos utilizá-lo durante o ciclo de vida do aplicativo, mas não no momento da distribuição para produção!
  • Apenas uma solução pode ser clonada para um patch “Clone a Patch“:

patches_5

  • Um patch nada mais é do que um registro da entidade solution, porém possui um valor no atributo “ParentSolutionId”;
  • Patches não conseguem remover componentes da solução, para remover, vá até a solução ou faça um upgrade;
  • Um patch não pode ser clonado para dar origem a outro patch ou solução

patches_14

  • Um patch só pode ser originado de uma única solução;
  • Podemos gerenciar os Patches utilizando o Organização Service ou os Web API’s, com isso podemos automatizar todo o processo de criação, clonagem, atualização e exclusão;
  • Apenas podemos instalar um patch em organizações que já possui a solução base

patches_8

  • Todo patch mais atual deve possui um número de build ou release maior do que o anterior;
  • Tome cuidado com o nome dos patches, pois eles devem ser os mesmos da solução, bem como a major e minor versions

patches_6

  • Patch só funcionam na versão 2016 do CRM (versão 8.0 ou superiores);
  • Ao criar um patch a solução base fica automaticamente indisponível para…

Edição:
patches_3
e Exportação:
patches_4

  • Ao criarmos um patch ele não conterá nenhum componente da solução base ao qual foi clonado, devemos adicionar os componentes que necessitarmos e realizarmos as customizações. Quando houve o upgrade da solução, todos os componentes serão adicionados na solução base!
  • Para promovermos (upgrade) todos os patches que foram trabalhados de volta à solução base, basta clonarmos a solução, deste modo, tudo que foi feito será adicionado a solução!

patches_10
patches_21

  • Para excluir uma solução Não Gerenciada que possuam patches, precisamos primeiramente remover todos os patches, para depois excluir a solução

patches_16

  • Para excluir uma solução Gerenciada que possuam patches, basta apenas excluir a solução que todos os patches serão excluídos também;

Bom é isso, existe bastante conteúdo que deve aparecer de acordo com o uso, mas este foi apenas um post para demonstrar o novo recurso.

Para maiores informações, consulte o link oficial:

Create patches to simplify solution updates

[]’s,
Tiago Cardoso

2 comentários em “CRM 2016 – Solution Patches (ALM)

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.