Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de...

31
Hands-On Lab Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012 Versão do Lab: 11.0.50727.1 (RTM) Última Atualização: 8/21/2012 Tradução: 9/8/2012

Transcript of Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de...

Page 1: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Hands-On LabDescoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012Versão do Lab: 11.0.50727.1 (RTM)

Última Atualização: 8/21/2012

Tradução: 9/8/2012

Page 2: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

CONTEÚDOS

VISÃO GERAL............................................................................................................................................ 3

EXERCÍCIO 1: INTRODUÇÃO A GERAÇÃO DO GRÁFICO DE DEPENDÊNCIA....................................3

EXERCÍCIO 2: INTRODUÇÃO A NAVEGAÇÃO DO GRÁFICO DE DEPENDÊNCIA.............................13

EXERCÍCIO 3: TRABALHANDO COM NÓS DE GRÁFICO E AGRUPAMENTO....................................23

Page 3: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Visão Geral

Neste laboratório, você irá aprender como gerar e navegar em gráficos de dependência com o Visual Studio Ultimate 2012 para um melhor entendimento e comunicação da arquitetura do sistema.

Pré-requisitos

Objetivando concluir este laboratório você irá precisar de uma Máquina Virtual Visual Studio 2012 fornecida pela Microsoft. Para mais informações sobre adquirir e usar esta máquina virtual, por favor, veja este post.

Exercícios

Este hands-on-lab inclue os seguinte exercícios:

1. Introdução a Geração do Gráfico de Dependência.

2. Introdução a Navegação do Gráfico de Dependência.

3. Trabalhando com Nós de Gráfico e Agrupamento.

Tempo estimado para concluir o lab: 30 minutos.

Page 4: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Exercício 1: Introdução a Geração do Gráfico de Dependência

Neste exercício, você irá aprender como gerar um gráfico de dependência que mostra relacionamentos entre bibliotecas de aplicação (como chamadas, heranças, retornos e outros), bem como bibliotecas de tipos externos.

1. Entre com o usuário Julia. Todas as senhas de usuário são P2ssw0rd.

2. Inicie o Microsoft Visual Studio em Start | All Programs | Microsoft Visual Studio 2012 | Visual Studio 2012.

3. Clique no link Connect to Team Foundation Server na Página Inicial.

Imagem 1Conectando ao Team Foundation Server

4. Selecione TailspinToysCollection e clique no botão Connect. Se houver uma solicitação para confirmar sua escolha, clique no botão Yes.

Page 5: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 2Selecione a coleção de projetos TailspinToysCollection

5. Abra o Source Control Explorer clicando no link na tela Team Explorer | Home.

6. No Source Control Explorer, navegue até Tailspin Toys | Development | Iteration 2 e clique duas vezes no arquivo TailspinToys.sln para abrir a Solution do projeto Tailspin Toys.

7. Recompile a solução (Build | Rebuild Solution no menu principal). Este passo pode levar alguns minutos para ser concluído.

8. O caminho mais rápido para iniciar é gerar um gráfico de dependência global para toda a Solution. Crie um novo gráfico de dependência (Architecture | Generate Dependency Graph | For Solution). O gráfico de dependência está armazenado em um formato chamado Directed Graph Markup Language (também chamado de DGML), que lhe permite trabalhar usando o Visual Studio 2012 e também outras ferramentas padrão.

Observação: Gerando gráficos de dependência para todos os projetos da solução pode levar um minuto para ser concluído. Quando você gera um gráfico de dependência pela primeira vez, um índice de código é criado para todas as dependências que foram encontradas, isso ajuda a aumentar o desempenho das operações subsequentes.

Page 6: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 3Gráfico de dependência para toda a solução

9. Neste ponto, nós só temos uma visão das dependências entre as bibliotecas que são partes da solução e das bibliotecas externas. As linhas na cor cinza, variando de espessura, representam a importância das interdependências de relacionamento entre as bibliotecas, com linhas mais espessas temos mais relacionamentos. Cada biblioteca mostrada pode ser dinamicamente expandida para mostrar os filhos contidos, que nós iremos explorar no próximo exercício.

Imagem 4Nós de bibliotecas podem ser expandidos dinamicamente

Observação: Os pontos de vista do gráfico de dependência que você vê, podem ser diferentes das imagens deste lab. Você poderá precisar aumentar ou diminuir o zoom, navegar no gráfico e fazer buscas visuais para os passos deste lab.

Page 7: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

10. Limpe o diagrama atual pressionando as teclas do teclado Ctrl + A e depois a tecla Delete.

11. Você também pode criar um gráfico de dependência com um escopo menor usando o Solution Explorer ou o Architecture Explorer. Eles permitirão que você selecione somente aqueles tipos ou membros que você quer ver, e então criar um novo gráfico ou adicionar estes itens ao gráfico existente.

12. Vamos supor que você está interessado em olhar as dependências e outros relacionamentos da classe Product no projeto Tailspin.Model. Estreite o escopo do Solution Explorer clicando com o botão direito do mouse no nó do projeto Tailspin.Model e selecione a opção Scope to This.

Imagem 5Definindo o escopo no Solution Explorer para um projeto específico

13. Na Caixa de Pesquisa do Solution Explorer, digite “Product” para realizar a pesquisa. Isto irá ajudar a localizar rapidamente e destacar todos os códigos que contenham o texto pesquisado.

Page 8: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 6Procurando pelo texto nos tipos da solução e seus membros

14. Selecione os resultados da pesquisa clicando em qualquer lugar dentro dos resultados da pesquisa e então pressione Ctrl + A.

Page 9: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 7Selecionando todos os resultados da pesquisa

15. Na barra de ferramentas do Solution Explorer, selecione o botão drop down Create a new graph document…, e então selecione a opção Add to Active Dependency Graph.

Imagem 8Adicionando os tipos e métodos selecionados no Solution Explorer para ativar o gráfico

Observação: Se as opções “Add to…” não são mostradas, certifique-se que o arquivo DGML é o arquivo ativo e então tente novamente.

16. O gráfico resultante agora mostra as classes, membros e os relacionamentos resultantes dos arquivos selecionados na pesquisa.

Page 10: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 9Gráfico mostrando os tipos e membros selecionados

Observação: Você também pode clicar e arrastar os tipos e membros do Solution Explorer para o Gráfico. Seu gráfico pode parecer um pouco diferente.

17. Outro caminho de gerar ou adicionar ao gráfico de dependência é usando o Architecture Explorer, que fornece um controle refinado na seleção de tipos e membros. Abra o Architecture Explorer em Architecture | Windows.

Imagem 10Visão inicial do Architecture Explorer

18. Vamos supor que queremos ver como os tipos e métodos da classe Product do projeto Tailspin.Model se relaciona com o projeto Tailspin.Web. No Architecture Explorer, selecione a opção Class View para ver todos os namespaces disponíveis.

Page 11: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 11Iniciando a navegação usando a Class View

19. Na caixa de pesquisa acima, digite “Tailspin.Web” seguido pela tecla Enter para mostrar somente os namespaces que são definidos dentro do projeto Tailspin.Web.

Imagem 12Filtrando a pesquisa por namespace

20. Selecione todos os namespaces presionando Ctrl + A para listar todos os tipos contidos neles.

Imagem 13

Page 12: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Continuando a navegação selecionando os namespaces

21. Uma vez que os tipos do namespace Tailspin.Web.* são listados, selecione todos os tipos (novamente pressionando Ctrl + A).

Imagem 14Selecionando todos os tipos listados

22. Pressione a tecla esquerda do mouse nos tipos selecionados e arraste até o gráfico de dependência aberto. Antes de soltar os tipos no gráfico, pressione a tecla Ctrl e então solte os tipos no gráfico. A tecla Control faz com que os containers pai dos tipos sejam adicionados ao gráfico.

Page 13: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 15Mesclando tipos adicionais ao gráfico existente

23. O resultado da mescla dos novos tipos com o gráfico existente resulta em uma visão que fornece algumas percepções em como a aplicação web se relaciona com as classes relacionadas ao tipo Product do projeto Tailspin.Model.

Page 14: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 16Visão parcial do gráfico mostrando como as entidades selecionadas se relacionam

Observação: Para aprender mais sobre como usar o Architecture Explorer, veja o laboratório chamado de “Utilizando o Architecture Explorer no Visual Studio Ultimate 2012 para Analisar o Seu Código”.

Exercício 2: Introdução a Navegação no Gráfico de Dependência

Neste exercício, você irá aprender sobre como manipular e navegar nos gráficos de dependências.

1. Iniciando com o gráfico que produzimos no exercício anterior, aumente o zoom e ajuste a tela de trabalho se necessário para obter um visão melhor do nó de classe HomeController.

Observação: Você pode dar zoom usando os botões do gráfico ou simplesmente usando o scroll do mouse. Desloque a área de gráfico arrastando uma parte em branco no gráfico.

Page 15: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 17Visão parcial do gráfico mostrando a classe HomeController

2. Selecione o nó da classe HomeController e mantenha o cursor do mouse sobre as linhas de relacionamento até você encontrar o que tem a propriedade Target Node com o valor IProductRepository.

Page 16: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 18Navegando entre os relacionamentos

3. O controle de navegação que aparece quando o mouse é colocado sobre as linhas de relacionamento mostra duas ações que permitem navegar para o nó de origem ou de destino. Clique na seta que indica o sentido contrário do nó da classe HomeController para ir até IProductRepository.

Imagem 19Navegando para outro nó do gráfico

Page 17: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

4. Use o botão Zoom To Fit da barra de ferramentas do gráfico para manter todo o gráfico visível na tela.

Imagem 20Localização do botão Zoom To Fit button

5. Você agora deve ver como a classe HomeController se relaciona com a interface IProductRepository, chamando os métodos GetProduct e GetProductCategory.

Page 18: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 21Gráfico de dependência mostranco como a classe HomeController usa a interface IProductRepository

6. Você também pode navegar do gráfico diretamente ao código associado. Clique com o botão direito do mouse no nó HomeController e selecione Goto | Go To Definition, ou pressione F12.

Page 19: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 22Navegando para a definição de HomeController

7. Aqui você pode ver exatamente como os métodos definidos pela interface são utilizados no código.

Imagem 23Visão do código da classe HomeController

8. Agora vamos dar uma olhada em como podemos navegar no gráfico para determinar como usamos bibliotecas externas. Crie um novo gráfico de dependência em Architecture | Generate Dependency Graph | For Solution.

9. Amplie o grupo Externals para expor as bibliotecas usadas pela aplicação Tailspin.

Page 20: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 24Ampliando o grupo Externals

10. Aumente o zoom e amplie o nó System.Web.dll dentro do grupo Externals para que você possa ver todos os namespaces utilizados.

Imagem 25Ampliando o nó System.Web.dll

11. Encontre e amplie o nó System.Web.Routing para ver os tipos contidos nele.

Page 21: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 26Expanding the Systm.Web.Routing node

12. Selecione o nó da classe RouteTable para ver suas linhas de relacionamento.

Imagem 27Classe RouteTable mostrando os relacionamentos

13. Encontre e selecione a linha de relacionamento com a propriedade Source Node com o valor de Tailspin.WebUpgraded.dll. Nós podemos simplesmente usar os botões de seta para navegar até a fonte como fizemos antes, mas desta vez vamos criar um novo gráfico que contém os relacionamentos mais importantes para o momento. Para criar o novo gráfico, pressione a tecla Shift e clique no botão “+”.

Page 22: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 28Criando um novo gráfico mostrando o relacionamento selecionado

14. No gráfico resultante, podemos ver que o método MvcApplication.Application_Start chama o método get_Routes (na verdade a propriedade RouteTable.Routes).

Page 23: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 29Gráfico mostrando o relacionamento selecionado

15. Feche o diagrama sem salvar as mudanças.

Page 24: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Exercício 3: Trabalhando com os Nós de Gráfico e Agrupamento

Neste exercício, você irá aprender como reduzir a complexidade do gráfico de dependência removendo nós desnecessários, ajustando o agrupamento de nós, e modificando as propriedades do nó.

1. Se estiver continuando do exercício anterior, retorne a visão original do gráfico de dependência clicando com o botão direito do mouse e selecionando Group | Collapse All. Caso contrário, gere novamente o gráfico selecionando Architecture | Generate Dependency Graph | For Solution.

Imagem 30Gráfico de dependência para toda a solução

2. Amplie o nó Externals do gráfico de dependência para expor as bibliotecas externas usadas pela aplicação Tailspin.

Page 25: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 31Grupo Externals ampliado mostrando os relacionamentos

Observação: As linhas espessas e cinza de relacionamento conectadas ao grupo Externals param no limite do grupo. O propósito disso é reduzir a complexidade visual do gráfico de dependência. Se você remover o grupo Externals, você poderá ver todas as linhas de relacionamentos diretos entre bibliotecas externas e internas bem como mais detalhes entre as bibliotecas atualmente agrupadas dentro de Externals.

3. Selecione o nó da biblioteca mscorlib.dll e pressione a tecla Delete para remove-la do gráfico. A lógica por traz deste nó, junto como outros vários tipos comuns usados em bibliotecas e tipos externos pode ser que adicione muita sujeira ao gráfico e fique difícil fazer uma navegação eficiente.

Imagem 32Removendo um nó do gráfico

4. Exclua o nó System.dll do grupo Externals.

5. Selecione o grupo Externals, clique com o botão direito do mouse e selecione Group | Remove Group. Isso irá remover o agrupamento, mas não os nós contidos nele.

Page 26: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 33Removendo o grupo Externals

6. Exclua o nó Tailspin.Test.Model.dll do gráfico. Nós devemos remover este nó para ter uma melhor ideia de como a aplicação implantada funciona sem os componentes de teste.

Page 27: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 34Gráfico de dependência simplificado

7. Embora a remoção do grupo Externals nos dê uma melhor ideia do que está acontecendo, fica difícil distinguir entre bibliotecas da aplicação e aquelas que anteriormente estavam agrupadas como Externals. Isso pode ser consertado adicionando uma propriedade de nó para dar uma cor diferente às bibliotecas externas. Clique no botão “+” no painel Legend e selecione Node Property | Is External.

Page 28: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 35Criando uma propriedade de nó identificando bibliotecas externas

8. A propriedade Is External está adicionada ao painel Legend. Clique com o botão direito do mouse na caixa de cor cinza ao lado direito da propriedade Is External e selecione a opção Background... para carregar a janela Color Set Picker.

Imagem 36Modificando a cor de fundo baseado na propriedade IsExternal

9. Na janela Color Set Picker, selecione o drop down True e selecione a cor vermelha (ou outra cor diferente de azul) e clique em OK.

Page 29: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 37Selecionando uma cor diferente para esta propriedade quando estiver habilitada

Page 30: Pré-requisitos€¦ · Web viewHands-On Lab. Descoberta de Código Usando as Ferramentas de Arquitetura do Visual Studio 2012. Versão do Lab:11.0.50727.1 (RTM) Última Atualização:8/21/2012

Imagem 38Gráfico de dependência mostrando bibliotecas externas em vermelho