ORM по каким стандартам я могу выбрать? - PullRequest
3 голосов
/ 28 декабря 2010

В: Этот вопрос о том, как я могу определить или выбрать удобный ORM для моего веб-приложения.при запуске нового веб-приложения По каким критериям я могу считать, что определенный ORM лучше, чем другой, для моего проекта или случая (веб-приложения)?

другая часть моеговопрос: когда я запускаю любое веб-приложение, я использую три слоя:

  1. слой БД (который содержит соединения и обрабатывает операции CRUD)
  2. уровень менеджеров (доступ к даннымLayer) класс для каждой таблицы в моей базе данных (слабо связанный с предыдущим уровнем), он содержит операции CRUD для конкретной таблицы и другие необходимые операции.
  3. интерфейсный уровень ..

и я использую источник данных объекта. Это рассматривается как ORM (как концепция) или я ошибаюсь в понимании этой концепции.

примечание: я все еще новичок вэтой области ,, и каждый день я узнаю больше о веб-разработке.пожалуйста, я хочу объяснения и предложения по этому вопросу.

Спасибо заранее.

Ответы [ 8 ]

8 голосов
/ 28 декабря 2010

Что касается ORM, это все о вкусе.nhibernate и Entity Framework являются наиболее распространенными.

5 голосов
/ 30 декабря 2010

Вы не найдете конкретных критериев выбора - это вопрос вкуса и предпочтения, но вы можете найти сравнительные характеристики здесь

3 голосов
/ 29 декабря 2010

Я использую Devart LinqConnect для небольших и средних проектов (особенно для веб-проектов) и использую Entity Framework для больших проектов.Эти продукты удобны и гибки и позволяют быстро начать.В LinqConnect входят провайдеры, позволяющие работать с Oracle, MySQL, PostgreSQL, SQLite.Я использую сторонних поставщиков для настройки Entity Framework.

1 голос
/ 05 января 2011

Что касается простого доступа к базе данных, то, похоже, существует много мнений о том, какой из них является наилучшим способом доступа к базе данных.

В настоящее время я использую NHibernate , который очень хорошо работает в MS Sql и MySql.Я нашел запись в блоге, которая показывает, как подключиться к MYSQL с помощью Nhibernate здесь .

Решающим фактором для меня будет просмотр базы данных, которую вы собираетесь использовать, и затем созданиерешение оттуда.Скотт Гатри (Scott Guthrie) объявил о Code First Framework, который использует платформу Entity Framework версии 4. Хотя я знаю, что Entity Framework 4.0 работает с Mysql ( link ), я не уверен насчет Code First.Учебное пособие по Code First Development можно найти здесь .

В конечном счете, я думаю, что все они в значительной степени выполняют одну и ту же работу, хотя, если бы я начинал смотреть на ORM и хотел чего-то простого, я мог бы пойтис подходом Code First, который кажется действительно простым.НО у меня нет опыта с этим.Я только прочитал об этом.

Надеюсь, это поможет.

1 голос
/ 05 января 2011

Для мира Microsoft придерживаться структуры сущностей ado.net
Для мира с открытым исходным кодом придерживаться nhibernate.

1 голос
/ 03 января 2011

Я читаю книгу о спящем режиме от парней, которые написали спящий режим, и по широкому определению все, что отображает реляционную модель в объектную модель (например, преобразование внешнего ключа в содержащийся объект [ы]), является ORM. 1001 *

Авторы помещают ORM в другую категорию, что-то вроде Nhibernate попадает в категорию полного ORM, оно генерирует SQL во время выполнения, например.

Некоторые другие инструменты, такие как LLBGen, требуют, чтобы статические библиотеки создавались путем подключения к БД, а затем они используются.

Выбирая ORM, вы должны смотреть на базу пользователей, если ORM активен, например, новые версии и быстрые исправления ошибок, в последнее время Hibernate, вероятно, наиболее широко используемый, в .net есть Fluent Nhibernate. которые можно настроить без файлов XML, спящий режим использует для этого аннотированные классы.

Лично я бы посоветовал вам использовать ORM на основе Hibernate, в ROR активная запись является стандартом, я думаю ...

1 голос
/ 28 декабря 2010

Самыми известными являются nhibernate и EF. Лично я предпочитаю EF, его скорость лучше, чем nhibernate (через linq), и для работы с EF я думаю Code First больше всего полезный запуск.

Для выбора того, какой ORM (между EF и nhibernate) вы можете увидеть этот блог Айенде Рахиен, которая хорошо знает nhibernate, в этом посте он сказал, что зрелость nhibernate лучше, но linq2EF лучше, чем Простой пример, который я могу вам дать: у вас есть 2 уровня мастер детализации, в nhibernate вы должны сделать hql для извлечения элементов с определенными критериями из подробного элемента, но в EF вы можете сделать это просто, также в EF у нас есть Entity Functions которые используются для решения проблем, и я надеюсь, что это будет более полезным в будущем.

1 голос
/ 28 декабря 2010

Как уже упоминалось ранее @MikeAinOz, Entity Framework является хорошим началом, в котором вы можете подключаться и к другим базам данных.Этот пример также является хорошей отправной точкой для того, как программные слои:

http://layersample.codeplex.com/releases/view/47627

...