As visualizações do Razor podem ser compiladas?

Eu queria saber se as visualizações do Razor poderiam ser compiladas, como as visualizações baseadas no WebForm?

Será que faz sentido compilar as visualizações do Razor e por que alguém iria querer fazer isso?

Sim você pode. Dê uma olhada na seguinte postagem: Compile suas visualizações do asp.net mvc Razor em uma dll separada

É um guia passo-a-passo sobre como compilar suas visualizações de razor em uma dll separada. Eu não sei se é isso que você pretende fazer, mas definitivamente vai te levar na direção certa.

Editar:

Aqui está uma postagem do blog sobre esse tópico também:

Como detectar erros de nossos modos de exibição ASP.NET MVC no tempo de compilation

Para fazer com que seus pontos de vista sejam compilados, faça o seguinte;

  1. Descarregue seu projeto clicando com o botão direito no projeto no gerenciador de soluções no VS e clicando em descarregar projeto
  2. clique com o botão direito do mouse no projeto que foi convertido em projeto indisponível e clique em “Edit your_project_name.csproj” (isso seria .vbproj se o seu projeto for VB)
  3. veja o seguinte código;

     v4.0 false 

  4. Altere o valor da tag MvcBuildViews de false para true

  5. Depois disso, salve-o e recarregue seu projeto.

Depois de construir sua solução para compilá-la, você verá que sua visão também será compilada.

NOTA: para testá-lo, quebre um código em uma das suas visões de propósito e tente construir. você verá que receberá uma mensagem de erro.

A verificação do MvcBuildViews é excelente, mas acrescenta uma penalidade de 5 a 10 segundos para a criação do seu aplicativo da Web, caso seja complexa o suficiente. Ele não armazena em cache a saída da compilation, de modo que faz uma compilation completa de todas as suas visualizações todas as vezes.

Eu encontrei um bom compromisso, seguindo o conselho acima e adicionando um atributo de condição:

 true 

Esperávamos que o ReSharper sinalizasse quaisquer erros nas exibições de qualquer maneira e o desenvolvedor sempre pode criar a configuração de lançamento como um teste – temos um script de “comprovação” que os desenvolvedores executam para que eles possam ter certeza de que os destinos de pacote funcionam e on – e se tudo isso falhar, o servidor de compilation vai pegá-lo.

Talvez esse truque seja óbvio, mas eu realmente só comecei a aprender sobre msbuild corretamente ao invés de escrever scripts Powershell para essas tarefas. Espero que isso seja útil para alguém.

Sim é possivel. Na verdade, o melhor exemplo que posso imaginar seriam os mecanismos de modelos de e-mail. Se você compilar e armazenar em cache o modelo, poderá rapidamente extrair e-mails sem ter que passar pela análise novamente.

Esse é um bom exemplo de usar o Razor fora do MVC também.