Я получаю возможность разработать мягко сложный проект и изучать различные подходы, которые я могу использовать для решения этого проекта. Обычно я работал бы с традиционным 3-уровневым подходом, но, потратив некоторое время на различные варианты, у меня есть подозрение, что какой-то ORM может быть лучше, и я рассматриваю nHibernate. Тем не менее, я ищу некоторые рекомендации по внедрению nHibernate и, более конкретно, как я буду структурировать BL и DAL в сочетании с nHibernate.nHibernate, решение n-уровня + запрос на консультацию
С nHibernate я бы создал свои объекты (или DTO?) И использовал методы nHibernate для моих CRUD-взаимодействий в моем DAL. Но то, что я не могу разглядеть, - это объекты, определенные в DAL, вероятно, будут лучше расположены внутри BL, т. Е. Где валидация и другие вещи могут быть выполнены легко, и я просто использую DAL из различных ObjectFactory/ObjectRepositories , К сожалению, через многие статьи, которые я прочитал, это не упоминается и не обходит стороной, и я немного запутался.
Каков наиболее приемлемый или более простой способ реализации при использовании nHibernate в системе с тремя уровнями? В качестве альтернативы, каков обычный метод экспонирования объектов через бизнес-уровень из уровня данных в презентацию?
FWIW быть очень осторожны в процессе принятия решений, поскольку это может иметь длительные последствия для вашей карьеры если вы потерпите неудачу. У меня был более чем год опыта работы с NHibernate, закрывшись за 2 года до того, как я когда-либо имел полное корпоративное приложение в производстве с использованием NHibernate, а не тривиальное приложение. Если бы возникла такая возможность, что я мог бы сделать это раньше, я уверен, что буду иметь, но с задним числом. Я не думаю, что смог бы добиться успеха проекта, пока у меня не будет почти двухлетнего опыта работы с NHibernate , –
Итак, какого рода поиски я ищу здесь? Идея nHibernate состоит в том, чтобы сэкономить время в целом и облегчить проблемы, а не увеличивать их. Atm, я понимаю, что использование WCF подрывает некоторые функции nHibernate, но с использованием шаблона Respository и DTO оборачивается этим, мой план состоит в том, чтобы определить мой бизнес-объект в BL вместе с файлами сопоставления, а затем использовать шаблон Respository в DAL, это хороший план? – SeanCocteau
Я очень впечатлен nhibernate, теперь у нас есть средний или слегка сложный проект (asp.net MVC), но потребовалось некоторое время, чтобы получить hql. (иногда нам приходилось обманывать и использовать необработанный SQL - из-за отсутствия знаний), я также использовал классическое сопоставление/сущность bindind со старыми scool php/asp и sql spagetti, а в других проектах мы пробовали ADO.NET, а затем Объекты данных Java. Теперь о Нибенрате, который произвел на меня наибольшее впечатление. –