Мне тоже самое интересно. С одной стороны, есть NH с его бесплатным открытым исходным кодом, но с ограниченными возможностями поддержки. С другой стороны, довольно новое дополнение к хорошо известной коробке поставщика инструментов, OA.
ОА стоит денег, но вы получаете поддержку. NH свободен, но поддержка, по крайней мере в моем кратком опыте, была известна как ограниченная и медленная.
Я думаю, что оба, вероятно, хорошие продукты. Я решил попробовать О.А., так как я уже пользуюсь инструментами Telerik. ОА и его поддержка в любом случае оплачиваются.
NH использует обычные классы и объекты без украшений для свойств классов. Для OA требуются украшения (красиво сгенерированные графическим интерфейсом OA Visual Studio).
NH требует «сеанса», в котором выполняется единица работы с базой данных; ОА называет это «сфера». Оба используют «транзакцию».
OA имеет интеграцию с Visual Studio и может выполнять прямое и обратное сопоставление с базой данных и из нее. Прямое сопоставление позволяет создавать классы, а затем «сохранять» их в базе данных для сохранения. «Обратное» - это для вас разработчики «доменной модели», что я предпочитаю.
OA определенно претерпевает некоторые важные обновления, так как Telerik играет «в догонялки» после недавнего приобретения и выпуска OpenAccess, ранее принадлежавшего Vanatec (из Германии).
Что касается «простоты использования» и «производительности / масштабируемости», мне бы хотелось знать, где каждый из них стоит. Я уверен, что кто-то мог бы провести честное испытание между ними и сделать эти определения.
Одна вещь, которая мне нравится в NH, - это доступные шаблоны для генерации необходимого кода не только для «тупых» бизнес-объектов (которые все OA генерирует сейчас), но и для BLL и DLL. После долгих разговоров с Telerik у меня сложилось впечатление, что они планируют использовать больше вариантов генерации кода, поэтому OA более полезен из коробки.
Надеюсь, это поможет! Кто-то, пожалуйста, попробуйте получить статистику по вопросам производительности.