anchor.diff:  ----
   
   La première classe qui va nous intéresser est Container. C'est l'élément centrale de la librairie. Elle va nous permettre de définir les dépendances à résoudres, leur façon d'être résolut et leur récupération.
  -Pour définir une dépendance il nous faut un contract. Pour les besoins de l'article je vais en définir deux :
  -
  -[source,csharp]
  -----
  -public interface IController
  -{
  -    void Action();
  -}
  -----
  -
  -Le premier contrat est un controlleur qui réalise une action.
  +Pour définir une dépendance il nous faut un contract. Pour les besoins de l'article je vais en définir un :
   
   [source,csharp]
   ----
  
positive.code: ----
  var container = new Container(configuration =>
  {
  	configuration.For<ILogger>().Use<Logger>();
  });
  ----
  
  
negative.code: La suite de l'article va se concentrer sur le troisième pattern, Depenceny Injection. Factory est un pattern trop simplice pour permettre de résoudre les dépendances à lui seul et Service Locator est devenu au fil du temps un anti-pattern (notamment parce qu'il crée de l'ahérence alors que c'est l'inverse que l'ont veut).
  
  
  == StructureMap en action : les bases !
  
  Il existe de nombreuse bibliothèque dédiée à l'IoC. Sincérement il n'y a pas de mauvais choix même si j'ai tendance à déconseiller celle de Microsoft (https://github.com/unitycontainer/unity[Unity]) qui est à la traine par rapport à la concurrence. Pour ma part j'ai longtemps utilisé Ninject pour son côté _"Simple & Straightforward"_, très éfficace en développement bien qu'un peu lent à l'execution il faut l'admettre. Dernièrement j'ai décidé de changer et je me suis mis sur StructureMap, un container historique (le premier en C#) qui embarque d'innombrables capacités pour un niveau de performance très correct. C'est un bon compromis entre capacité et puissance et depuis la version 3 il ont l'équipe à fait un gros travail pour se rapporcher de l'approche de Ninject. De plus il est en développement actif depuis presque 10 ans, il dispose d'une documentation riche et complète et est à l'heure ou j'écris le seul à disposer d'un support pour DNX.
  
  