2009-06-25 8 views
0

Je voudrais mettre en œuvre l'application ASP.Net MVC qui pourrait avoir des contrôleurs, des vues et des fichiers de contenu (comme JS, images, ..) assemblé dynamiquement. J'aurais un projet web de base qui contiendrait des contrôleurs de base, des vues et d'autres fichiers de contenu, mais il devrait être possible d'étendre/remplacer tous ces éléments.asp.net application mvc - charger/remplacer les vues, les contrôleurs, les fichiers JS des assemblys de plugins

La raison principale de ce type d'architecture est que j'ai une application qui devrait être utilisée par plus de clients. Il y a beaucoup de choses communes de base qui seraient les mêmes pour tous les clients, mais il y a aussi beaucoup de choses qui devraient se comporter/regarder différemment pour chacun. Certains clients auraient aussi des fonctionnalités spécifiques que d'autres n'auraient pas, etc. Je sais comment résoudre ce problème dans la couche Model and Service (héritage + enregistrement des services appropriés dans le conteneur IoC), mais je ne sais pas par où commencer avec l'ASP Application .Net MVC. Mon idée de base est comme s'il y avait un projet basique avec des contrôleurs communs, des vues, des fichiers JS, etc. Il pourrait aussi y avoir d'autres projets qui pourraient remplacer/ajouter des composants d'application - contrôleurs, vues, fichiers JS, images. Je peux facilement résoudre les contrôleurs en utilisant IoC en tant que fournisseur de contrôleur, mais est-il possible de "surcharger" les vues et les fichiers statiques facilement d'une manière ou d'une autre? Est-ce que VirtualPathProvider magic + met les vues et les fichiers statiques en valeur tout ce que j'ai besoin de faire pour résoudre ce problème?

J'apprécierais tous les liens vers des articles de blog traitant de ceci et d'autres sources d'information.

Répondre

0

Je ne peux pas vous recommander de jeter un oeil dans les améliorations apportées sur la fonctionnalité Zones dans ASP.NET MVC 2 et les choses MvcContrib Portable Areas.

L'idée derrière est d'avoir toutes les vues intégrées avec tous les contrôleurs et les modèles liés à ces vues dans un seul assemblage, de sorte que vous pouvez avoir une zone de l'application "portable".

Je pense qu'il ne sera pas difficile de "remplacer" la vue par défaut en plaçant un remplacement dans le vrai dossier de l'application web où il devrait être trouvé.

Questions connexes