J'ai une solution avec deux projets pertinents (pour cette question), et quelques autres ;
- Bibliothèque de classes avec des fonctionnalités utilisées par plusieurs autres projets.
- Application ASP.NET MVC.
Ma question est essentiellement de savoir où je dois faire IoC avec Ninject 2, en considérant...
- La bibliothèque de classes a besoin d'un peu d'amour DI, entre autres dans les classes de dépôt qui ont besoin d'objets de session spécifiques aux requêtes web (pensez à l'unité de travail).
- L'application MVC a besoin de DI car avec Ninject 2, vous héritez essentiellement de NinjectHttpApplication.
- Les tests unitaires de la bibliothèque de classes doivent en tenir compte pour injecter un ensemble différent de référentiels.
- Les tests unitaires pour l'application web doivent être injectés pour la même raison.
Je me suis mis dans un coin mental ici, parce que je ne voyais que trois options au départ. L'intégration dans la bibliothèque de classes, l'intégration dans l'application Web ou les deux, mais chacune pose des problèmes :
- Je ne peux pas faire de bricolage seulement dans la bibliothèque de classes puisque l'application MVC doit hériter de NinjectHttpApplication pour commencer.
- Je ne peux pas faire le DI uniquement dans l'application MVC - la bibliothèque de classes est utilisée par d'autres bibliothèques, après tout, et l'application MVC ne devrait pas en savoir trop sur les éléments internes de la bibliothèque de toute façon.
- Je suppose que c'est la seule issue que je vois : Un IoC indépendant pour les deux projets. La bibliothèque de classes et l'application MVC ont chacune leur propre configuration IoC et font de la DI pour leur matériel sans vraiment se soucier de l'autre.
Quelqu'un a-t-il des "meilleures pratiques" ou des directives sur la façon de faire quelque chose comme ça ? Je ne pense pas être la première personne à se retrouver dans cette situation, et il serait bon de savoir quelle est la "bonne" façon de procéder...
Merci !