XXP

mai 2016

lun. mar. mer. jeu. ven. sam. dim.
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

« Microsoft aborde enfin l'inversion de control (IoC) | Accueil | Microsoft aborde enfin l'inversion de control (IoC) »

21 janvier 2008

Microsoft aborde enfin l'inversion de control (IoC)

L'IoC proposée par Microsoft à travers les Enterprise Library Blocks (EntLib) présentait  jusqu'à maintenant deux inconvénients majeurs. D'un part l'objet au centre du mécanisme de construction des composants, ObjectBuilder, était insuffisamment documenté, et d'autre part et surtout les dépendances à injecter aux modules étaient spécifiées par des attributs définis dans EntLib (par exemble [ServiceDependency] et [CreateNew]). Un module développé pour l'IoC d'EntLib était donc définitivement lié à celui-ci au lieu d'être "container-agnostic".

Un système IoC qui implique une dépendance entre le module et son conteneur manque l'objectif de couplage faible. Le couplage fort entre modules et conteneur ruine tout espoir de réutilisation des modules hors EntLib. C'était une approche clairement inadaptée à la variété des applications et des socles techniques en entreprise.

Au final, les approches open-source telles que Castle Windsor, Spring.Net et StructuredMap étaient largement supérieures à l'approche ObjectBuilder dès que la réutilisation pesait dans la balance.

La nouveauté c'est que Enterprise Library 4.0 à travers Unity (ex DIAB pour Dependency Inject Application Block) et le framework ASP.NET MVC distribué en tant qu'extensions de .Net 3.5 vont permettre d'assembler des composants sans leur imposer de dépendance un conteneur Microsoft.

Enfin.

ScottGu :

  • "[ASP.NET MVC] is highly extensible and pluggable.  Everything in the MVC framework is designed so that it can be easily replaced/customized (for example: you can optionally plug-in your own view engine, routing policy, parameter serialization, etc).  It also supports using existing dependency injection and IOC container models (Windsor, Spring.Net, NHibernate, etc)."
  • Grigori Melnik (Patterns & Practices):
    "Once refactored, the EntLib blocks can be used as a la carte with other DI containers – some updating of the façade would be necessary and we invite the EntLib enthusiasts to port the EntLib façade to individual containers. Swapping DI containers means organizations can leverage their existing infrastructure."   

    TrackBack

    URL TrackBack de cette note:
    https://www.typepad.com/services/trackback/6a00d8341c871f53ef00e54ffc861b8834

    Listed below are links to weblogs that reference Microsoft aborde enfin l'inversion de control (IoC):

    Commentaires

    L'utilisation des commentaires est désactivée pour cette note.