Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection...

18
Hands-On Lab Entendendo o acoplamento de classes com Visual Studio Ultimate 2012 Última Versão: 11.0.50727.1 (RTM) Última Atualização: 9/11/2012 Data da Tradução: 9/11/2012

Transcript of Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection...

Page 1: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Hands-On LabEntendendo o acoplamento de classes com Visual Studio Ultimate 2012Última Versão: 11.0.50727.1 (RTM)

Última Atualização: 9/11/2012

Data da Tradução: 9/11/2012

Page 2: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

CONTEÚDOS

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

EXERCÍCIO 1: USANDO GRÁFICOS DE DEPENDÊNCIA PARA VISUALIZAR O RELACIONAMENTO EM SALA.................................................................................................................................................... 3

EXERCÍCIO 2: DESCOBRINDO REFERÊNCIAS CIRCULARES............................................................12

Page 3: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Visão Geral

Entender o relacionamento entre classes em um projeto de código novo pode ser difícil. Neste laboratório você irá usar os diagramas do DGML (Directed Graph Markup Language) no Visual Studio 2012 para explorar uma base de código existente e descobrir como os tipos estão relacionados.

Pré Requisitos

A fim de concluir este laboratório, você irá precisar de uma máquina virtual Visual Studio 2012, fornecida pela Microsoft. Para mais informações em como adquirir e usar esta máquina virtual, por favor, consulte este blog.

É recomendado que se complete o laboratório “Descoberta de Código usando as Ferramentas de Arquitetura do Visual Studio Ultimate 2012” antes de iniciar este laboratório.

Exercícios

Este hands-on-lab inclui os seguintes exercícios:

1. Usando gráficos de dependência para visualizar o relacionamento em sala.2. Descobrindo referências circulares

Tempo estimado para completar este laboratório: 30 minutos.

Page 4: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Exercício 1: Usando gráficos de dependência para visualizar o relacionamento em sala

Neste exercício, você irá aprender como gerar e navegar um gráfico de dependência de sala.

1. Inicie Microsoft Visual Studio a partir de Start | All Programs | Microsoft Visual Studio 2012 |

2. Use o login Julia. A senha para todos os usuários é P2ssw0rd.

3. Na página inicial, clique em Connect To Team Foundation Server…

Figure 1Local do link Connect to Team Foundation Server

1. Escolha a opção TailspinToysCollection na caixa de diálogo Connect to Team Foundation Server e clique no botão Connect. Se for necessária uma confirmação, clique no botão Yes na janela de confirmação.

Page 5: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Figure 2Selecionando a team project collection TailspinToysCollection

2. Abra o Source Control Explorer e clique no hyperlink Team Explorer | Home screen.

3. Em Source Control Explorer, navegue até a Tailspin Toys | Development | Iteration 2 e dê um duplo clique no arquivo TailspinToys.sln para abrir o Tailspin Toys solution.

4. Faça um Rebuild da solução (Build | Rebuild Solution no menu principal). Esta etapa pode demorar alguns minutos para ser finalizada.

5. Crie um gráfico de dependência novo (Architecture | Generate Dependency Graph | For Solution). O gráfico de dependência é armazenado em um formato Directed Graph Markup Language (também chamado de DGML), que permite que você trabalhe com ele usando o Visual Studio 2012, bem como outras ferramentas padrão.

Nota: Gerando o gráfico de dependência para todos os projetos na solução pode demorar um minuto para concluir. Ao gerar um gráfico de dependência, pela primeira vez, um índice de código é criado para todas as dependências que foram detectadas, o que ajuda a melhorar o desempenho das operações subsequentes.

Page 6: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Figure 3Gráfico de dependência para a solução inteira

6. Selecione o Tailspin.Model.dll. O mesmo será expandido para revelar os nomes contidos nele.

Figure 4Ampliando um nó do gráfico

7. Selecione Tailspin.Model para expandir os nomes vinculados.

Figure 5Expandindo um nó do gráfico

Page 7: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Nota: Ao expandir o nome Tailspin.Model, você verá muitas classes que provavelmente são pequenas para ler sem dar zoom.

8. Clique no botão Quick Clusters na barra de ferramentas Gráficas para poder ver todas as classes e seus relacionamentos de forma rápida.

Figure 6Local do botão Quick Clusters

Page 8: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Figure 7Visão do gráfico de dependência em Quick Clusters

Nota: Os pontos de vista dos gráficos de dependência gerados que você vê, podem ser diferentes das imagens mostradas neste lab. Você pode precisar alterar o zoom, para verificar as etapas especificas.

9. A visualização do Quick Clusters layout, nos da uma idéia do número de classes em todos os projetos do TailspinToys e o seu grau de dependência entre si. Essa visão ainda está um pouco limitada, então vamos em frente e encontrar um nó especifico, procurando a classe Product. Você tem duas opções para realizar esta tarefa, representada pelos próximos passos.

10. A primeira opção é usar o zoom de forma manual em direção ao centro do gráfico usando o scroll do mouse até que você veja claramente a classe Product.

Nota: O Zoom também pode ser feito usando o drop down Zoom na barra de ferramentas, ou alterantivamente usando os ícones de lupa + ou –.

Figure 8Controles de visão

Page 9: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

11. A segunda opção é a realização de uma pesquisa do gráfico. Pressione Ctrl+F para mostrar a caixa de pesquisa, digite “Product” e pressione a tecla Enter. Pressione F3 para percorrer os resultados da pesquisa até que a classe Product seja destacada.

Nota: Por padrão, a pesquisa inclui itens em grupos colapsados. No entanto, se um item está em um grupo de colapso que nunca foi expandido, o item não pode ser encontrado. É por isso que expandimos um par de grupos nas etapas anteriores. Isso também seria importante fazer antes de enviar um arquivo DGML para outro usuário do Visual Studio.

Figure 9Procurando pela classe Product

Page 10: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Nota: As linhas cinzas de diferentes espessuras representam a importância das interdependências de relacionamento entre os nós, com as linhas mais grossas temos mais relacionamentos. As linhas mais escuras cinza representam as relações diretas entre a classe Product e as outras classes do gráfico.

12. Selecionando o nó classe de produto a partir do gráfico ajuda a destacar a sua relação direta com as outras classes, mas ainda é difícil distinguir entre relações de dependência de entrada e saída. Para ajudar visualmente a fazer esta distinção, altere o layout gráfico selecionando o botão superior para inferior da barra de ferramentas gráfica dirigida.

Figure 10Resultado do layout Top to Bottom

13. O layout Top to Bottom mostra a disposição de dependências de entrada de relacionamento nas linhas superiores e as de saída na parte inferior. Este é um avanço, mas ainda há alguns problemas visuais a partir das relações de dependência com outros grupos, ou seja, a relação que a classe Product tem para o conjuntoTailspin.Test.Model. Selecione o menu suspenso ao lado do botão de layout link na barra de ferramentas gráficas e selecione a opção Hide All Cross-Group Links.

Page 11: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Figure 11Escondendo todos os links desnecessários (Cross-Group Links)

Figure 12Visão do gráfico sem os links transversais

14. Selecione o botão Quick Clusters para visualizar rapidamente os arranjos.

Figure 13Visão do gráfico usando o layout Quick Clusters,também sem os cross-group links

Page 12: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

15. Localize e selecione a linha de relacionamento que conecta Product e OrderLine. Quando o menu aparecer, pressione shift e clique no botão + para ver os detalhes deste relacionamento em um novo gráfico.

Figure 14Local do botão + para criar um novo gráfico

Nota: O controle de navegação que aparece quando passamos sobre uma linha de relacionamento selecionado, abrem três ações. As duas setas navegam para a origem ou para o destino da relação. O botão + vai ajudar a gerar um novo gráfico com apenas os links de destino.

16. O novo gráfico mostra todos os membros da classe OrderLine que contribuem para a relação total de entrada para a classe Product.

Page 13: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Figure 15Visão detalhada do relacionamento entre as classes OrderLine e Product

Exercício 2: Descobrindo Referências Circulares

Neste exercício, você vai aprender como usar o analisador de referências circulares, a fim de descobrir as classes que são fortemente acopladas.

1. Volte ao gráfico original (AssemblyDependencies1.dgml) e certifique-se de que os links do Product estão visíveis.

Page 14: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Figure 16Gráfico de dependência com a classe Product selecionada

2. Clique no botão + na parte inferior da tela para visualizar as opções disponíveis para adicionar ao diagrama.

Figure 17

Page 15: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Local do botão ‘+’ na Legenda

Nota: Se a legenda não estiver visível, clique com o botão direito no diagrama e selecione a opção mostrar a legenda.

3. Selecione Analyzer | Circular References para adicionar o analisador ao gráfico de dependência. Os analisadores gráficos de dependência vão continuar funcionando mesmo se você alterar o gráfico.

Figure 18Adicionando o analisador de referências circulares

4. Se um link da classe Product estiver selecionado, clique em um lugar vazio dentro do gráfico. Observe que existem linhas vermelhas ao redor. Neste ponto, você pode continuar verificar as relações destacadas, para simplificar, use as ferramentas exploradas no exercício anterior.

Page 16: Pré Requisitos - allmatech.files.wordpress.com  · Web viewSelecionando a team project collection TailspinToysCollection . Abra o . Source Control Explorer. ... As duas setas navegam

Figure 19Diagrama de dependência mostrando referencias circulares entre as classes