почему фреймворк ioc для MVC 3? - PullRequest
2 голосов
/ 08 декабря 2011

После долгих чтений я все еще не понимаю Unity для MVC 3. Особые точки

  1. Зачем его использовать? Я могу создать контроллер, который в своем конструкторе использует новый EF-контекст для тестирования.
  2. Как? Я продолжаю видеть, что биты являются частями, но есть ли сквозной переход к реализации Unity на MVC 3 (Live)? Кажется, их много на Beta и RC, но код всегда имеет проблемы с живыми фреймворками.

В настоящее время это не влияет на мое модульное тестирование, поскольку мои контроллеры имеют перегруженные конструкторы, как и мой контекст EF.

Ответы [ 2 ]

4 голосов
/ 09 декабря 2011

Если у вас небольшой проект, вы не сможете воспользоваться IoC.Пожизненное управление, если для меня плюс.Мне не нужно размещать хранилище (или сервисный уровень) в каждом контроллере.Это утончает мой код и создает объект для меня.Кроме того, я знаю, что у меня чистое разделение на случай, если мне когда-нибудь понадобится что-то изменить.Это почти заставляет меня.Я использую, например, IRepository, который поддерживается структурой сущности.Для тестирования я использую поддельную реализацию IRepository.Конечно, я мог бы вручную создать его в своем приложении, но это приводит к некоторым плохим практикам в более крупных проектах, и я теряю преимущества наличия интерфейса.на это в течение (15 минут) MVC и Unity для внедрения зависимостей с помощью пакета Nuget unity.mvc3: http://completedevelopment.blogspot.com/2011/12/using-dependency-injection-with-mvc.html

КстатиВнедрение зависимостей в .Net - лучшая книга на эту тему без сомнений.

0 голосов
/ 08 декабря 2011

Это очень полезно для подключения всех ваших зависимостей, обработки жизненного цикла ваших объектов, обработки ошибок, обработки транзакций, целей тестирования и ...

Все вышеперечисленные моменты являются преимуществами использования инфраструктуры IoC,но я настоятельно рекомендую использовать Ninject .он имеет очень удобный DSL для связывания модулей, имеет готовую библиотеку и расширения для ASP.NET MVC и является облегченной структурой DI с открытым исходным кодом.

Он также имеет много расширений.

...