Ответ на вопрос, который вы только что упомянули, дан. Вам действительно не нужно ссылаться на 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>();