Je vois "IoC" et "DI" mentionnés presque partout pour ASP.NET MVC. Bien que je sois bien conscient de ... de ce que c'est, c'est un de ces concepts flottants presque ambigus et amorphes qui semble m'avoir échappé, ou alors je ne regarde pas au bon endroit. Avec la sortie prochaine de ASP.NET MVC 3.0, je le vois encore plus. À tel point que j'ai l'impression qu'il s'agit d'une partie entière de la programmation que je n'ai fait qu'effleurer. ne savent pas .
J'ai essayé de chercher des livres sur le sujet, mais la plupart de ce que je trouve semble faire beaucoup d'hypothèses (histoire de Ruby, comprendre ce que c'est mais pas comment l'utiliser, etc).
Je pose simplement la question de manière franche et directe. Qu'est-ce que c'est ? est IoC, et pourquoi m'en préoccuper ? Existe-t-il des sites web décents qui couvrent ce sujet du point de vue d'un programmeur débutant ? Supposons que je n'y connaisse rien. Supposons que je ne connaisse rien d'autre que le C#. J'ai lu tous les livres, blogs et tutoriels sur le C# de .NET 1.1 à .NET 2.0, et lorsque .NET 3.5 et LINQ sont apparus, je n'arrivais plus à suivre. Je suis un développeur débutant qui travaille en ASP.NET MVC/C# et je ne peux m'empêcher de penser qu'il me manque quelque chose de très important. (J'ai les mêmes sentiments à propos de l'injection de dépendances (DI)).
J'ai cherché sur Google, j'ai lu des blogs, j'ai vu Castle.Windsor
J'ai vu des exemples de code, j'ai parcouru des livres et des webcasts, et je suis toujours dans le noir. C'est comme une de ces histoires internes au travail que vous savez que vous devriez connaître, mais pour une raison quelconque, vous ne le savez pas, et l'école ne m'a pas vraiment préparé à cela.
Pour moi, StackOverflow a toujours été la meilleure des meilleures communautés de développement. Grâce à l'université, au travail d'initiation et au travail indépendant de bas niveau, j'ai amalgamé mon éducation à la programmation auprès d'autres programmeurs (bien que, d'après ce que je comprends, ce n'est pas nécessairement quelque chose dont il faut avoir honte). Une fois de plus, je m'adresse donc simplement à la communauté.
Hein ? Je ne comprends pas.
En parlant avec beaucoup de mes collègues qui essaient de percer dans le même domaine, beaucoup d'entre eux ressentent la même chose. Je ne peux donc pas m'empêcher de penser que, quelque part, nous, les programmeurs "débutants", avons manqué le mémo de ces approches conceptuelles du codage. J'aimerais non seulement obtenir une réponse à cette question, mais je pense qu'un bon fil de discussion pour d'autres personnes comme moi qui essaient de comprendre serait une idée intelligente (et s'il en existe un, il faut le rendre plus évident).
Voici quelques-unes des choses que j'ai trouvées et qui m'ont été utiles http://www.theserverside.com/news/1321158/A-beginners-guide-to-Dependency-Injection y http://www.dotnetspark.com/kb/1222-inversion-control--beginner-guide.aspx
Mais je reste perplexe sur un certain nombre de points quant à l'importance de cette démarche. En vérité, j'ai l'impression qu'une grande partie de la communauté des développeurs ressent la même chose à propos de l'IoC et des tests unitaires. Très peu de choses sont exposées ce que et les exemples découverts sont généralement assez pauvres ou très difficiles à comprendre. Lorsque .NET a été introduit, il était autonome. Je n'avais pas besoin d'un tas d'autres concepts pour faire fonctionner des programmes simples. Aujourd'hui, .NET est un langage respecté et tout le monde l'adopte (nHibernate, MVC, MVP, MVVP, plateformes de clouding, architecture de jeux, etc.)
(N'hésitez pas à me signaler si je me trompe de manière flagrante. Je ne me qualifie pas de "bon", loin de là. Mais je connais le langage C#, et je le connais très bien. Je me considère comme quelqu'un qui apprend très vite et si j'ai autant de mal avec ça, je dois supposer qu'il y a un "trou" à combler).