Je me demandais si les vues Razor pouvaient être compilées, comme les vues basées sur WebForm?
Est-il même logique de compiler des vues Razor et pourquoi quelqu'un voudrait-il faire cela?
Oui, vous pouvez. Jetez un oeil à l'article suivant: Compilez vos vues asp.net mvc Razor dans une dll séparée
Il s'agit d'un guide "étape par étape" sur la façon de compiler vos vues de rasoir dans une DLL distincte. Je ne sais pas si c'est ce que vous visez, mais cela vous mettra certainement dans la bonne direction.
Modifier:
Voici également un article de blog sur ce sujet:
Comment détecter les erreurs de nos vues ASP.NET MVC au moment de la compilation
Pour que vos vues soient compilées, procédez comme suit;
voir le code suivant;
<!--There some lines of code here and I deleted them to get to the point quickly-->
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews>
changez la valeur de la balise MvcBuildViews de false
en true
après cela, enregistrez-le et rechargez votre projet.
après avoir construit votre solution pour la compiler, vous verrez que votre vue sera également compilée.
REMARQUE: pour le tester, cassez exprès du code dans l'une de vos vues et essayez de le construire. vous verrez que vous obtiendrez un message d'erreur.
La vérification MvcBuildViews est excellente, mais elle ajoute une pénalité de 5 à 10 secondes pour la création de votre application Web si elle est suffisamment complexe. Il ne met pas en cache la sortie de la compilation, il effectue donc une compilation complète de toutes vos vues à chaque fois.
J'ai trouvé un bon compromis en suivant le conseil ci-dessus et en ajoutant un attribut Condition:
<MvcBuildViews Condition=" '$(Configuration)' == 'Release' ">true</MvcBuildViews>
Nous nous attendons à ce que ReSharper signale de toute façon les erreurs dans les vues et le développeur peut toujours intégrer la configuration de la version comme test - nous avons un script de "contrôle en amont" que les développeurs exécutent afin qu'ils puissent facilement s'assurer que les cibles du package fonctionnent et ainsi le - et si tout cela échoue, le serveur de build l'attrapera.
Peut-être que cette astuce est évidente, mais je n'ai vraiment commencé à apprendre correctement sur msbuild qu'au lieu d'écrire des scripts Powershell pour ces tâches. J'espère que cela est utile à quelqu'un.
Oui c'est possible. En fait, le meilleur exemple auquel je peux penser serait celui des moteurs de création de modèles de courrier électronique. Si vous compilez et mettez en cache le modèle, vous pouvez rapidement arnaquer les e-mails sans avoir à répéter l'analyse.
C'est un bon exemple d'utilisation de Razor en dehors de MVC également.