Здравствуйте, Shmj, Вы писали:
S>Infrastructure оставляете для реализации? Обычно под этим подразумевают контракты. Иногда встречал MyApp.DataAccess.Infrastructure и MyApp.DataAccess.MsSQL или MyApp.DataAccess.Implementation.MsSQL
Интерфейсы, контракты итд — все в просто App.Infrastructure — все сборки с "уточненными" именами реализации. Мне кажется так меньше путаницы.
S>Какой смысл вкладываете в Infrastructure?
Все что связано в внешними по отношению к BL сервисами. Доступ к данным (в любой форме), т.к. BL не в курсе в какой конкретно БД или еще где лежат данные, доступы к внешним сервисам (например отправляем email) итд
Doc>>* MyApp.Bootstrap — умеет по конфигу собрать нужные DLL и подготовить IoC контейнер S>Подробнее.
А что именно? Тут лежит класс, который умеет из сборок выбирать нужное.
Здесь все от простого:
container.Register<ISomething, Something>()
до, например, обхода всех загруженных сборок и вытягивание классов и интерфейсов по заданному интерфейсу-маркеру.
На выход коентейнер, готовый выдавать реализации классов BL по интерфейсам.