Compilando Views com o ASP.NET MVC 2

Olá!

Com o lançamento do ASP.NET MVC 2 e o advento dos Html Typed-Helpers, é possível criar elementos HTML baseados em expressões lambdas.

Legal, e o que isso significa?

Podemos selecionar as propriedades do Model a serem ligadas ao controle HTML (da View) como se estivéssemos escrevendo uma função lambda. Com isso ganhamos tipagem e intellisense. E onde há intellisense, há compilação estática.

No ASP.NET MVC 1 isso não era possível, de modo que os Html Helpers trabalhavam com strings (passávamos o nome da propriedade por parâmetro) e as más notícias vinham em tempo de execução: tela amarela do ASP.NET + runtime error. Antes escrevíamos:

<%= Html.TextBox("Name") %>

No MVC 2 fazemos isso com uma expressão lambda, que usamos para selecionar a propriedade do model:

<%= Html.TextBoxFor(modelVar => modelVar.Name) %>

Ao habilitar a compilação das Views, podemos identificar model-bindings errados em caso de alteração das propriedades.

Porém, este novo recurso do MVC 2 não vem habilitado por padrão, é preciso modificar as configurações do projeto MVC. Para tanto, clique com o botão direito em cima do projeto MVC Application e escolha a opção Unload Project, conforme a figura 1:

Agora é possível editar o *.csproj/*.vbproj do projeto sem precisar abri-lo como arquivo pelo VS. Novamente, clique com o botão direito em cima do projeto e vá até “Edit [Nome-do-projeto].csproj”.

O VS abrirá o modo de edição XML do csproj/vbproj, altere o valor do nodo MvcBuildViews para true, salve o arquivo e pronto. Piece of cake.

Agora você já pode dar “Reload Project” e usufruir do recurso de compilação estática das Views. Entretanto, utilize este recurso com cuidado, pois dependendo do tamanho do projeto seu build poderá ficar bem mais lento e a necessidade (ou falta de) de compilar as Views pode não justificar seu uso. Assim como quase tudo em desenvolvimento de software, depende do contexto.

Até mais ver!