2010-07-20 10 views
1

Je suis en train de concevoir un module qui doit être utilisé par deux sites Web distincts. Tout sera écrit en MVC (le module et les deux applications web).Comment concevoir un module partagé nécessaire dans 2 applications ASP.NET MVC différentes?

Je voudrais concevoir mon module afin que le code puisse être inclus à partir d'un emplacement partagé. Je veux seulement maintenir une seule version. Ma première pensée a été la fonctionnalité Area de MVC 2. Mais d'après mes lectures, il semble que MVC 2 ne supporte que "officiellement" Inline Areas.

Il semble que la prise en charge de MultiProject pour les zones puisse être abandonnée dans un proche avenir. What are the pros and cons of Areas implemented as single projects vs multiple projects in asp.net mvc

Y a-t-il des alternatives? Un exemple concret de ma conception serait de créer un panier virtuel MVC (ce serait le module partagé) et de le consommer sur deux sites Web MVC différents (disons une librairie et un magasin de pièces de vélos).

Répondre

1

zones portables de MVC Contrib sont exactement ce dont vous avez besoin: http://www.lostechies.com/blogs/hex/archive/2009/11/01/asp-net-mvc-portable-areas-via-mvccontrib.aspx

Mon expérience n'a été que positive. Avoir 3 applications partageant 3 zones portables. On entre bientôt en production.

+0

Merci pour la suggestion jfar. Qu'est-ce qui en a fait une option plus attrayante que les zones de projets multiples? Corrigez-moi si je me trompe mais il semble que les zones portatives pour MVC-Contrib construisent des assemblys (c'est-à-dire des bibliothèques binaires) que vous consommez comme références dans votre application. Pour faciliter le débogage et le développement, j'aime généralement ajouter des modules comme celui-ci en tant que source. – Justin

-1

Vous pouvez toujours en faire une zone, la conserver en un seul endroit et la copier vers d'autres projets si nécessaire. Je ne sais pas comment le faire fonctionner sans configurer les routes appropriées dans le projet Web consommateur.

Sinon, je serais intéressé par une solution aussi.

+0

Malheureusement, cela doit être l'approche. Idéalement, je développerais dans son propre projet où je peux inclure quelques outils de test. La notion de «copier-le dans d'autres projets» n'est pas exactement mon idéal de code maintenable. Entre autres choses, je devrais le synchroniser quand quelque chose change et surveiller les autres développeurs pour m'assurer qu'ils ne changent pas la mauvaise copie. On dirait un gros mal de tête pour moi. – Justin