Veo "IoC" y "DI" mencionados en casi todos lados para ASP.NET MVC. Aunque soy muy consciente de ... 'qué tipo de' estos son, es uno de esos conceptos flotantes casi ambiguos y amorfos que parece haber pasado por alto, o simplemente no estoy mirando en el lugar correcto. Con el próximo lanzamiento de ASP.NET MVC 3.0, lo estoy viendo aún más. Tanto que parece que es una parte entera de la programación, simplemente no sé.IoC y ASP.NET MVC, ¿dónde comienza todo?
He intentado buscar libros sobre los temas, pero la mayoría de lo que encuentro parece hacer muchas suposiciones (historia en Ruby, entender qué es pero no cómo usarla, etc.).
Estoy preguntando por adelantado y claro. ¿Qué es IoC, y por qué me importa? ¿Hay sitios web decentes que cubran esto desde una perspectiva de programador principiante? Supongamos que no sé nada al respecto. Supongamos que no sé nada más que C#. Leí cada libro, blog y tutorial en C# de .NET 1.1 a .NET 2.0, y cuando tocan .NET 3.5 y LINQ, se volvió tan difícil de manejar que no pude mantener el ritmo. Soy un desarrollador novato que trabaja en ASP.NET MVC/C# y no puedo evitar sentir que me estoy perdiendo algo muy importante. (Estoy teniendo los mismos sentimientos sobre DI (inyección de dependencia))
He buscado en Google, he leído blogs, he visto Castle.Windsor
, he visto código de ejemplo, he navegado libros y webcasts, y todavía estoy tan a oscuras. Se siente como una de esas historias internas en el trabajo que sabes que debes conocer, pero por alguna razón, no, y la escuela realmente no me preparó para eso.
StackOverflow siempre ha demostrado ser lo mejor de lo mejor en la comunidad de desarrollo para mí. A través de la universidad y el trabajo introductorio, y el trabajo independiente de bajo nivel, he amalgamado mi educación en programación de otros programadores (aunque, como yo lo entiendo, eso no es necesariamente algo de lo que avergonzarse). Entonces, una vez más, simplemente le digo a la comunidad.
¿Huh? No entiendo.
Hablando con muchos de mis colegas que intentan entrar en el mismo campo, muchos de ellos piensan lo mismo. Así que no puedo evitar sentirme en algún momento, los programadores "novatos" nos perdimos la nota de estos enfoques conceptuales de la codificación. Me gustaría no solo obtener esta pregunta, pero creo que un buen hilo para otras personas como yo que estamos tratando de entenderlo podría ser una idea inteligente (y si existe, debe hacerse más obvia)
Algo de lo que he encontrado que ha sido muy útil y ha sido http://www.theserverside.com/news/1321158/A-beginners-guide-to-Dependency-Injectionhttp://www.dotnetspark.com/kb/1222-inversion-control--beginner-guide.aspx
Pero todavía me quedo rascándome la cabeza en una serie de cuestiones de por qué esto es importante. A decir verdad, siento que una gran parte de la comunidad de desarrolladores se siente de esta manera tanto con IoC como con Unit Testing. Muy poco establece qué es y los ejemplos descubiertos son generalmente muy pobres o muy difíciles de entender. Cuando se introdujo .NET, fue independiente. No necesitaba muchos otros conceptos para ejecutar programas simples. Ahora, .NET es un lenguaje respetado, y todo bajo el sol lo está adoptando (nHibernate, MVC, MVP, MVVP, plataformas Clouding, arquitectura de juegos, etc.)
(Por favor, siéntase libre de señalar si solo soy flagrantemente mal. No me llamo a mí mismo "bueno" de ninguna manera. Pero sé C#, y lo sé muy bien.Me considero un aprendiz muy rápido y en un momento tan difícil como el que tengo con esto, solo tengo que suponer que hay algún 'agujero' que necesita ser llenado)
No solo usted. Siento lo mismo. –
Lea la "Inyección de Dependencia en .NET" de Manning por el propio Mark Seeman de SO. Es la mejor explicación que he visto, y usa MVC en los ejemplos. –
Recomendaría este libro: Pro ASP.NET MVC 2 Framework por Steven Sanderson. Le muestra cómo se usa IOC para inyectar controladores en Controller Factory y luego en sus dependencias. También es un excelente libro de asp.net mvc en general. – ElvisLives