Validando arquitetura no Team Foundation Server

Um dos principais conceitos dentro da estratégia de Aplication Lifecycle Management no Team Foundation Server é justamente permitir uma ampla integração entre em todo o ciclo de desenvolvimento de software ampliando a colaboração entre todos os participantes do projeto e um recurso poderoso é justamente a possibilidade de validar a arquitetura de software impedindo inclusive o check-in de um código fora do padrão.

 

Para ter uma melhor visão de como funciona então imagina que vocês combinaram no time de programar uma arquitetura em camadas até para facilitar a implementação de testes unitários. A grande questão é como garantir no dia a dia que todos estão seguindo o modelo combinado. O que acontece geralmente é muitas tentativas de não utilizar a camada de serviços e consumir dados diretamente da camada de apresentação para o banco  de dados quebrando todas as regras de negócio e todos os conceitos de reutilização e padronização.

 

A primeira coisa a fazer é justamente desenhar o projeto de modelagem usando o diagrama “Layer Diagram”. Para isso clique na solução e adicione um novo “Modeling Project” conforme a figura abaixo.

image

 

 

 

 

 

 

 

 

 

Após adicionar o projeto clique no mesmo e escolha a opção “Add New Item” e depois a opção “Layer Diagram” conforme a figura abaixo para que possamos desenhar a nossa arquitetura e validar posteriormente no Team Foundation Server.

image

 

 

 

 

 

 

 

 

 

 

 

Usando a ferramenta de desenho você vai construir um desenho de forma que o Visual Studio e Team Foundation Server possam entender a relação entre as camadas. Você pode criar os links entre as camadas manualmente ou deixar o Visual Studio gerar para você. Para avançar arraste cada projeto do Solution Explorer diretamente para o diagrama de arquitetura colocando dentro do box especifico referente a camada. Depois clicando no diagrama com o botão direito vai encontrar a opção ‘Generate Dependencies’ para gerar todas as referencias entre as camadas.

image

 

 

 

 

 

 

 

 

Observando a figura acima você já pode notar um erro na arquitetura que está sendo gerado justamente por uma falha na implementação de código na camada de apresentação que está consumindo dados diretamente sem passar pelas regras de negócio. Antes de avançar basta clicar em cima do link com problema e excluir. Depois clique novamente com o botão direito no diagrama e escolha ‘Validate Architecture’ e verá já na janela de erros o bloco de código com problema.

image

 

 

 

 

 

 

 

 

Agora que você já viu que o Visual Studio está reconhecendo o erro vamos usar o Team Build do TFS para fazer a validação necessária de forma automática integrando com o serviço de Continuous Integration (CI). Com a definição de Build criada vá em Process > Advanced > MSBuild Arguments  e insira o parâmetro "/p:ValidateArchitecture=true". Com essa configuração após rodar a Build você terá um relatório conforme o modelo abaixo indicando falha devido ao problema de violação de arquitetura.

image

 

 

 

 

Caso o recurso Gated Checkin esteja ativo esse código será submetido a uma área reservada (shelve)  e não diretamente a linha de produção para rodar o processo de compilação e no caso de uma falha como essa apresentada acima ele será devolvido ao desenvolvedor para que corrija o problema e em caso de aprovado será publicado na linha principal. Como você pode ver é tecnologia empregada no desenvolvimento de tecnologia tornando o nosso desenvolvimento de software cada vez mais ágil e integrado.

[],
Ramon Durães
Especialista em desenvolvimento de software
MVP, Visual Studio ALM