Se você já teve vontade de ver o ASP.Net MVC funcionando lá dentro do motor, vou contar uma notícia boa: é possível, e é muito simples.

Em poucos passos:

  1. Vá até o Codeplex e baixe o fonte da versão do CTP que você está utilizando
  2. Descompacte, abra e compile a solution (como está, em modo debug) no Visual Studio.
  3. Feche a solution do ASP.Net MVC.
  4. Crie um novo projeto com o template do ASP.Net MVC e compile tudo.
  5. Remove as referências às dlls System.Web.Abstractions, System.Web.Routing e System.Web.Mvc. Se você está com o Preview 5, remova somente do System.Web.Mvc, já que as outras 2 já são parte do Service Pack 1 do .Net Framework 3.5. Isso tem que ser feito também no projeto de testes.
  6. Adicione as referências dos assemblies que removeu, mas utilize as dlls geradas no passo 2. Elas não ficam no local padrão de um projeto C#, elas ficam um nível acima do projeto, no mesmo nível da Solution (arquivo MVC.sln), no diretório /bin/debug. Como da outra vez, isso tem que ser feito também no projeto de testes.
  7. Configure seus breakpoints. Se algum breakpoint estiver no aspx e você não conseguir clicar no canto esquerdo do Visual Studio, clique F9 que o breakpoint aparece direitinho no aspx, e funciona.
  8. Ao parar no breakpoint, clique com o botão direito e selecione “Step into specific” e selecione onde você quer entrar no código. Abaixo um exemplo, onde setei o breakpoint no método Html.Texbox (clique para ampliar).
    image
  9. Pronto, você entrou no método. A partir daí pode setar outros breakpoints que achar necessários. Como a classe já vai estar carregada no Visual Studio, ele vai fazer o “Step Into” sozinho nas próximas vezes.

Simples, não é? Isso vale também para outros projetos que você tenha o código fonte disponível. Troque a referência pela das dlls que você gerou e tudo funciona.

Giovanni Bassi

Arquiteto e desenvolvedor, agilista, escalador, provocador. É fundador e CSA da Lambda3. Programa porque gosta. Acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é mais eficiente que hierarquia. Foi reconhecido Microsoft MVP há mais de dez anos, dos mais de vinte que atua no mercado. Já palestrou sobre .NET, Rust, microsserviços, JavaScript, TypeScript, Ruby, Node.js, Frontend e Backend, Agile, etc, no Brasil, e no exterior. Liderou grupos de usuários em assuntos como arquitetura de software, Docker, e .NET.