Учитывая (текущий) проект, который реализует 2-уровневую архитектуру с хорошо разделенным на уровне уровня бизнес-уровнем, следуя типичной общей архитектуре DAO, впервые предложенной Биллом МакКафферти для CodeProject и кратко объясненной в главе10 из NHibernate в действии.
Этот проект необходимо перенести для выполнения операций CRUD и бизнес-логики через Microsoft CRM в качестве промежуточного уровня с использованием веб-служб.Пользовательские объекты и методы определены в CRM, чтобы имитировать текущую ситуацию.
Я не думаю, что будет хорошей идеей начать перемещать POCO туда и обратно так же, как мы это делали.Кроме того, такие функции, как отложенная загрузка, кэширование и параллелизм, должны обрабатываться по-разному.Учитывая, что мы должны минимизировать вызовы между уровнями представления и уровня представления, возникает еще одна проблема.
Реализация DTO кажется правильной причиной действий, но требует длинного пути (плюс путь обучения для команды).Ранее я занимался SOA-проектами, но сейчас я ищу путь наименьшего сопротивления.Можем ли мы продолжать использовать NHibernate, даже если прямое подключение к БД не будет возможным?Придется ли нам переосмыслить проект, или, возможно, вариант, представленный в .NET 4.0, является автономным?Насколько безболезненно это может стать?