2010-04-19 5 views
2

Comment la configuration d'un conteneur IoC doit-elle être organisée? Je sais que l'enregistrement par code doit être placé au plus haut niveau dans une application, mais que se passe-t-il si une application a des centaines de dépendances qui doivent être enregistrées? Même avec les configurations XML. Je sais que vous pouvez diviser les configurations XML en plusieurs fichiers, mais il semblerait que cela deviendrait un problème de maintenance si quelqu'un devait explorer plusieurs fichiers XML.Configuration du conteneur IoC

Existe-t-il des bonnes pratiques pour organiser l'enregistrement des dépendances? De toutes les vidéos et tutoriels que j'ai vus, le code utilisé dans la démo était assez simple pour être placé dans un seul endroit. Je n'ai pas encore trouvé un exemple d'application qui utilise un grand nombre de dépendances.

+0

Je vous suggère d'éviter la configuration XML sauf si vous devez modifier les dépendances à l'exécution. Et si vous le faites, vous voudrez peut-être regarder MEF. – TrueWill

+1

XML est utile pour les configurations spécifiques à l'environnement –

Répondre

6

Autofac et d'autres (par exemple Ninject) utilisent un concept de module dans ce but précis. http://code.google.com/p/autofac/wiki/StructuringWithModules peut être ce que vous cherchez.

Hth Nick

+0

J'aurais eu une meilleure réponse si j'avais gardé plus à jour :) J'ai été coincé avec windsor au travail et jouant avec Hiro moi-même ... –

2

Cela aiderait un peu si nous savions si vous parliez d'un conteneur IoC particulier. Windsor, par exemple, vous permet de définir des dépendances sur un large éventail de fichiers XML (organisés comme vous le souhaitez), et simplement inclus dans la configuration. La structure devrait être dans un format que a du sens. Avoir un fichier/dossier pour les contrôleurs, les installations, etc etc Une hiérarchie d'éléments connexes. Avec quelque chose de plus orienté code, comme Autofac, vous pouvez facilement créer une multitude de fournisseurs de configuration de conteneur pour alimenter votre configuration. Avec Hiro, vous n'avez pas vraiment besoin de beaucoup de configuration. Indépendamment du conteneur utilisé, ils offrent tous des facilités pour les enregistrements basés sur la convention sur la configuration, ce qui devrait être votre premier arrêt dans le nettoyage des enregistrements. Un bon exemple serait d'enregistrer toutes les classes dont le nom se termine par 'Controller' dans une application MVC.