Hello Я хочу создать свой первый проект nhibernate. Это будет переход от проекта winform, связанного со старой dataacess без сильного отображения orm. Проект довольно большой, поэтому я хотел бы иметь хорошую архитектуру с самого начала.nhibernate architecture
у меня будет некоторый слой:
- Repository: Создать сессию с NHibernate
- Модель: Объект боб, в основном он состоит из свойств геттер/сеттер с тем же именем в базе
Но мне понадобятся некоторые советы, как вы будете обрабатывать операции? Если я хочу создать элемент, я должен получить доступ непосредственно к nhibernate из кода? Или я должен создать уровень бизнес-логики?
В основном я нашел эту простую архитектуру для бизнес-уровня. http://www.codeproject.com/KB/architecture/NHibernateArchitecture.aspx Что вы думаете об этом?
Другой вопрос, это программа с сильной проверкой (домен очков), где должна быть проверка? в проекте winform или в бизнес-слое?
довольно большой означает, что команда из 5 разработчиков будет потенциально развиваться. Они работают над несколькими проектами, но я считаю, что каждый год в проекте работает 2 человека. Это программное обеспечение для продавцов очков. У нас есть только 2 слоя. Один для IHM, один для DataAccess, и мы не будем сегментировать больше слоев. В основном это будет базовая CRUD-логика или конкретный SELECT или UPDATE (например: SELECT * FROM table INNER JOIN table2 и т. Д.). Структуры не являются сложными. но существует сложная логика ex: если исправление glas имеет Addition> 0, это особый тип glas (прогрессивный) –
Пример проблемы.У нас очень сложная форма, которая позволяет выбрать весь предмет продажи (все части очков или объектива) с исправлениями и т. Д. Это вкладка, каждая вкладка является типом продукта. Если мы нажмем на некоторые параметры, некоторые элементы управления исчезнут и т. Д. Трудно поддерживать –
и последний ответ, это архитектура клиентского сервера. В вашем примере, когда я хочу создать элемент, это поле, заполненное в модуле winform (например: var item = new Item(); item.prop1 = ..; item.prop2 = ...; Item.Add (пункт);) ? или в бизнес-модуле (например: Item.AddNew (prop1, prop2), а в AddNew есть предыдущий код)? –