5

Actuellement, j'ai un VirtualPathProvider personnalisé dans une application Web Asp.net MVC.Exécution d'un VirtualPathProvider personnalisé avec un site Web PreCompiled

Cette VirtualPathProvider vérifie la zone à partir de l'itinéraire "/{Area}/{Controller}/..." et utilise le module NameSpace.{Area}.Main.dll pour renvoyer les vues contenues dans cet assembly sous la forme de ressources intégrées

Cela fonctionne très bien et je n'ai pas besoin de déployer aucun ascx, js, css.

Maintenant, mon problème est le suivant:

Je voudrais précompiler les fichiers aspx et ascx dans l'assemblage et au lieu d'avoir le point de vue que les ressources intégrées que j'aurais la classe vue avec le Response.Write.

Je peux précompiler les vues en utilisant le aspnet_compiler mais je continue d'obtenir une erreur lorsque le ViewEngine essaie de trouver la vue et échoue.

Mon objectif principal est d'avoir un moyen pour la première utilisation d'une certaine vue/usercontrol serait plus rapide et n'attend pas que la compilation se produise.

Ceci est une exigence puisque l'application pourrait être regroupée en plugins et que ces plugins soient déployés dans le répertoire Bin.

Des pensées?

Répondre

8

Cet article de blog VirtualPathProvider In Precompiled Web Sites par Coskun SUNALI décrit une solution utilisant la réflexion. S'il vous plaît noter qu'il fait très clairement que ce n'est pas une solution officiellement prise en charge par Microsoft, mais à en juger par les commentaires sur son blog, il semble que cela fonctionne bien pour certaines personnes.

+0

Juste remarqué qu'il y avait une question similaire http://stackoverflow.com/questions/12397/net-virtualpathproviders-and-pre-compilation que déjà fait référence à cette solution –

+0

Merci pour votre réponse. Je suis en train de tester une solution en utilisant la fonction Warmup du nouveau IIS 7.5 et en préchargeant automatiquement toutes les pages pour forcer une compilation ... Mais je vais essayer ça très bientôt. Très apprécié! –

+1

Il est ahurissant que cela n'a pas été changé dans .net 4 – DevelopingChris