Vedo "IoC" e "DI" menzionati praticamente ovunque per ASP.NET MVC. Benché io sia ben conscio di ... 'tipo di' cosa siano, è uno di quei concetti fluttuanti, quasi ambigui e amorfi, che sembra mi abbiano superato, o semplicemente non sto guardando nel posto giusto. Con la prossima versione di ASP.NET MVC 3.0, la vedo ancora di più. Tanto che sembra che sia tutta una parte della programmazione, semplicemente non so di.IoC e ASP.NET MVC, da dove inizia tutto?
Ho provato a cercare libri sugli argomenti, ma la maggior parte di ciò che trovo sembra fare molte assunzioni (la storia in Ruby, capire cosa è ma non come usarlo, ecc.).
Sto solo chiedendo in anticipo e in modo semplice. Che cos'è è IoC e perché me ne importa? Ci sono siti web decenti che coprono questa prospettiva da un programmatore principiante? Supponi di non sapere nulla a riguardo. Supponi di non sapere altro che C#. Ho letto ogni libro, blog e tutorial su C# da .NET 1.1 a .NET 2.0, e quando .NET 3.5 e LINQ hanno colpito, è diventato così tanto da gestire che non riuscivo a tenere il passo. Sono uno sviluppatore principiante che lavora in ASP.NET MVC/C# e non posso fare a meno di sentire che mi manca qualcosa di molto importante. (Sto avendo molti degli stessi sentimenti per DI (dipendenza da iniezione))
Ho cercato su Google, ho letto blog, ho visto Castle.Windsor
, ho visto codice di esempio, ho sfogliato libri e webcast, e sono ancora così al buio. Sembra una di quelle storie al lavoro che sai che dovresti sapere, ma per qualche ragione, non lo fai, e la scuola non mi ha preparato davvero per questo.
StackOverflow ha sempre dimostrato di essere il meglio del meglio nella comunità di sviluppo per me. Attraverso il college, il lavoro introduttivo e il lavoro di freelance di basso livello, ho amalgamato la mia formazione sulla programmazione da parte di altri programmatori (anche se, a quanto ho capito, non è necessariamente qualcosa di cui vergognarsi). Quindi, ancora una volta, sto semplicemente affermando la comunità.
Eh? Non capisco.
Parlando con molti colleghi che cercano di entrare nello stesso campo, molti di loro si sentono allo stesso modo. Quindi non posso fare a meno di sentire da qualche parte lungo la linea, noi programmatori "principianti" abbiamo perso il memo di questi approcci concettuali alla codifica. Mi piacerebbe non solo rispondere a questa domanda, ma penso che una buona discussione per altre persone come me che stanno cercando di capirlo potrebbe essere un'idea intelligente (e se esiste, deve essere resa più ovvia)
Alcuni di quello che ho trovato che è stato utile è stato http://www.theserverside.com/news/1321158/A-beginners-guide-to-Dependency-Injection e http://www.dotnetspark.com/kb/1222-inversion-control--beginner-guide.aspx
ma sto ancora lasciato graffiare la mia testa su una serie di questioni sul perché questo è importante. Sinceramente, ritengo che gran parte della comunità di sviluppatori si senta in questo modo sia sull'IoC che sul Test delle unità. Molto poco è lo che è lo e gli esempi scoperti sono in genere piuttosto scadenti o molto difficili da capire. Quando .NET è stato introdotto, era autonomo. Non avevo bisogno di un mucchio di altri concetti per far girare programmi semplici. Ora, .NET è un linguaggio rispettato e tutto ciò che sta sotto il sole lo sta adottando (nHibernate, MVC, MVP, MVVP, piattaforme di clouding, architettura di gioco, ecc.)
(Sentitevi liberi di indicare se sono solo in flagrante sbagliato, non mi definisco 'buono' con qualsiasi mezzo, ma conosco C# e lo conosco molto bene.Mi considero uno studente molto veloce e con la stessa difficoltà che ho con questo, devo solo supporre che ci sia un buco là fuori che deve essere riempito)
Non solo tu. Mi sento lo stesso. –
Leggete "Dependency Injection in .NET" di Manning di Mark Seeman. È la migliore spiegazione che ho visto e usa MVC negli esempi. –
Consiglierei questo libro: Pro ASP.NET MVC 2 Framework di Steven Sanderson. Ti mostra come viene utilizzato IOC per iniettare i controller nella Controller Factory e quindi le loro dipendenze. Anche un ottimo libro mvc asp.net in generale. – ElvisLives