Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
чисто ради интереса кто-нибудь выбирает контейнер исходя из к примеру http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison , или как сложилось и тем пользуется? По идее время отдачи экземпляра не совсем спички так как обращения к контейнеру идут довольно часто. п.с. сам как то подсел на Autofac и дальше не слезал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 10:10 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
Я за родные DI контейнеры: http://msdn.microsoft.com/en-us/library/dd203101.aspx Если MVC, то DI контейнер доступен в самом фреймворке, так что ничего дополнительно ставить не нужно. Всё остальное на помойку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 10:23 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, Autofac. более логичной имплементации среди DI для .NET пока не встречал. везде что-нибудь, да через Ж. особенно убогий Unity. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:00 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУЕсли MVC, то DI контейнер доступен в самом фреймворке, так что ничего дополнительно ставить не нужно. чо за бред ты несёшь? ты поддержку от реализации отличаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:04 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
hVosttчо за бред ты несёшь? Не бросай слюну по сторонам, чтобы опять стыдно не было. По факту - что конкретно тебя интересует? hVosttты поддержку от реализации отличаешь? MVC поддерживает и реализует DI контейнер и фабрику. Что тебя смущает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:07 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuвремя отдачи экземпляра не совсем спички так как обращения к контейнеру идут довольно часто в рамках жизненного цикла, повторные запросы возвращают объекты максимально быстро. для критичных мест, можно отдавать фабрику вместо объекта, также можно задать вызов контруктора вручную, также можно отдавать по ключу и по индексу. ещё можно кешировать. в Autofac всё это делается очень гибко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:11 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУMVC поддерживает и реализует DI контейнер и фабрику. Что тебя смущает? смущает конечно. где ты там контейнер увидел? не говори, что DependencyResolver ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:15 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuПо идее время отдачи экземпляра не совсем спички так как обращения к контейнеру идут довольно часто. Если у тебя это критичное место (циклы, многопоточность и т.п.), почему бы вначале не отресолвить объекты, а потом использовать их инстансы в нужном месте? Каждой задаче - свой подход, не всегда в лоб это хорошо. hVosttсмущает конечно. где ты там контейнер увидел? не говори, что DependencyResolver Именно DependencyResolver в данном случае является DI контейнером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:17 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУИменно DependencyResolver в данном случае является DI контейнером. это сервис локатор . никакие зависимости MVC не разруливает, потому что никакой контейнер он не реализует. вместо этого он предоставляет точки расширения в виде фабрик, куда легко подставляется нужный контейнер, хоть Unity, хоть Autofac, хоть что-угодно-другое. признавайся. пил вчера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:20 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
давай только без ругани) я просто хотел узнать кто что юзает и почему) пример со ссылкой привел как возможный фактор выбора контейнера для кого то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:22 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
hVosttэто сервис локатор . Садись - двойка. DependencyResolverПредоставляет точку регистрации для сопоставителей зависимостей, реализующих IDependencyResolver или интерфейс локатора общей службы IServiceLocator. Локатор предоставляет точку регистрации для локатора? Мало масляное hVosttникакие зависимости MVC не разруливает, потому что никакой контейнер он не реализует. вместо этого он предоставляет точки расширения в виде фабрик, куда легко подставляется нужный контейнер, хоть Unity, хоть Autofac, хоть что-угодно-другое. Он регистрирует и сопоставляет. Это основное, что делает DI. Всякие управления жизнью и прочие фантики - навороты, которые чаще всего просто не нужны. Что-то типа простенького модного SimpleIoC. Учи матчать. hVosttпризнавайся. пил вчера? Нет. А ты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:24 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuдавай только без ругани) я просто хотел узнать кто что юзает и почему) пример со ссылкой привел как возможный фактор выбора контейнера для кого то если используешь IoC, главное это удобство и логичность использования. если тебе использовать выбранный DI контейнер удобно, значит сделал верный выбор. скорость резолва не существенна. правда, если уже ранее зарезолвенный объект контейнер отдаёт всё равно медленно, то сразу в топку его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:24 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУСадись - двойка. млять. главное, держу в руках книжку от Microsoft, где черным по белому написано, что DependencyResolver в ASP.NET MVC это Service Locator, и целая глава накалякана про отличия SL от DI... будешь продолжать возражать?? не позорься уж. МСУЭто основное, что делает DI двойешник-колышнек ты. основное отличие DI от SL: SL — класс запрашивает внешний компонент для получения его зависимостей DI — класс получает зависимости через конструктор (или открытые свойства) типа. матчасть дуй учить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:28 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
hVosttМСУСадись - двойка. млять. главное, держу в руках книжку от Microsoft, где черным по белому написано, что DependencyResolver в ASP.NET MVC это Service Locator, и целая глава накалякана про отличия SL от DI... будешь продолжать возражать?? не позорься уж. Это раньше его по привычке так называли. Смотри, вот подтверждение: http://www.asp.net/mvc/tutorials/hands-on-labs/aspnet-mvc-4-dependency-injection IDependencyResolver interface replaces the previous IMvcServiceLocator. Implementers of IDependencyResolver must return an instance of the service or a service collection. На данный момент DependencyResolver может служить полноценным DI контейнером, который и регистрирует и сопоставляет. Кроме того, доступна фабрика DefaultControllerFactory, которую можно инициализировать через ControllerBuilder.Current.SetControllerFactory. Это еще более расширяет IoC функционал, особенно это полезно для инъекции в конструктор контроллера. То есть, сопоставлением в MVC занимается не только DependencyResolver. Всё это полноценные DI контейнеры. hVosttдвойешник-колышнек ты. основное отличие DI от SL: SL — класс запрашивает внешний компонент для получения его зависимостей DI — класс получает зависимости через конструктор (или открытые свойства) типа. матчасть дуй учить Бездарность :) DependencyResolver может и запрашивать и получать. Документацию читал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:36 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУDependencyResolver может и запрашивать и получать. Документацию читал? у меня книжка по MVC 4, на инглише не так уж и давно пришла из Амазона. да читал. и по букве доки там от DI только поддержка . инъекция не выполняется . как можно говорить о Dependency Injection без Injection? это логика, Спок (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:39 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУ, ну умора.... 1. перейди по ссылке которую ты дал http://www.asp.net/mvc/tutorials/hands-on-labs/aspnet-mvc-4-dependency-injection 2. Нажми Ctrl-F и вставь "No parameterless constructor defined for this object" не дошло? без Unity/Autofac/Ninject ты не получишь никакого DI. даже близко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:43 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
Хвост, вот эта инфа из букваря окончательно тебя опустит ниже плинтуса. Я же знаю, как ты не любишь читать доки The Service Locator Pattern Идет описание паттерна. А внизу: Related PatternsThe following patterns are related to the Service Locator pattern: Dependency Injection. This pattern solves the same problems as the Service Locator pattern, but it uses a different approach. Inversion of Control. The Service Locator pattern is a specialized version of this pattern. It inverts an application's traditional flow of control. It is the object that is called instead of the caller that controls a process. А теперь логическая нить, с которой у тебя обычно проблемы. 1. DI и IoC - это родственные паттерны, Service Locator - отдельная песня. 2. DependencyResolver может инжектировать. Следовательно, удовлетворяет первому пункту (паттерн Dependency Injection). 3. DependencyResolver поддерживает инверсию, он может сопоставлять. Следовательно, удовлетворяет второму пункту (паттерн Inversion of Control). DummyDependencyResolver Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: c# 1. Код: c# 1. Присаживайся. Сегодня опять двойка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:44 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, ну умора.... 1. перейди по ссылке которую ты дал http://www.asp.net/mvc/tutorials/hands-on-labs/aspnet-mvc-4-dependency-injection 2. Нажми Ctrl-F и вставь "No parameterless constructor defined for this object" не дошло? без Unity/Autofac/Ninject ты не получишь никакого DI. даже близко. Рассмешил Срочно бежать читать про IControllerFactory. Если лень читать доки, возьми у меня готовый рецепт: http://codearticles.ru/articles/2351 Никаких Unity/Autofac/Ninject, всё работает на штатном функционале MVC. Вот пример параметризации конструктора: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Опять двойка, сударь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:46 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУ, МСУ1. DI и IoC - это родственные паттерны, Service Locator - отдельная песня. DI и SL родственные паттерны. в IoC это архитектурный принцип (а не паттерн). МСУ2. DependencyResolver может инжектировать. не может и никогда не будет. потому что это Service Locator. в чистом виде. МСУ3. DependencyResolver поддерживает инверсию, он может сопоставлять. он не может поддерживать инверсию. это абсурдное по своей сути утверждение. прекращай дёргать инфу из букваря. и попробуй в чистый проект MVC без юнити и других контейнеров, добавить в любой контроллер зависимость в виде конструктора. в результате будет ошибка выполнения. фабрика не сможет создать экземпляр контроллера, и прямым текстом тебе об этом скажет "иди учи матчасть" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:49 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУРассмешил Срочно бежать читать про IControllerFactory. Если лень читать доки, возьми у меня готовый рецепт: http://codearticles.ru/articles/2351 Никаких Unity/Autofac/Ninject, всё работает на штатном функционале MVC. Вот пример параметризации конструктора: во-первых, это исключительно реализация фабрики, а не DependencyResolver, и она не станет разруливать дочерние зависимости. проверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:52 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
hVosttDI и SL родственные паттерны. в IoC это архитектурный принцип (а не паттерн). Не нужно тут коверкать своим википедийным языком. В доке MS четко написано: Inversion of Control - The Service Locator pattern is a specialized version of this pattern. Принцип, паттерн, подход... Решил позаниматься буквоедством, человек? hVosttМСУ2. DependencyResolver может инжектировать. не может и никогда не будет. потому что это Service Locator. в чистом виде. Лично этот класс не может, но у него есть штатный помощник - IControllerFactory :) hVosttМСУ3. DependencyResolver поддерживает инверсию, он может сопоставлять. он не может поддерживать инверсию. это абсурдное по своей сути утверждение. Resolve - чем тебе не инверсия? В чем обсурдность? hVosttпрекращай дёргать инфу из букваря. и попробуй в чистый проект MVC без юнити и других контейнеров, добавить в любой контроллер зависимость в виде конструктора. в результате будет ошибка выполнения. фабрика не сможет создать экземпляр контроллера, и прямым текстом тебе об этом скажет "иди учи матчасть" Я тебе дал ссылку на рецепт. Изучи нативные возможности MVC :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:55 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
hVosttво-первых, это исключительно реализация фабрики, а не DependencyResolver, и она не станет разруливать дочерние зависимости. проверь. Слушай, ну тут уже пошло меряние пиписьками. Я тебе изначально сказал, что это не тот богатый функционал, который есть в Unity, автофаках и прочей ипостаси. Ты чем читаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 11:57 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
МСУВ доке MS четко написано: Inversion of Control - The Service Locator pattern is a specialized version of this pattern SL является паттерном, реализующим IoC. всё правильно. только IoC это не паттерн. не может быть паттерна. ты ещё скажи, что "разделяй и властвуй" — тоже паттерн. МСУЛично этот класс не может, но у него есть штатный помощник - IControllerFactory :) это тебя заносит... если я в качестве реализации IControllerFactory подсуну класс, размечающий и форматирующий харды, это что получается, IControllerFactory ещё и офигенная утилита для управления дисками?? если ты чего-то туда запихал — свою кастрированную реализацию подобия DI, это не называется нативной поддержкой . иначе, любой человек — это президент в чистом виде, осталось только наделить его полномочиями. не неси ерунду. признай что глупость сказал опростоволосился! МСУЯ тебе дал ссылку на рецепт. Изучи нативные возможности MVC :) ты мне дал ссылку на кастомную реализацию DI. и ещё хватает смелости называть это нативной реализацией?? ну харе уже чушь-то пороть! в чистом ASP.NET MVC нет никакого DI. но есть возможность запихнуть свой говнокод в фабрику или поставить Autofac ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 12:03 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
hVosttэто не называется нативной поддержкой тьфу, поддержка-то есть... нативного DI нету ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 12:05 |
|
||
|
выбор IoC
|
|||
|---|---|---|---|
|
#18+
Хвост, смотри, локатор только ищет и всё. Что следует даже из его названия. То есть вот это поведение чисто локатора, не спорю: Код: c# 1. А DependencyResolver может делать еще и так: IDependencyResolver Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. И даже вот так: Код: c# 1. То есть это уже контейнер, получается. Да, без навороченных управлений life time, без непосредственного инжектирования - для этого есть фабрика, можно использовать её. Да и инжектирование многим не нужно, достаточно просто резолвить по месту требования. Лично я в MVC не использую инжектинг через фабрику - у меня в базовом контроллере поднимаются с помощью Lazy через инверсию все репозитории (контексты) и доступны в унаследованных контроллерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2013, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38473985&tid=1357917]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 392ms |

| 0 / 0 |
