Я проектированием C# приложениюПроектирование слоистого приложения с NHibernate и контекст изменения базы данных
- Презентации (веб-сайт + сгибать приложения)
- Бизнеса логического слой (может быть WCF для того, чтобы многоканальные клиентских платформ)
- Data Access Layer (с NHibernate)
мы собираемся интегрировать наше решение в environnements базы данных многих preexistant клиента, и мы хотели бы использовать NHibernate в DAL .. M y коллега отметил, что генерация классов из БД клиента (например, User или Image) с NHibernate приведет к тому, что BLL взорвется в нашем лице при каждом изменении БД! Итак, вопрос в том, как предотвратить это? Мы думаем о создании бизнес-объектов и отображать объекты NHibernate для этих BO (гул, это делает их DTO?) С помощью AutoMapper и предотвращать изменения dal от влияния BLL .. Это путь?
Спасибо!
EDIT:
Чтобы дать лучшее понимание того, что мы пытаемся достичь, возможно, потребуется контекст: Мы строим приложение фото хранения/обмена в Flex для переднего плана и C# на back-end основном для нашей компании, поэтому мы обрабатываем все аспекты кода и БД.
Но: этот продукт также может быть куплен ярусами, которые, в конечном итоге, уже имеют базу данных с таблицей пользователя или таблицей изображений. Я думаю здесь о новой перспективе, у которой таблица изображений с несколькими сотнями миллионов строк и добавление столбцов для нашей бизнес-логики не произойдет из-за слишком длительного АЛЬТЕРИРОВАНИЯ таблицы.
Несмотря на то, что это возможно (таблица пользователя, например, может быть изменена из-за меньших строк), мы спрашиваем себя, как обрабатывать изменения структуры таблицы, не влияя на все наше решение каждый раз, когда нам приходится интегрироваться в уровень базы данных, от BLL до клиентского приложения в Flex!
Мне нравится этот ответ. Я вижу, что op говорит в терминах PL, BLL и DAL, и, напротив, этот ответ касается DDD. Я хотел бы получить немного больше информации в этом отношении. – blu
Я отредактировал первое сообщение, чтобы дать вам больше контекста. Я думаю, что несколько элементов таблицы + пользовательский доступ к данным являются частью решения! – Breakdown