|
|
Entity Framework в многоуровневых архитектурах
|
|
Страница 1 из 6 Когда архитекторы 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 с пассивным представлением, это означает, что представления (верхний слой пользовательского интерфейса) управляются и подготавливаются слоем презентации. Презентаторы ответственны за предоставление представлениям данных, получение данных из представлений для сохранения в нижних слоях и вообще за реагирование на события, созданные представлениями.
Рис. 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 команду, она исполняется, а соединение затем закрывается. Такой подход обеспечивает поточный доступ к результатам запросов. Т.е. ...
|
|
|