MVC IoC Компонент Стиль жизни PerWebRequest - PullRequest
0 голосов
/ 21 июля 2009

Я только начинал чувствовать себя комфортно с MVC, когда кто-то упомянул мне контейнеры IoC, и теперь я чувствую, что упал на несколько тысяч футов и мне нужно снова подняться. У меня было искушение просто игнорировать их, но потом я прочитал «Компонентный образ жизни». Для меня это кажется большой проблемой, как было объяснено, что незафиксированные изменения в обновлениях базы данных могут просачиваться по запросам, если для моего хранилища установлен стиль жизни Singleton вместо PerWebRequest .

Итак, мой вопрос ... есть ли способ создать Компонентный стиль жизни аффект без использования контейнеров IoC, или это единственный вариант?

1 Ответ

0 голосов
/ 21 июля 2009

Вы всегда можете создать реализацию как Singleton. Однако, говоря о репозитории, я не думаю, что в этом есть необходимость. Это не настоящая цель использования IoC. Использование IoC отделяет пользователя вашего кода от самой реализации. Это облегчает тестирование, так как вы можете менять местами и при необходимости. Кроме того, в моем случае я нахожу это очень полезным для других целей. Взять кеширование например. В своем локальном устройстве я использую Lucene.NET, чтобы обеспечить реализацию кеша дисковым кешем. Затем, когда я подталкиваю к своим платформам разработки и промежуточного уровня, я использую стандартную реализацию кэша .net. Затем, когда я запускаю производство, я могу использовать реализацию Velocity или MemCached. Мне не нужно делать ничего необычного, чтобы добраться из точки А в точку Б, поскольку я использую StructureMap (мой предпочтительный контейнер IoC).

Кажется, что Компонентный образ жизни - это скорее решение по проекту, чем решение IoC. Все три из упомянутых здесь методов управления жизненным циклом объекта могут быть выполнены без IoC ... но это может быть интересным побочным эффектом IoC (в некоторых случаях).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...