7 votes

application modulaire asp.net mvc howto/recommandations

Est-ce que quelqu'un a une recommandation pour construire une application ASP.Net MVC de manière modulaire et pluggable ? Je veux dire des articles de blog, des didacticiels, etc. Je viens de lire Blogue de Hammet sur les exemples MEF et ASP.NET MVC mais je ne trouve pas le MEF assez mature pour l'utiliser en production. Je n'ai pas réussi à trouver sur Google d'autres messages pertinents sur ce sujet...

Je sais que je pourrais obtenir la modularité en implémentant un ControllerProvider personnalisé et un mécanisme d'inspection des plugins, mais j'aimerais étudier d'autres approches/meilleures pratiques avant de commencer à réimplémenter la roue :)


La modularité que j'entends par ce sujet doit couvrir uniquement le point de vue de l'application web - rien d'autre comme les modèles/services d'application modulaires, etc. J'aimerais trouver la meilleure méthode possible pour séparer une application web en plusieurs assemblages qui contiendraient des contrôleurs, des vues, des ressources, des fichiers JS+CSS, des images, etc. supplémentaires. Ainsi, il devrait y avoir un projet d'application web principal qui rechercherait les assemblages d'applications web pluggables disponibles, les chargerait, publierait leurs contrôleurs, rendrait leurs vues et autres ressources disponibles et préparerait probablement un menu avec des entrées pour chaque module d'application web.

Je ne veux pas discuter ici d'une quelconque architecture pluggable modèle+services - seulement de l'ASP.Net M VC partie.

3voto

Slavo Points 5585

La modularité est un concept assez vaste, et je pense que la réponse à votre question doit être subjective. Ce que vous demandez est une décision architecturale, et il n'y a pas une seule bonne façon de procéder. En fonction du projet, vous pouvez avoir des priorités et une importance différentes pour les différentes parties du système. Je pense que le modèle MVC fournit une séparation suffisante des préoccupations, ce qui est en fait l'objectif de toute architecture modulaire.

Si vous souhaitez pouvoir intégrer facilement un nouveau module dans l'application existante, comment définir un module ? Je pense que vous devriez restreindre un peu la question pour obtenir des réponses non vagues et significatives.

1voto

La prise en charge des requêtes partielles pour rendre les contrôleurs de la troisième partie est entièrement prise en charge dans le MVC, jetez un coup d'œil à cet article : http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

Évidemment, un module dans un MVC contient au moins un contrôleur et une ou plusieurs vues. Mais peut-être que ce que vous voulez n'est que quelques-unes, et donc il est beaucoup plus facile de réécrire le contrôleur, que si c'était une architecture WebForms traditionnelle.

Si vous souhaitez remplacer la source de données, il vous suffit de remplacer les méthodes de l'entité Model, et vous êtes opérationnel. C'est tout le principe de base de MVC, que vous séparez les différents niveaux de logique, et que vous êtes FORCÉ de le faire, contrairement à WebForms qui vous permet toujours de faire du SQL directement dans votre vue si vous liez.

(Le fait que MVC la prenne également en charge n'est pas une question de conception, mais d'héritage).

1voto

Marc Climent Points 3415

Pour commencer, vous pouvez vous inspirer de cet article :

Moteur Spark View - Modularité

Et l'exemple de code :

spark / src / Samples / Modules

Le code se trouve dans l'arborescence de Spark View Engine (qui est un très beau et puissant projet) mais n'a pas grand-chose à voir avec celui-ci. Il utilise Castle pour créer des dépendances et tout le reste.

Au fait, j'ai joué avec MEF mais je n'en vois pas vraiment les avantages pour le moment et les choses que j'avais besoin de faire peuvent être faites avec Castle et quelques outils (des aides pour interroger les assemblages et des choses comme ça).

1voto

Buthrakaur Points 870

Aires portatives MVC pourrait être une bonne solution à ce problème

1voto

CokoBWare Points 140

J'ai trouvé un article qui aborde certaines des exigences fondamentales dont vous parlez. Malheureusement, l'article datait d'environ un an et utilisait ASP.NET MVC 3. Je l'ai donc réécrit et j'ai testé la méthodologie pour qu'elle fonctionne avec ASP.NET MVC 4. Vous pouvez Lisez-le ici .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X