Шаблон репозитория и 3-х уровневая архитектура - PullRequest
2 голосов
/ 19 января 2012

Я сталкиваюсь с той же дилеммой, о которой упоминалось в этом Вопросе.

Шаблон репозитория в многоуровневой архитектуре

Является ли внедрение зависимостей способом продвижения вперед?Подходят ли эти шаблоны для структуры типа ASP.Net MVC?

Я хотел бы знать, как в отрасли реализуется шаблон репозитория в 3-уровневой архитектуре.

С уважением

1 Ответ

1 голос
/ 19 января 2012

Ответ на вопрос, который вы только что упомянули, дан. Вам действительно не нужно ссылаться на DAL непосредственно в вашем коде, вместо этого вы должны использовать IoC. Таким образом, вы можете легко отделить зависимость между слоями. и использование IoC также может сделать это возможным для модульного тестирования ваших методов репозитория BLL.

В: Внедрение зависимостей - это путь вперед? Подходят ли эти шаблоны для типовой структуры ASP.Net MVC?

A: Шаблон репозитория подходит для MVC. Основное преимущество использования шаблона репозитория с IoC / Dependency Injection состоит в том, чтобы отделить интересующий вас слой и сделать ваши классы тестируемыми для модулей.

В: Я хотел бы знать, как в отрасли реализуется шаблон репозитория в 3-уровневой архитектуре.

A: как описано в другом вопросе, который вы упомянули. Шаблон репозитория в многоуровневой архитектуре . Вы можете попробовать внедрить шаблон репозитория в свой уровень Business Logic. а на уровне представления вы можете использовать IoC для настройки классов и их зависимостей.

 public static class ServiceLocator
    {
        public static readonly IUnityContainer IoC = new UnityContainer();

        static ServiceLocator()
        {
            IoC.RegisterInstance(IoC, new ContainerControlledLifetimeManager());
        }
    }

Вот как вы можете настроить IoC в global.ascx

        ServiceLocator.IoC.RegisterType<ICampusRepository, CampusRepository>();
        ServiceLocator.IoC.RegisterType<IReasonRepository,ReasonRepository>();
...