O Visual Studio 2012 nos traz um novo recurso muito interessante para o entendimento de códigos complexos : O Code Map.
Basta clicarmos com o botão direito em nosso código e encontramos as opções referentes ao funcionamento do Code Map. Implementei um pequeno trecho de código em um webform para fazer um teste.
Veja o código :
protected void Button2_Click(object sender, EventArgs e) { ListBox1.DataSource = Dados(); ListBox1.DataBind(); } private List<int> Dados() { List<int> l = new List<int>(); for (var i = 0; i <= 10; i++) { l.Add(i); } return l; } protected void Button3_Click(object sender, EventArgs e) { ListBox1.DataSource = null; ListBox1.DataBind(); }
O objetivo do Code Map é, claro, lidar com códigos bem mais complexos que esse, porém isso nos ajudará a analisarmos o resultado.
Com o cursor em Button2_Click, cliquei com o botão direito e selecionei “show on code map”
O resultado é extremamente simples :
Clicando em “Show related Itens” selecionei “Show fields this references”. Como resultado, visualizamos a listbox no Code Map :
Novamente em “Show Related Items”, cliquei em “Show methods this calls”. Como resultado temos o método “Dados” e a indicação “External” (referente ao databind), veja :
Ainda no “Show Related Items”, cliquei em “Show containing type”, veja o resultado :
O click em “Find all references”, ultimo item do “Show Related Items”, não gerou nada novo no gráfico, o que já era esperado. Ocorre que todos os itens estão sendo executados para o objeto circulado de amarelo – o objeto selecionado que é o método click do button2.
Desta vez selecione a listbox e utilizei “Find all references” do “Show related items”. Temos então o Button3_click adicionado no gráfico :
É importante destacar que o gráfico não é estático : Conforme navegamos no código uma seta aponta para nós exatamente o ponto em que estamos no gráfico.
O gráfico apenas se completa conforme pedirmos. Por exemplo, não há ainda uma indicação de que o método Dados faz chamada externa. Se utilizarmos o “Show methods this calls” com o Dados selecionado, teremos isso no gráfico.
Clicando sobre um dos itens, vemos um menu flutuante com mais opções para manipularmos o gráfico. Podemos, por exemplo, criar comentários :
O agrupamento se mostra útil, mas deve ser utilizado com moderação, já que os relacionamentos para fora do grupo partem do grupo, não dos itens individuais, dificultando a leitura da imagem :
As opções para criação de flags, criação de novos itens e novas associações que não existem no código também podem ser úteis, mas especialmente esses dois últimos devem ser utilizados com moderação.
Sem dúvida, um excelente novo recurso para o Visual Studio.
Veja um outro exemplo de gráfico criado sobre o webform do exemplo em …. :
>> Não acabou não, mané, tem mais ai, clica e contine lendo ...<<












