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!