Avec autant de conteneurs DI, existe-t-il une matrice de décision permettant de les réduire en fonction des fonctionnalités, des plates-formes prises en charge, etc.?
Réponses
Trop de publicités?Plus, c'est mieux que moins.
Il y a une bonne comparaison sur ce blog . Et la partie 2 ici .
Un up-to-date de la comparaison est trouvé dans le conteneur IOC de référence comparaison des performances de l'article, qui inclut quelques nouvelles et les arrivants. L'article compare les performances et fournit aussi des fonctionnalités.
Les MISES à jour
13.09.2011: Funq et Munq ont été ajoutés à la liste des participants, les deux cadres sont vraiment rapide. La mise à jour des tableaux ne contiennent Printemps.NET, depuis qu'il a été extrêmement lente.
04.11.2011: j'ai ajouté de l'Injecteur, le rendement est le meilleur de tous les candidats.
16.12.2011: j'ai ajouté de la Dynamo.Cio, le rendement est très proche de Simple Injecteur et Hiro.
22.01.2012: Ajout TinyIoc.
22.02.2012: mise à Jour de IServiceLocator implémentations.
12.03.2012: Ajout LightInject. Ajout de la fonction de comparaison.
25.04.2012: mise à Jour de Ninject 3.0.015 et de la Petite 0.3.2.
14.05.2012: Ajout De Mugen.
14.06.2012: Ajout de la MEF.
18.06.2012: Ajout De Griffin.
20.08.2012: mise à Jour pour le Château de Windsor 3.1.0, LightInject 2.0.0.0, Simple Injecteur 1.5.0.12199, Structuremap 2.6.4.1, MugenInjection 2.6.0 et de l'Unité 2.1.505.2
18.09.2012: Ajout De Catel.
15.10.2012: mise à Jour de la Dynamo.Cio 3.0.1.0 et MugenInjection 3.0.0
15.12.2012: mise à Jour de Catel 3.4, Griffin.Conteneur 1.1.0, SimpleInjector 1.6.0.12319, TinyIoC 1.2
01.01.2013: Ajout De Caliburn.Micro 1.4
06.01.2013: Ajout Speedioc. Mis à jour à Autofac 3.0.0, Caliburn.Micro.Conteneur 1.4.1, LightCore 1.5.0
26.02.2013: mise à Jour de Autofac 3.0.1, LightCore 1.5.1, Windsor 3.2.0
15.03.2013: Ajout d'une référence pour l'interception
03.04.2013: Ajout MicroSliver
11.04.2013: mise à Jour de plusieurs conteneurs
09.05.2013: mise à Jour de LightInject, SimpleInjector et de l'Unité
02.06.2013: Ajout fFastInjector et HaveBox. Mise À Jour De La Dynamo.CIO
16.06.2013: Mise À Jour De HaveBox.
16.06.2013: Ajout StyleMVVM.
04.07.2013: Ian Johnson a contribué à plus avancées les tests. Intéressant de voir comment ralentir certains conteneurs sont, lorsque l'objet graphique devient un peu plus gros.
26.07.2013: Ajout IfFastInjector.
03.08.2013: Ajout De Stiletto.
03.09.2013: mise à Jour de plusieurs conteneurs. Ignoré Stiletto car il utilise Fody, ce qui rend certains problèmes.
17.11.2013: Ajout De La Grâce. Mise à jour de plusieurs conteneurs.
15.12.2013: Ajout De Maestro. Mise à jour de plusieurs conteneurs.
Regardez ce tableau aussi.
Un autre intéressant de regarder est MEF, il n'est pas strictement un conteneur IoC, mais utilise les mêmes techniques. La chose importante à garder à l'esprit qu'il sera livré avec .Net 4.0.
J'aime vraiment la façon dont Nate le fait des trucs avec Ninject, il est très propre et très active au projet et je vous le conseille vivement (même sur MEF).
Assurez-vous que vous regardez l'histoire de check-ins pour tous vos candidats conteneurs, s'il y a peu de mises à jour dans la dernière 6-12 mois je voudrais rester à l'écart d'eux, peu importe ce que la matrice de comparaison des dit.
Aussi, je regarde les cas de test pour les cadres, et assurez-vous qu'elles font sens. Vous ne voulez pas être coincé avec une plus compliqué conteneur IoC.