2009-12-10 4 views
2

Я читал статью MSDN на http://msdn.microsoft.com/en-us/magazine/cc700340.aspxEntity Framework в n-й многоуровневой архитектуре - лучше всего следовать?

Но было интересно, если есть другие/альтернативы передового опыта в использовании Entity Framework (.NET Framework 3.5 SP1) в asp.net, п многоуровневого приложения.

+0

Я думаю, вы имеете в виду многоуровневую архитектуру, а не многоуровневую. Правильно? – RickNZ

ответ

3

Я думаю, что общий шаблон шаблона, используемый с каркасом сущности, является шаблоном репозитория, я не буду предоставлять ссылки, потому что поиск Google вернется больше, чем я могу опубликовать здесь. Это поможет вам скрыть свой код доступа к данным за интерфейсом, который позволяет упростить тестирование и разделить проблемы.

Я думаю, что любой выбор, который вы делаете с точки зрения передового опыта, будет сильно зависеть от инструментов, с которыми вы работаете. если вы используете стандартный ASP.NET, я бы предложил перейти к шаблону MVP, предложенному в статье, с которой вы связались, чтобы помочь вам разделить свои проблемы и создать тестовый код. Однако, если вы используете ASP.NET MVC, MVP не имеет значения, так как структура помогает разделить ваши проблемы для вас. Немного больше информации о вашей среде может помочь сделать рекомендации.

+0

Хорошая статья для шаблона репозитория - вот эта статья кодекса: http://www.codeproject.com/KB/database/ImplRepositoryPatternEF.aspx – itchi

1

Стоит отметить, что это область, в которой было много внимания, как часть .NET 4 и EF4.

Теперь у них есть поддержка POCOs, а также Self-Tracking-Entities, которые могут быть отправлены туда и обратно между уровнями и уровнями (включая границы WCF).

Посмотрите на this blog entry о Self-Tracking-Entities для получения дополнительной информации.

1

Мне нравится использовать шаблон UnitOfWork вместе с DDD и сервисным слоем. Я не передаю свои объекты домена никому, кроме уровня сервиса. Даже тогда мои объекты домена абстрагируются интерфейсами. Уровень сервиса использует шаблон адаптера или шаблон удаленного фасада для передачи объектов dto своим клиентам.

+0

> не передавать ваши объекты между слоями Вы имеете в виду, не пропускайте ваши сущности между уровнями? –

+0

Обычно я использую интерфейсы для перехода между уровнем домена и уровня сервиса и использую dtos для перехода между уровнем сервиса и представления. Я делаю это независимо от уровня. – devlife

Смежные вопросы