Эволюция доступа к источникам данных: ado. Net, Entity Framework
ADO.NET Entity Framework (EF) — объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL. Для облегчения построения web-решений используется как ADO.NET Data Services (Astoria), так и связка из Windows Communication Foundation и Windows Presentation Foundation, позволяющая строить многоуровневые приложения, реализуя один из шаблонов проектирования MVC, MVP или MVVM.
|
В основе Entity Framework лежит сущностная модель данных (EDM). В модели EDM определяются типы сущностей, отношения и контейнеры, а разработчик взаимодействует со всем этим посредством кода. Платформа Entity Framework строит соответствия между упомянутыми элементами и схемой хранения, которую предоставляет реляционная база данных. Модель EDM платформа Entity Framework использует через XML, в котором определяется концептуальная модель приложения. Определяться она может как самостоятельно, так и вместе с кодом XML, определяющим схему хранилищ, и с кодом XML, определяющим соответствия между ними. Код XML можно (а иногда и нужно) изменять вручную, однако гораздо проще корректировать сущностную модель и сопоставления в новом визуальном средстве разработки сущностных моделей данных.
Компоненты Entity Framework
Entity Framework позволяет разработчикам писать меньше кода для доступа к данным, уменьшает обслуживание, представляет структуру данных в более подходящей для бизнеса (и менее нормализованной) форме и обеспечивает постоянство данных. При использовании совместно с LINQ to Entities (обсуждается далее) она также позволяет снизить число ошибок времени компиляции, поскольку она строит строго типизированные классы, основываясь на концептуальной модели.
Entity Framework создает концептуальную модель, для которой разработчики пишут код. К этой модели можно обращаться напрямую, используя новый поставщик данных EntityClient и новый язык (похожий на T-SQL), называемый Entity SQL. Модель EntityClient схожа с привычными объектами ADO.NET, он использует объекты EntityConnection и EntityCommand, чтобы возвратить DbDataReader. Другим вариантом для разработчиков является задействование Object Services с использованием либо объекта ObjectQuery и Entity SQL, либо LINQ to Entities. Object Services позволяют разработчикам воспользоваться построенными на основе концептуальной модели классами, предлагающими возможности по строгой типизации и постоянству (см. рис. 1).
Рис. 1 Обзор Entity Framework.
Такие способы доступа к данным позволяют разработчику взаимодействовать с концептуальными сущностями EDM. Слои EDM существуют в виде XML-файлов; на сегодня EDM можно создать вручную при помощи средства командной строки (EDMGEN.EXE) или при помощи мастера Visual Studio.
Сущностная модель данных
Основой архитектуры Entity Framework являются ее модели. Entity Framework поддерживает модель логического хранилища, которая представляет реляционную схему базы данных. Данные в реляционной базе данных зачастую хранятся совсем не так, как приложение их использует. Это обычно заставляет разработчиков извлекать данные в том виде, как они хранятся в базе данных. Часто разработчики затем преобразуют эти данные в сущности, которые лучше подходят для обработки бизнес-правил. В этом примере схема реляционной базы данных представлена логической моделью, а бизнес-сущности представляют концептуальную модель. Entity Framework закрывает этот промежуток между моделями при помощи слоя сопоставления. Поэтому в модели Entity Framework активны три слоя:
Концептуальный слой
Слой сопоставления
Логический слой
Эти три слоя позволяют сопоставить данные из реляционной базы данных более объектно-ориентированной бизнес-модели. В Entity Framework есть средства для определения этих слоев при помощи XML-файлов. Она также создает наборы классов, основываясь на схеме концептуальной модели. Вы можете программировать с использованием этих классов напрямую для доступа к данным. Таким образом создается уровень абстракции, когда разработчики могут программировать для концептуальной, а не для реляционной модели. Entity Framework сопоставляет все команды концептуальной модели логической модели (см. рис. 2).
Рис. 2 Разработка сущностной модели данных (Щелкните изображение, чтобы увеличить его)
Концептуальная модель определяется в XML-файле с использованием языка определения концептуальной схемы (Conceptual Schema Definition Language, CSDL). CSDL определяет сущности и взаимоотношения в том виде, в каком они представлены в бизнес-слое приложения. Логическая модель, представляющая схему базы данных, определяется в XML-файле с использованием языка определения схемы хранилища (Store Schema Definition Language, SSDL). Например, в концептуальной модели может быть сущность, на самом деле получающая данные из нескольких таблиц базы данных. Концептуальная и логическая модели могут связывать сущности взаимно-однозначно. Однако преимущество EDM в том, что это не обязательно. Слой сопоставления, определяемый с использованием языка схемы сопоставления (Mapping Schema Language, MSL), сопоставляет два остальных слоя друг другу. Это сопоставление и позволяет разработчикам программировать для концептуальной модели и сопоставлять инструкции логической модели.
Многослойная технология разработки программных систем.
- Вопросы к экзамену по дисциплине корпоративные ис (для гр. А -16-07) весна 2012
- Хозяйственная деятельность предприятий
- Задачи управления предприятием.
- Информационные ресурсы предприятия.
- Автоматизация управления бизнес-процессами.
- Назначение и свойства корпоративных ис.
- Системный подход к информатизации процессов управления.
- Структура кис, характеристика его компонентов.
- Обязательные требования к информационным системам
- Корпоративная информационная система как комплекс ис
- Методологии анализа бизнес – процессов в кис.
- Модель Захмана: основные элементы, характеристика компонентов.
- Классификация ис.
- Этапы проектирования кис.
- Особенности типового проектирования кис.
- Назначение и функции кис erp-систем.
- Функциональность и назначение crm-систем.
- Функциональность mrp-систем
- Назначение и функциональность mrpii – систем.
- Специфика формирования требований к кис.
- Архитектура кис и её виды.
- Многозвенная архитектура кис.
- Методы построения распределенных ис в архитектуре клиент-сервер.
- Стандарты открытых информационных систем
- Сетевые протоколы взаимодействия открытых систем osi.
- Удаленный вызов процедур и объектов.
- Основные компоненты технологии corba
- Обзор архитектуры
- Сравнительный анализ технологий dcom, corba.
- Особенности Интранет/Интранет-технологии построения кис.
- Основные свойства распределенных бд (по Дейту).
- Тиражирование (репликация) в распределенных ис.
- Методы управление распределенными транзакциями.
- Обеспечение отказоустойчивости
- Способы управления транзакциями в распределенных ис. Механизм двухфазной фиксации транзакций.
- Internet-технология как клиент – серверная технология. Понятие Web-сервиса, Web-приложения и Web-сайта.
- Компоненты и протоколы Web-сервиса.
- Olap-технологии в кис: назначение. Классификация задач olap в кис.
- Свойства olap-систем.
- Основные элементы многомерной модели данных. Пример.
- Основные операции над многомерной моделью данных. Примеры.
- Способы реализации olap-систем Реализации olap
- Эволюция доступа к источникам данных: ado. Net, Entity Framework
- Назначение и общая характеристика .Net-технологии.
- Архитектура Web-приложения в asp.Net
- Технология ado.Net, специфика доступа к удаленным данным.
- Объектная модель ado.Net. Характеристика и назначение основных объектов. Примеры
- Технология asp.Net. Методы доступа к удаленным данным.
- Подключение к источнику данных
- Объектная модель asp.Net. Характеристика и назначение основных объектов. Примеры.
- Компоненты asp. Примеры использования для доступа к различным источникам данных.
- Общая характеристика рынка программных продуктов кис.
- Анализ рынка программных продуктов кис
- Общая характеристика программных продуктов для кис компании Oracle
- Что такое лицензия Oracle.
- Лицензия на обновление программного обеспечения Oracle и поддержку (Software Update License & Support)
- Продление поддержки (Support Renewals)
- Лицензионные метрики (License Metrics)
- Многоядерные процессоры (Multi-core Processors)
- Общая характеристика программных продуктов для кис компании sap
- .Общая характеристика программных продуктов для кис компании baan
- Общая характеристика программных продуктов для кис компании Парус
- Общая характеристика программных продуктов для кис компании 1с: предприятие