Программирование arrow ADO.NET и базы данных arrow Entity Framework в многоуровневых архитектурах

Entity Framework в многоуровневых архитектурах

Оглавление

Когда архитекторы n-уровневой архитектуры оценивают какую-либо новую технологию, шаблон или стратегию, они решают, как эта новая часть головоломки будет сочетаться с архитектурой. Если есть платформа Entity Framework, интеграция не вызывает каких-либо сложностей. Она может быть интегрирована в n-уровневую архитектуру, а также в одноуровневую архитектуру.

В статье за этот месяц я продемонстрирую добавление платформы Entity Framework в n-уровневую архитектуру, в которой используются технологии Windows® Communication Foundation (WCF) и Windows Presentation Foundation (WPF), а также шаблон «модель-представление-презентатор» (Model View Presenter, MVP). Я представлю пример архитектуры со слоями для базы данных логического хранилища, доступа к данным, модели области, диспетчера, уровня службы, уровня представления и пассивного уровня пользовательского интерфейса и продемонстрирую интеграцию этих слоев с помощью платформы Entity Framework. Все используемые примеры кода доступны для загрузки на веб-узле журнала MSDN Magazine.

Определение слоев

Представленное приложение позволяет выполнять поиск клиентов в образце базы данных NorthwindEF, а также просматривать, добавлять, изменять и удалять их. Но прежде чем углубляться в код и примеры, давайте рассмотрим общую архитектуру примера. Поскольку основное внимание уделяется не архитектуре, а интеграции платформы Entity Framework с архитектурным проектом, я выбрал относительно распространенную архитектуру, которая может быть достаточно просто изменена и интегрирована с другими стратегиями.

На рис. 1 показано общее представление типичной многослойной архитектуры. Два верхних слоя предназначены для представления пользовательского интерфейса и перемещения по нему с помощью слоя пользовательского интерфейса и слоя презентации. Слой пользовательского интерфейса может быть реализован с помощью любой из многочисленных доступных технологий; однако в этой статье и примерах используется платформа WPF. Слой пользовательского интерфейса соответствует шаблону MVP с пассивным представлением, это означает, что представления (верхний слой пользовательского интерфейса) управляются и подготавливаются слоем презентации. Презентаторы ответственны за предоставление представлениям данных, получение данных из представлений для сохранения в нижних слоях и вообще за реагирование на события, созданные представлениями.

Entity Framework в многоуровневых архитектурах - ADO.NET и базы данных - Microsoft .NET - Программирование, исходники, операционные системы 

Рис. 1. Обзор архитектуры

В моем примере презентаторы взаимодействуют с нижними слоями через платформу WCF. Презентатор вызывает службу через платформу WCF, используя контракт службы в качестве руководства. Слой службы предоставляет службы через интерфейсы контрактов служб. Эти контракты позволяют презентаторам получать сведения о вызове служб.

Слой службы ответственен за получение данных от презентаторов и вызов соответствующих методов бизнес-слоя, выполняющих соответствующую бизнес-логику, а также сбор и модификацию данных. Бизнес-слой содержит бизнес-логику и код LINQ к Entities. Код LINQ к Entities ссылается на сущностную модель, автоматически созданную на основе платформы Entity Framework. При выполнении запросов LINQ платформа Entity Framework преобразует запрос LINQ в концептуальную сущностную модель (Entity Data Model – EDM ), сопоставляет аспекты сущности уровню хранилища и создает запрос SQL для выполнения для базы данных.


 
Следующая статья »


  • ADO.NET и базы данных, Entity Framework FAQ
    Понимание моделирования сущностей, отображение таких моделей на реляционные базы данных, а также проектирование сущностных моделей данных (Entity Data Model, EDM) являются первыми шагами к пониманию Entity Framework. Я начну свою статью с ответов на вопросы об основах Entity Framework, в том числе о классе ObjectContext, а затем отвечу на вопросы о том, когда и где стоит использовать Entity Client с Entity SQL. Кроме того, я планирую объяснить разницу между EntityClient и службами Object Service...
  • ADO.NET и базы данных, Обзор ADO.NET Entity Framework
    В выпуске Visual Studio 2008 в ADO.NET представлена новая архитектура Entity Framework. Она позволяет разработчикам обращаться к данным, используя объектную модель вместо логической или реляционной модели данных. Entity Framework помогает абстрагировать логическую схему данных в концептуальную модель и обеспечивает несколько способов взаимодействия с концептуальной моделью через службы Object Services и нового поставщика данных, называющегося EntityClient. В статье этого месяца обсуждается, что ...
  • ADO.NET и базы данных, Разработка сущностной модели данных с помощью Entity Framework
    Entity Framework — это новая технология, разработанная для ADO.NET. Она позволяет разработчикам визуализировать данные, используя логическую, а не физическую модель, благодаря чему обеспечивается определенная гибкость разработки. В июльском номере журнала за 2007 год в рубрике «Точки данных» мы давали подробный обзор технологии Entity Framework (она должна быть официально выпущена в первой половине 2008 года)....
  • ADO.NET и базы данных, Использование атрибутов для нормализации и валидации бизнес-сущностей
    В корпоративном программировании при проектировании уровня доступа к данным часто встает вопрос работы с бизнес-объектами(бизнес-сущностями): это загрузки/изменения/сохранения и перемещения между уровнями. Существует два основных подхода для этого - использование собственных бизнес-сущностей или стандартных средств (ADO.NET предоставляет достаточно удобные способы для этого) - использование DataSet....
  • ADO.NET и базы данных, ADO.NET: Обзор технологии
    Многие программисты, работающие с базами данных на платформах Microsoft, могли оценить простоту и удобство технологии ADO - ActiveX Data Objects. Интутитивно-понятный интерфейс и логичный набор объектов вместе с простотой программирования заслуженно получили признание программистов. Несмотря на это, вместе с новой платформой .NET  Microsoft представляет и новое поколение средств доступа к базам данных - ADO.NET. ...
  • ADO.NET и базы данных, Операции над данными с иерархической структурой. Разработка распределенных приложений в .NET
    Эта статья демонстрирует методику чтения и записи иерархических наборов строк в источнике данных. В примерах кода, приведенных в этой статье, для соединения с базой данных Microsoft SQL Server или Microsoft Desktop Engine (MSDE) используется управляемый провайдер SQL (SQL managed provider). Для соединения с другими OLEDB-совместимыми источниками данных следует применять управляемый провайдер ADO (ADO ma...
  • ADO.NET и базы данных, Работа с автономными данными в ADO.NET
    Технология ADO.NET, в отличие от своих предшественников ADO и OLE DB, была разработана специально для использования в web приложениях, где не бывает постоянных соединений с БД. Традиционная работа с данными в ADO.NET строится по такой схеме: создается соединение Connection, затем оно открывается методом Open, создается объект команда Command, инкапсулирующая SQL команду, она исполняется, а соединение затем закрывается. Такой подход обеспечивает поточный доступ к результатам запросов. Т.е. ...