Arquivo

Archive for Setembro, 2010

Verificando se métodos públicos estão sendo utilizados com Call Hierarchy

17 de Setembro de 2010 1 comentário

Algumas semanas atrás estávamos trabalhando com o Code Analysis validando os métodos da aplicação que não estão sendo utilizados e percebemos que o mesmo apenas sinaliza os métodos privados. Isto gerou um problema pois como iremos remover da aplicação os métodos públicos que não estão sendo utilizados?

A estratégia foi (olha a gambi!!)…

Comente o método público e compile, se der erro, o mesmo esta sendo utilizado em algum ponto. Esse método funciona muito bem, mas o esforço é alto. Então mais uma vez vem o Visual Studio 2010 e suas features para nos ajudar.

O Call Hierarchy consegue identificar dentro da sua Solution todos os pontos da aplicação que estão se referenciando o seu método ou propriedade.

Segue abaixo como utilizar:

Clique com o botão da direita do mouse em cima do nome do método a ser analisado e clique em View Call Hierarchy (ou CTRL+K, CTRL+T

A janela do Call Hierarchy ira abrir e dentro dela você encontrará o seu método como nó raiz seguido por uma pasta chamada Calls To… , que mostra todas as chamadas ao seu método, e a pasta Calls From…, que lista todas as chamadas que seu método faz.

Esta janela é muito interessando, porque você ainda pode filtrar a pesquisa por Solution, ProjectsDocument, pode atualizar a pesquisa e limpar os resultados, e acessar diretamente a referencia apenas dando um duplo click em cima dos métodos. Na janela da direita você visualiza em qual arquivo e linha as chamadas estão sendo feitas.

Um outro recurso muito útil é possibilidade de promover uma chamada encontrada para o nó raiz da pesquisa, clicando com botão direito do mouse em cima da referencia encontrada e clicando em Add As New Root.

O Call Hierarchy é um recurso muito útil para um Code Review, foi uma ótima idéia inventarem isso.

Espero que tenham gostado do artigo.

Francisco Gonçalves

Categorias:Visual Studio

Automação de Código com GAX/GAT

Estou de volta galera

Se você esta cansado de fazer trabalho repetitivo, você já percebeu que todas as suas DALs, Entities, Procedures e etc. são muito parecidas ou esta precisando aumentar a produtividade? O time de Patterrns & Practices da Microsoft lançou a versão 2010 do Guidance Automation Extensions(GAX) e o Guidance Automation Toolkit(GAT) para resolver estes problemas.

Segue abaixo algumas dicas para iniciar.

Primeiro você precisa instalar o GAX para poder rodar o Toolkit, suas automações, e outras Software Factorys.

http://visualstudiogallery.msdn.microsoft.com/en-us/25e4b5e9-65e4-4950-967d-5f1e6a9dcbeb?lc=1033

Pode ser que você precise instalar o Visual Sutdio 2010 SDK.

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=47305cf4-2bea-43c0-91cd-1b853602dcc5&displayLang=en

Para você criar as suas automações você precisara instalar o GAT.

http://visualstudiogallery.msdn.microsoft.com/en-us/eb473a01-7582-4f25-bde9-cc5b2b9d4cdb

Existem também algumas Softwares Factorys já criada para você utilizar a automação que elas provem ou pode dar uma olhada em seu código fonte para utilizar como exemplo para suas criações. E todas elas rodam em cima do GAX.

Web Client Software Factory (WCSF)

http://visualstudiogallery.msdn.microsoft.com/en-us/8fc2c9d6-5282-404b-9c58-e72b326b1e26

Web Service Software Factory (WSSF)

http://visualstudiogallery.msdn.microsoft.com/en-us/8c6ea683-acf2-4881-bb05-3c3252992bfe

Smart Client Software Factory (SCSF)

http://visualstudiogallery.msdn.microsoft.com/en-us/7c580dca-22b0-4761-bf67-72a198b6acd4

Todos os código fontes estão disponíveis no CodePlex.

Infelizmente ainda não encontrei uma documentação legal sobre o assunto para poder postar aqui, mas muita coisa você poderá aprender olhando o código fonte das Software Factorys.

Eu estou utilizando estes softwares para automatizar alguns projetos em que trabalho e se os leitores desejarem, posso postar alguns artigos ensinando algumas coisas

Até pessoal,

Espero que o post tenha sido útil

Categorias:GAT, GAX
%d bloggers like this: