Linq to SQL или архитектура приложения Entity Framework для предприятия ASP.NET MVC? - PullRequest
6 голосов
/ 09 января 2010

Я все еще пытаюсь определить правильную архитектуру для сложного веб-приложения ASP.NET MVC.

Я посмотрел много примеров кода, и везде это делается по-разному.

Буду очень признателен за ваши мысли по этому поводу.

Другой вопрос: Вы бы использовали Linq to SQL или Entity Framework?

Спасибо

-Бен

Ответы [ 5 ]

4 голосов
/ 09 января 2010

Некоторые личные мысли и опыт:
- используйте nhibernate в качестве orm или дождитесь EF v4. У Tekpub.com есть хорошее руководство по использованию NH. L2S и EF - это своего рода черный ящик: они много чего делают, у них хорошая документация, но у них нет точки расширения. Если вы хотите подключить некоторые новые функции или изменить поведение, вы можете сделать это только с NH. EF в v4 будет в состоянии, в котором NH был 2 или 3 года назад.
- просмотрите как можно больше примеров приложений MVC. Многие из них вы можете найти на codeplex. Например: CodeCampServer, WhoCanHelpMe, Storeddd
- если вы думаете о создании фреймворка (или помощника) для решения некоторых инфраструктурных проблем, сначала зайдите в Google; очень вероятно, что кто-то еще умнее вас (ну, в моем случае, умнее меня) уже имел такие же проблемы и написал хороший кусок кода в виде фреймворка (объектный маппер, валидация, обмен сообщениями, ...) или просто написал об этом в блоге.
- Использование точной архитектуры или fubuMvc решает большую часть работы инфраструктуры, но остальная часть приложения зависит от вашей бизнес-модели.
- TDD заставит вас писать хороший и поддерживаемый код. Старайтесь как можно чаще использовать шаблоны проектирования Gang of Four и принципы SOLID.

3 голосов
/ 10 июня 2010

Отметьте это Руководство по архитектуре: ASP.NET MVC + N-уровень + Entity Framework и многое другое

Если вы хотите использовать ASP.NET MVC, но изо всех сил стараетесь с уверенностью использовать его для вашего следующего бизнес-проекта. Эта статья только для вас. В этой статье вы узнаете, как использовать ASP.NET MVC для создания небольшой системы управления документами.

2 голосов
/ 09 января 2010

Поскольку вы собираетесь использовать приложение MVC, вы можете легко написать слой DataAccess под слоем Controller. Это сделает многоуровневое приложение . Так что это может быть правильным вариантом для вашей архитектуры.

Для вопроса LinQ-SQL или Entity Framework я использовал только Entity Framework. Так что не уверен насчет опции Linq to Sql. Но есть определенные проблемы с Entity Framework при изменении схемы. Обновление сгенерированного edmx не происходит должным образом при переименовании столбцов и т. Д. Итак, я делаю, удаляя и создавая edmx после каждого изменения схемы, и вам нужно вручную обновить эти изменения.

1 голос
/ 09 января 2010

Будете ли вы использовать Linq to SQL или Entity Framework?

Linq2SQL отлично подходит, если вы хотите получить доступ к объектной модели, которая напрямую отображается в вашей базе данных. Например, если у вас есть таблица «Orders», Linq2SQL создаст объект «orders», который вы можете использовать для доступа к данным. Часто это вполне адекватно.

Entity Framework полезен, когда вы хотите создать объектную модель, которая может не отображаться напрямую в базу данных.

0 голосов
/ 09 января 2010

Везде отличается , поэтому.На этот вопрос нет универсального ответа.Посмотрите на другие подходы и возьмите от них все, что вы считаете полезным для вашей ситуации.

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