linq для сущностей против свободного nhibernate против linq для sql (Справка) - PullRequest
2 голосов
/ 15 июля 2009

Мне нужно создать сайт для новостного канала ..

Помогите, пожалуйста, решить, какую технологию использовать для операций с данными?

1) Linq to Entities 2) Linq to SQL 3) Свободный NHibernate 4) ADO.Net

Сайт будет основан на ASP.Net MVC и C #.

Основные вопросы:

1) Должен быть прост в обслуживании и масштабировании.

2) Хорошая производительность

Пожалуйста, выразите свое мнение с примером, если это возможно ..

Спасибо

Chitresh

Ответы [ 3 ]

5 голосов
/ 15 июля 2009

за и против:

LINQ To Entities

Позволяет добавить еще один уровень абстракции (сущности) вместо отображения непосредственно в таблицы (как в LINQ to SQL). Поддержка нескольких поставщиков данных (не только SQL Server). Требуется немного больше времени на обучение, чем LINQ to SQL. Обеспечить единицу работы концепции. Кривая обучения от среднего до высокого.

LINQ to SQL

Позволяет легко отображать таблицы, хранимые процедуры и т. Д. Предоставить концепцию единицы работы. Работать только на сервере SQL Server. Легко реализовать, но требует перестройки dbml при изменении схемы db (односторонняя синхронизация от db к объекту), поэтому немного сложнее в обслуживании. Низкая - средняя кривая обучения. Производительность ... Я думаю, что переполнение стека использует LINQ to SQL. Как вы думаете, это работает? Имейте концепцию единицы работы.

Свободный NHibernate

Не могу комментировать ... ничего не знаю об этом. Если это что-то вроде NHibernate, должно быть достаточно гибким. Вероятно, высокая кривая обучения. Кто-то поправит меня в этом ...

ADO.NET (речь не идет об именованном наборе данных здесь ...)

Должно быть самым быстрым (без абстракции). Гибкий, согни его так, как хочешь. Низкая кривая обучения. Очень просто, все делай сам, подходи. Большую часть времени я иду по этому пути для простого проекта. Может снизить производительность. Вы можете дополнить его генерацией кода, чтобы повысить производительность.

Другие ваши варианты ... Возможно, дозвуковое.

4 голосов
/ 15 июля 2009

NHibernate (Свободный NHibernate)

Свободный NHibernate - это компонент, который поможет вам сопоставить ваши сущности, чтобы NHibernate знал, куда он поместит ваши данные из базы данных. Если вы никогда не использовали NHibernate, может быть немного сложно узнать, как отобразить и обработать NHibernateSession, но здесь есть много информации о стековом потоке и других местах, таких как S # arp для примера обработки сеанса и Summer of NHibernate , чтобы получить несколько уроков по картированию.

3 голосов
/ 21 июля 2009

Я бы пошел с Linq в Entities или NHibernate (на самом деле, я бы пошел с NHibernate, но это тот, с которым я больше всего знаком) - И ADO.Net (но только немного).

Начните с того, что делаете все возможное с помощью NHibernate / Entities. Как только он заработает, вы обнаружите, что он удивительно продуктивен. Но бывают ситуации, когда вам нужно немного повысить производительность (у вас есть хороший инструмент для профилирования?). Для этих случаев закодируйте их прямо в Ado.Net (это должно составлять менее 10% вызовов вашей базы данных). С помощью NHibernate вы также можете использовать сеанс NHibernate, чтобы получить объект подключения для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...