2009-07-21 6 views
4

Je crée une solution où j'ai plusieurs projets, chacun d'entre eux ayant la responsabilité de traiter avec des entités, des vues MVC et des contrôleurs d'un certain type. Autrement dit, l'un traite de la comptabilité, l'autre de la gestion de l'entreprise, etc. Cela nous permet de les réutiliser dans plusieurs solutions. Je peux utiliser les vues dans les différents assemblages du projet principal de la solution (un projet MVC standard) en enregistrant un VirtualPathProvider, et l'astuce de faire les vues en tant que ressources intégrées, afin qu'elles puissent être chargées de l'extérieur de leur DLL. Le principal (et énorme) inconvénient de cette approche est qu'en définissant les vues comme les ressources incorporées enlève la possibilité de compiler, en utilisant IntelliSense et en les déboguant, donc cela rend le développement vraiment difficile, et la maintenance encore plus .ASP.NET MVC Compiler des vues dans des assemblages distincts

Est-il possible de compiler ces vues dans les DLL? Est-ce qu'il me manque quelque chose ou y a-t-il une autre meilleure approche?

Remarque: Je peux compiler des vues dans mon projet MVC, mais pas celles à l'intérieur des DLL.

Répondre

1

Je ne sais pas si cela vous aide, mais ...

Pendant un certain temps que je voulais faire la même chose que vous jusqu'à ce que quelque chose me vint: Tant que les points de vue existent .aspx et. fichiers ASCX, ils peuvent être utilisés pour 'skin' l'application car ils ne font pas partie de l'application compilée. En d'autres termes, les avantages d'avoir toutes les vues sous forme de fichiers non compilés dans l'application finale, composée sont tout simplement trop grand pour ignorer, IMO.

J'ai donc fini par décider que l'application finale, composée est responsable de la façon dont tout est rendue. Cela signifie également que si j'ai deux applications différentes qui réutilisent les mêmes modules, ils peuvent les rendre très différemment.

Ces fichiers doivent contenir seulement code de rendu de toute façon, donc devrait vraiment être développé par un concepteur HTML/Graphics - pas un développeur.

Tous les contrôleurs et ViewModels Je l'implémente toujours dans des modules séparés (.dlls).

Questions connexes