Я вижу, что "IoC" и "DI" упоминаются почти везде для ASP.NET MVC. Хотя я хорошо знаю... "что это такое, это одна из тех почти двусмысленных, аморфных плавающих концепций, которые, кажется, прошли мимо меня, или я просто не смотрю в нужное место. С предстоящим выпуском ASP.NET MVC 3.0 я вижу его еще больше. Настолько, что он чувствует, что это целая часть программирования, которую я просто не знаю о.
Я пробовал искать книги по темам, но большинство из того, что я нахожу, делает много предположений (история в Ruby, понимание того, что это такое, но не то, как использовать его и т.д.).
Я просто спрашиваю заранее и ясно. Что такое IoC, и почему меня это волнует? Есть ли приличные сайты, которые охватывают это с точки зрения начинающего программиста? Предположите, я ничего об этом не знаю. Предположите, что я ничего не знаю, кроме С#. Я читал каждую книгу, блог и учебник по С# с .NET 1.1 до .NET 2.0, и когда .NET 3.5 и LINQ попали, он просто стал так много, чтобы справиться с тем, что я не мог идти в ногу. Я разработчик новичков, работающих в ASP.NET MVC/С#, и я не могу не чувствовать, что мне не хватает чего-то очень важного. (У меня много таких же чувств относительно DI (инъекция зависимостей))
Я googled, я читал блоги, я видел 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 и Unit Testing. Очень мало всего , что, и обнаруженные примеры обычно довольно бедные или очень трудно понять. Когда .NET был представлен, он был автономным. Мне не нужна была куча других концепций для запуска простых программ. Теперь .NET является уважаемым языком, и все под солнцем принимает его (nHibernate, MVC, MVP, MVVP, платформы Clouding, игровая архитектура и т.д.).
(Пожалуйста, не стесняйтесь указывать, если я просто грубо ошибаюсь. Я не называю себя "хорошим" каким-либо образом. Но я знаю С#, и я знаю это очень хорошо. Я считаю себя очень быстрым учеником и как трудно, как я с этим, я просто должен предположить, что есть какая-то "дыра", которую нужно заполнить)