Précompilation SparviewEngine

SparkView est un moteur de vue pour ASP.NET MVC (et MonoRail), j’en ai déjà parlé dans une revue du web avec Spark. Avec la popularité de ASP.NET MVC (la version 2 est sortie en beta lors de la PDC cette semaine), Spark voit aussi sa visibilité grandir.

On peut utiliser la complétion du code (appellée Intellisense sur la plateforme .NET) lors du développement mais un refactoring peut introduire une erreur dans le code et on ne sera “prévenu” que lors de la compilation de la vue, c’est à dire lors de la première visite.

une solution existe : la précompilation des vues. On ajoute une classe “Installer”au projet et on y glisse en mode design une instance de MvcContrib.SparkViewEngine.Install.PrecompileInstaller après avoir ajouté cette dernière dans la ToolBox de Visual Studio.

On peut ajouter après cette ligne de commande dans les post-builds events du projet :

%systemroot%\Microsoft.NET\Framework\v2.0.50727\installutil “$(TargetPath)”

Ceci va créer une assembly Projet.Views.dll dans le répertoire bin du site. Il faut ajouter les attributs [Precompile] sur les contrôleurs pour lesquels vous voulez cette compilation. Maintenant il faut charger cette assembly, par exemple dans la méthode Start_Application :

if !DEBUG var vfactory = ViewEngines.Engines .FirstOrDefault(vf => vf is SparkViewFactory) as SparkViewFactory; if (null != vfactory) { vfactory.Engine.LoadBatchCompilation(Assembly.Load(“Site.Web.Views”)); } endif

Plus de mauvaise surprise au déploiement, les vues sont déjà compilées.

Quelques remarques :

billet publié dans les rubriques coding le