Dev (Back & Front)ARTIGO

Acessando o código fonte do .NET Framework

Artigo recomendado para Visual Studio 2008

Com o lançamento do Visual Studio 2008 e do .NET Framework 3.5, a Microsoft anunciou publicamente a liberação de acesso ao código fonte para leitura durante o debug mediante concordância com os termos de licenciamento. Vale lembrar que as versões Express (gratuitas) não terão acesso a essa funcionalidade.

Para ter o acesso você precisa rodar um hotfix que vai atualizar o Visual Studio 2008 de forma a suportar os downloads dos arquivos de Symbols com as informações necessários ao debug.

As classes abaixo estão disponíveis para utilização:

.NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc).

ASP.NET (System.Web, System.Web.Extensions)

Windows Forms (System.Windows.Forms)

Windows Presentation Foundation (System.Windows)

ADO.NET and XML (System.Data and System.Xml)

Siga os procedimentos abaixo para configuração:

1) Instale o hotfix Visual Studio 2008 QFE

Link

Pode ocorrer um erro durante a instalação desse fix caso você tenha uma versão anterior (beta 2) instalado. Para resolver basta colocar o dvd do Visual Studio 2008 no drive.

2) Configurando o Visual Studio 2008

Inicie o VS2008 e vá em Tools > Options > Debugging

a) Para iniciar o debug do código fonte, desmarque a opção: Enable Just My Code (Managed only)

b) Certifique de marcar a opção: Enabled source server support

Figura 01 - Configurando o debugFigura 01 – Configurando o debug

3) Configurando arquivo Symbols

O Visual Studio 2008 vai, automaticamente, baixar os arquivos necessários para o debug do código fonte. Para isso você precisa seguir

os passos de configuração abaixo:

a) Adicione a referência para : http://referencesource.microsoft.com/symbols

b) Defina a pasta que será salvo os arquivos de debug.

c) Marque a opção: “Search the above loactions only when symbols are loaded manualy” (Download manual)

d) Você pode optar também por não marcar a opção citada na letra “c” que o Visual

Studio vai fazer download automático, porém pode demorar a depender da conexão internet (+- 50 MB). (Recomendado após os primeiros testes)

Figura 02 - Configurando SymbolFigura 02 – Configurando Symbol

4) Iniciando depuração do código

Chegou o tão esperado momento de colocar em prática os conhecimentos e explorar o .NET por dentro.

a) Coloque seu break point dentro do seu código.

b) Rode o projeto.

c) Localize a janela Call Stack ou chame com o atalho: CTRL + ALT + C .

d) Selecione na janela Call Stack as referências e depois Load Symbols conforme figura 03 (download manual).

e) Durante o processo de debug o Visual Studio vai salvar os arquivos de Symbols na pasta cache.

Figura 03 - Janela Call StackFigura 03 – Janela Call Stack

Definida as configurações, você já pode colocar em prática e avaliar, por exemplo, a implementação do método DataBind de um GridView. Confira nas duas figuras seguintes:

Parte 1 – Colocando Break Point no DataBind()

Figura 04 - GridView / DataBindFigura 04 – GridView / DataBind

Parte 2 – Navegando pelo método DataBind() usando “F11”

Figura 05 - DataBindFigura 05 – DataBind

Parte 3 – Avaliando a implementação do DataBind do GridView diretamente no código fonte.

Figura 06 - Dentro do método DataBind.Figura 06 – Dentro do método DataBind.

Com esse processo, os desenvolvedores mais curiosos agora podem finalmente enxergar, em tempo real, o que está acontecendo nas chamadas de métodos internos do .NET.

Referências:

é diretor executivo na 2PC Brasil. Especialista em desenvolvimento de software focando em Agile Application Lifecycle Management (ALM) com diversas certificações, como Microsoft MVP Visual Studio ALM, Professional Scrum Developer (PSD), Professional Scrum Master (PSM), Certified ScrumMaster (CSM). É autor dos livros “Desenvolvendo para web usando o Visual Studio 2008” e “Gerenciando projetos de software usando Visual Studio Team System” pela editora Brasport. Palestrante nos principais eventos no Brasil, como TechEd (2005-2011) e Campus Party Brasil (2009-2012) além eventos regionais relacionados a grupos de usuários e universidades. Pesquisador de marketing digital, redes sociais, gestão 2.0 e agilidade. Para contatos, @ramonduraes no twitter.

Ver perfil