Desenvolvimento - C#

Acessando código fonte do .NET Framework

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.

por Ramon Durães



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
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10443&wa=wsignin1.0
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 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 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 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 / DataBind

Parte 2 - Navegando pelo método DataBind() usando "F11"


Figura 05 - DataBind

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


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:

- . NET Framework Library Source Code now available
- Configuring Visual Studio to Debug .NET Framework Source Code
Ramon Durães

Ramon Durães - Especialista em desenvolvimento de software e Microsoft Most Valuable Professional (MVP) em Visual Studio Team System. Realiza treinamentos de .NET Framework em empresas, consultoria em arquitetura de software e implantação de Visual Studio Team System. Palestrante nos principais eventos da Microsoft no Brasil (Tech-Ed 2005, Tech-Ed 2006, Tech-Ed 2007, Tech-Ed 2008, Tech-ED 2009), Microsoft Innovation Days 2007 (Salvador, Brasília, Recife, Goiânia, Natal, Maringá), Microsoft Innovation Days 2009 (Salvador) , Campus Party Brasil 2009 e eventos regionais relacionados a grupos de usuários e universidades. Conhecido autor de artigos para os principais portais de conteúdo e autor de 10 publicações eletrônicas em CD (Video-Aula) pela editora Linha de Código além dos livros "Desenvolvendo para web usando o Visual Studio 2008" e "Gerenciando projetos de software usando Visual Studio Team System" pela editora Brasport. Pode ser encontrado em seu blog http://www.ramonduraes.net e @ramonduraes no Twitter.