L2S (LINQ to SQL) или EF (Entity Framework) - PullRequest
3 голосов
/ 13 ноября 2009

Я собираюсь перестроить существующее умеренное веб-приложение, которое будет использоваться для веб-решения по управлению цепочкой поставок. Ядро будет состоять из нескольких записей об элементе \ сайте, организации \ управления пользователями, отображения специфичных для организации данных (панель мониторинга с двумя уровнями сетки) и детализации, которая имеет некоторые сложные вычисления для транзакций элементов и надежную сетку для отображения нескольких уровней. итогов, промежуточных итогов и т.д ...

В прошлом я разработал его, используя ASP.Net 2.0 и ADO.Net, серверная часть такое SQL-сервер. Я полагаю, чтобы мигрировать это веб-решение в полной мере ASP.Net v3.5 на основе архитектуры MVC и интегрировать другие части, такие как Членский API, Validation-framework, и т.д ... это будет полным Редизайн. Производительность и масштабируемость (то есть обрабатывать миллионы записи, выполнять быстрые расчеты, быстрое время отклика и т. д.) два основных приоритета. К тому же простота и длительное обслуживание и периодические обновления на любом уровне также следует учитывать.

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

  • L2S (LINQ to SQL) или EF (Entity Framework)

Я много искал и на основании этого я хотел бы проверить мое понимание:

  1. L2S похож на Win98 - сильный, стабильный, простой и эффективный и -
  2. Является ли EF чем-то вроде WinXP - лучше, чем win98, также стабильным, но несколько больше слоев, так что может иметь разница в производительности и простоте по сравнению с L2S

Я не думаю, что мы собираемся задействовать «несколько баз данных» в нашей разработке, SQL-сервер останется. Кроме того, я не думаю, что нам нужно на самом деле отображать несколько таблиц в Entity и т. Д. Обычно мы будем иметь однозначное отображение для наших DB-таблиц в Entities (т. Е. User, Org и т. Д.). .) и для некоторых сложных случаев - например, приборная панель извлекает записи из нескольких таблиц (наиболее вероятно, что нам понадобится хранимая процедура и / или просмотр БД). Страница Drilldown извлекает данные из одной таблицы, но имеет много вычислений, поэтому мы снова планируем использовать хранимую процедуру, которая предоставит нам отформатированную таблицу (но эта таблица может не выглядеть как уже присутствующая в БД)

Итак, это непростое сопоставление, но помимо этого нам нужно упростить задачу, рассмотреть производительность и масштабируемость. Ой! и последнее, но не менее важное - у нас сжатые сроки, поэтому это своего рода «ускоренная» разработка.

Простой, быстрый, масштабируемый и производительный - это то, что нам нужно!

Заранее спасибо - пожалуйста, ведите меня.

PS: Ссылка ссылки: ОРМ-LINQ-Entity-каркасного Эрик-Нельсон

Обсудить - LINQ to SQL против ADO.NET Entity Framework

Short - ADO.NET Entity Framework, когда его использовать, против Linq To SQL

Подробности - Выбор между ADO.NET Entity Framework и LINQ to SQL

Список - Выбор между LINQ to SQL и Entity Framework

Ответы [ 4 ]

3 голосов
/ 13 ноября 2009

Мне нравится сравнение L2Sql с Win98, но я бы сравнил EF с Vista ... потенциально у него много энергии, но биты остались неиспользованными, пока они не выйдут со следующей версией, что будет похоже на смерть тысячи сокращений .

Я с нетерпением жду EF 4 ... Я надеюсь, что это Windows 7, чтобы продолжить вашу аналогию.

2 голосов
/ 13 ноября 2009

Я не думаю, что вы можете пойти не так с Linq для sql. У него есть свои причуды, но это работает. Мы решили использовать L2S, хотя существуют проблемы с использованием нескольких контекстов данных.

Для быстрой генерации DAL посмотрите plinqo Для генерации кода требуется Codesmith, но он может многое сделать и устраняет некоторые из пристрастий linq к sql. Также есть шаблон Олега Сыча T4 s, который является бесплатным и встроен в VS2008.

1 голос
/ 13 ноября 2009

По моему личному мнению, используя все то, что вы упомянули, я бы использовал NHibernate вместо Linq2sql или Entity. Если вам нужен простой сайт CRUD, то решение не имеет большого значения, но возможность отделить бизнес-уровень от уровня данных довольно сложно реализовать в ADO.Net, где это намного проще (по моему мнение с Nhibernate).

Как я уже сказал, мнения в этой области сильно различаются.

1 голос
/ 13 ноября 2009

Если вы не можете ждать, пока не выйдет сущность v2, то есть .net 4.0, я бы сказал, перейдите с linq 2 sql.

Вы можете переключиться на сущность позже, если вам это нужно.

Я немного поиграл с сущностью v1, и я думаю, что это все еще ребенок, которому нужно немного повзрослеть.

Другой причиной для linq 2 sql является тот факт, что вы будете работать только с сервером sql, и это быстрый проект.

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