Я вижу, что "IoC" и "DI" упоминаются почти везде для ASP.NET MVC. Хотя я хорошо понимаю ... что-то вроде этого, это одна из тех почти двусмысленных, аморфных плавающих концепций, которая, кажется, либо обошла меня стороной, либо я просто не смотрю в нужном месте. В предстоящем выпуске ASP.NET MVC 3.0 я вижу это еще больше. Настолько, что создается впечатление, что это целая часть программирования, которую я просто не знаю о .
Я пытался искать книги по предметам, но большая часть того, что я нахожу, кажется, делает много предположений (история в Ruby, понимание того, что это такое, но не то, как его использовать и т. Д.).
Я просто спрашиваю заранее и ясно. Что такое IoC, и почему меня это волнует? Есть ли достойные сайты, которые освещают это с точки зрения начинающего программиста? Предположим, я ничего не знаю об этом. Предположим, я ничего не знаю, кроме C #. Я читал каждую книгу, блог и учебник по C # от .NET 1.1 до .NET 2.0, и когда вышли .NET 3.5 и LINQ, стало так много справляться, что я не мог идти в ногу. Я начинающий разработчик, работающий в ASP.NET MVC / C #, и я не могу помочь, но чувствую, что упускаю что-то очень важное. (У меня много таких же чувств к DI (инъекция зависимости))
Я гуглил, я читал блоги, я видел Castle.Windsor
, я видел пример кода, я просматривал книги и веб-трансляции, и я все еще в неведении. Это похоже на одну из тех внутренних историй на работе, о которых вы знаете, что должны знать, но по какой-то причине вы этого не знаете, и школа действительно не подготовила меня к этому.
StackOverflow всегда был для меня лучшим из лучших в сообществе разработчиков. Через колледж и вводную работу, а также работу на низком уровне, я объединила свое обучение программированию с другими программистами (хотя, насколько я понимаю, это не обязательно что-то, за что должно быть стыдно). Итак, еще раз, я просто заявляю сообществу.
А? Я не понимаю.
Разговаривая со многими моими коллегами, которые пытаются проникнуть в одну и ту же область, многие из них чувствуют то же самое. Так что я не могу не чувствовать, что где-то рядом, мы, «новички», программисты, пропустили памятку об этих концептуальных подходах к кодированию. Я хотел бы не только получить ответ на этот вопрос, но я думаю, что хорошей веткой для других людей, таких как я, которые пытаются понять, может быть разумная идея (и если она существует, ее нужно сделать более очевидной)
Вот что я нашел полезным: http://www.theserverside.com/news/1321158/A-beginners-guide-to-Dependency-Injection и http://www.dotnetspark.com/kb/1222-inversion-control--beginner-guide.aspx
Но мне все еще приходится чесать голову по ряду вопросов о том, почему это важно. Честно говоря, я чувствую, что значительная часть сообщества разработчиков на самом деле так относится к IoC и модульному тестированию. очень мало, что это такое , и обнаруженные примеры, как правило, довольно скудны или очень трудны для понимания. Когда был представлен .NET, он был автономным. Мне не нужно было кучу других концепций для запуска простых программ. Теперь .NET является уважаемым языком, и все под солнцем принимает его (nHibernate, MVC, MVP, MVVP, платформы Clouding, игровая архитектура и т. Д.)
(Пожалуйста, не стесняйтесь указывать, если я просто вопиюще неправ. Я ни в коем случае не называю себя «хорошим». Но я знаю C # и знаю это очень хорошо. Я считаю себя очень быстрым учеником и как В это трудное время я просто должен предположить, что есть некая «дыра», которую нужно заполнить)