Лучшие бесплатные инструменты ORM для использования с .NET 2.0/3.5
Я заинтересован в использовании пакета Object-Relational Mapping для предстоящего проекта. Этот проект начнется как приложение ASP.NET, но будет иметь множество функциональных возможностей, которые в конечном итоге будут совместно использоваться приложениями WinForms. Может ли кто-нибудь предложить хорошие, бесплатные пакеты ORM, которые хорошо работают в ситуациях ASP.NET и WinForms?
Ответы
Ответ 1
SubSonic не столь обширен, как nHibernate; скорее, это прямой класс Active Record 1 на таблицу Data Access Layer.
Некоторые из функций - это инструмент запросов, возможность выполнения хранимых процедур и приложение для лесов в ASP.net. Вы можете работать и работать в течение 30 минут или меньше, с крошечной кривой обучения и минимальной конфигурацией в файле Config.app.
Ответ 2
Я всегда рекомендую Castle ActiveRecord. Это слой поверх NHibernate. Он отлично работает в обеих средах, о которых вы упомянули.
Ответ 3
nHibernate работает для меня, но все зависит от того, что вам нужно. Многие люди не хотят идти по всему DDD и модулю тестирования. Им просто нужно что-то простое сопоставить свою базу данных с объектами, чтобы сделать код немного приятнее. Если это случай, то посмотрите на Subsonic, а также, возможно, легче начать.
Ответ 4
Я предпочитаю Fluent NHibernate, который позволяет создавать сопоставления в сильно-типах С#, а не использовать обычные файлы NHibernate XML. Он также позволяет вам смешивать и сопоставлять (вы можете иметь сопоставления в коде и в XML).
Там хорошая статья о начале работы здесь.
Ответ 5
Попробуйте, Subsonic
и вы также можете использовать ORM Linq2Sql.
Ответ 6
NHibernate
Ответ 7
Я не исследовал ActiveRecord просто из-за того, что в соответствии с независимой службой он не работает так быстро, как многие другие ORM, и не имеет полной реализации Linq.
DataObjects.NET требует, чтобы все ваши сущности были получены из специальных классов, но взамен этого вы заслуживаете респектабельной производительности и хороших свойств, таких как поставщики памяти в памяти и наиболее полная реализация Linq.
Я провожу дневной просеивание через исходный код DBLinq. Я считаю, что он незрелый (многие функции Linq-To-SQL просто не реализованы), и я бы не рекомендовал его для производственных систем.
Итак, тогда... если вы ищете бесплатный, быстрый, открытый исходный код, совместимый с LINQ ORM, тогда DataObjects.NET - довольно безопасная ставка.
Ответ 8
Оформить заказ XmlDataMapper простой бесплатный ORM (лицензия LGPL), который оставляет низкий объем памяти по сравнению с другими гигантами.
Примерный проект должен быть достаточно хорошим, чтобы начать работу.
Чтобы интегрировать XmlDataMapper все, что вам нужно сделать, это 4 маленьких шага
- Создание бизнес-объекта/DTO для таблиц
- Создайте XML файл с информацией о сопоставлении между таблицей и DTO.
- Укажите DTO и xml файл в конфигурации.
- Просто вызовите DTOConverter.Convert(dataReader) и другие подобные методы, чтобы преобразовать вашу базу данных в DTO/Business Entity.
Ответ 9
попробуйте dbFrameIT, доступный из http://www.dbframeit.com. Он очень прост в использовании и предлагает бесплатную персональную лицензию.
Ответ 10
Я использую SubSonic около года для нескольких приложений ASP.NET, а также для приложения WinForms. С этим очень легко начать, и я еще не был "расписан в угол", выбирая его - почти всегда есть способ сделать то, что вам нужно, обычно легко. Я оцениваю, что он сбрил 30% от нашего времени разработки. Не настоящий инструмент ORM, но обеспечивает большую производительность.
Ответ 11
Смотрите Список инструментов ORM ".Net"
Он содержит все известные инструменты .Net ORM
Ответ 12
Я использую аннотации NHibernate и NHibernate. Он работает хорошо - без файлов сопоставления (entity.xml). К сожалению, вы должны в Log4net, для которого требуется крошечный xml файл.
Ответ 13
Habanero, отличный и мощный ORM. Он бесплатный (лицензия LGPL), работает с .net 2.0 (это очень важно для меня) и имеет мощные инструменты для генерации модели из базы данных (с пользовательскими именами классов и свойств, выборочной проверкой и т.д.).