Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
528
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

Доступ к данным без подключения и в автономном режиме

Технология

Преимущества

 

Недостатки

 

 

 

 

 

 

LINQ to DataSet

Позволяет выполнять

 

Вся обработка выполняется на

 

 

полнофункциональные запросы к

 

стороне клиента.

 

 

DataSet.

 

 

 

 

 

 

 

 

ADO.NET Sync Services

Поддерживает синхронизацию

 

Необходимо реализовать

 

 

между базами данных,

 

собственный механизм

 

 

координацию совместной

 

отслеживания изменений1.

 

 

деятельности и сценарии работы

 

Обмен большими объемами

 

 

 

 

 

 

в автономном режиме.

 

данных в процессе

 

 

 

 

 

 

Синхронизация может

 

синхронизации может снизить

 

 

выполняться в фоновом режиме.

 

производительность.

 

 

Для синхронизации между

 

 

 

 

базами данных используется

 

 

 

 

веерная (hub-and-spoke)

 

 

 

 

архитектура.

 

 

 

 

 

 

 

 

Сценарии SOA/Сервис

Технология

Преимущества

Недостатки

 

 

 

ADO.NET Data Services

Данные могут быть отправлены

Применима исключительно к

Framework

непосредственно через URI с

сервисно-ориентированных

 

помощью REST-подобных

сценариев.

 

механизмов.

 

 

Данные могут быть возвращены

 

 

в формате Atom или JSON.

 

 

Для упрощения выпуска новых

 

 

интерфейсов сервисов

 

 

поддерживается облегченный

 

 

механизм управления версиями.

 

 

Клиентские библиотеки .NET

 

 

Framework, Silverlight и AJAX

 

 

позволяют разработчикам

 

 

взаимодействовать

 

 

непосредственно с объектами и

 

 

обеспечивают строго

 

 

типизированный доступ

 

 

посредством LINQ к ADO.NET

 

 

Data Services.

 

 

Клиентские библиотеки .NET

 

 

Framework, Silverlight и AJAX

 

 

предлагают привычный API для

 

1 Это не совсем точно, может потребоваться реализация собственного механизма отслеживания изменений и решения конфликтов (прим. научного редактора).

 

работы с Windows Azure Tables,

 

 

SQL Data Services1 и другими

 

 

сервисами Microsoft.

 

 

 

 

LINQ to Data Services

Позволяет формировать LINQ-

Используется только с

 

запросы к клиентским данным,

клиентской инфраструктурой

 

возвращаемым ADO.NET Data

ADO.NET Data Services.

 

Services.

 

 

Поддерживает LINQ-запросы к

 

 

REST-данным.

 

 

 

 

N-уровневые и общие сценарии

 

Технология

 

 

Преимущества

 

 

Недостатки

 

 

 

 

 

 

 

 

 

 

ADO.NET Core

 

 

Включает .NET-поставщиков для

 

 

Написание программного кода

 

 

 

 

 

обеспечения доступа с

 

 

осуществляется напрямую для

 

 

 

 

 

подключением к широкому

 

 

конкретных поставщиков, что

 

 

 

 

 

набору хранилищ данных.

 

 

снижает возможности повторного

 

 

 

 

 

Обеспечивает возможности

 

 

использования.

 

 

 

 

 

 

 

 

 

 

 

 

 

хранения и работы с данными

 

 

Структура реляционной базы

 

 

 

 

 

без подключения.

 

 

данных может не

 

 

 

 

 

 

 

 

соответствовать объектной

 

 

 

 

 

 

 

 

модели; в этом случае требуется

 

 

 

 

 

 

 

 

создать слой сопоставления

 

 

 

 

 

 

 

 

данных.

 

 

 

 

 

 

 

 

 

ADO.NET Data Services

 

 

Данные могут быть отправлены

 

 

Применяется исключительно для

 

Framework

 

 

непосредственно через URI с

 

 

сервисно-ориентированных

 

 

 

 

 

помощью схемы типа REST.

 

 

сценариев.

 

 

 

 

 

Данные могут быть возвращены

 

 

Обеспечивает ресурсно-

 

 

 

 

 

в формате Atom или JSON.

 

 

ориентированный сервис,

 

 

 

 

 

Для упрощения выпуска новых

 

 

хорошо сопоставимый с

 

 

 

 

 

 

 

 

 

 

 

 

 

интерфейсов сервисов включена

 

 

сервисами с интенсивной

 

 

 

 

 

 

 

 

 

 

 

 

 

облегченная схема управления

 

 

обработкой данных. Однако если

 

 

 

 

 

 

 

 

 

 

 

 

 

версиями.

 

 

преимущественное большинство

 

 

 

 

 

 

 

 

 

 

 

 

 

Модель поставщика позволяет

 

 

сервисов ориентировано на

 

 

 

 

 

 

 

операции, могут потребоваться

 

 

 

 

 

использовать любые источники

 

 

 

 

 

 

 

 

 

большие трудозатраты.

 

 

 

 

 

данных IQueryable.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Клиентские библиотеки .NET

 

 

 

 

 

 

 

 

Framework, Silverlight и AJAX

 

 

 

 

 

 

 

 

предлагают привычный API для

 

 

 

 

 

 

 

 

работы с Windows Azure Tables,

 

 

 

 

 

 

 

 

SQL Data Services и другими

 

 

 

 

 

 

 

 

сервисами Microsoft.

 

 

 

 

 

 

 

 

 

 

 

 

ADO.NET Entity Framework

 

 

Строго разделение метаданные

 

 

Требует изменения дизайна

 

 

 

 

 

на архитектурные слои.

 

 

сущностей и запросов, если

 

 

 

 

 

 

 

 

ранее использовался более

 

 

 

 

 

 

 

 

 

 

1 SQL Data Services переименован в SQL Azure Database,и не предоставляет REST доступ к данным (прим. научного редактора).

 

Поддерживает LINQ to Entities

традиционный метод доступа к

 

для формирования запросов к

данным.

 

сложным объектным моделям.

Объекты сущностей могут

 

 

 

Использование модели

отправляться по сети или может

 

поставщиков данных

использоваться шаблон Data

 

обеспечивает возможность

Mapper для преобразования

 

применения к разным базам

сущностей в объекты, которые

 

данных.

представляют собой более

 

Позволяет создавать сервисы с

общие типы DataContract.

 

 

 

четко определенными границами,

Планируемая поддержка POCO

 

 

 

а также контракты

устранит необходимость

 

 

 

данных/сервисов для отправки и

преобразования объектов при их

 

 

 

получения строго определенных

передаче по сети.

 

 

 

сущностей через границы

Подход с созданием конечных

 

сервиса.

точек сервиса для получения

 

Экземпляры сущностей вашей

обобщенных диаграмм

 

 

 

Entity Data Model сериализуются

сущностей является в меньшей

 

 

 

и используются Веб-сервисами

степени сервисно-

 

 

 

напрямую.

ориентированным, чем

 

 

 

Полная гибкость структуризации

использование конечных точек,

 

которые обусловливают

 

полезной нагрузки — на сервер

 

применение более строгих

 

передаются отдельные

 

контрактов для типов полезной

 

сущности, коллекции сущностей

 

нагрузки, которые могут быть

 

или диаграмма сущностей.

 

приняты.

 

 

 

В будущем будет реализована

 

 

возможность передачи через

 

 

границы сервисов абсолютно не

 

 

зависящих от метода хранения

 

 

объектов.

 

 

 

 

LINQ to Objects

Позволяет создавать LINQ-

Работает исключительно с

 

запросы к объектам в памяти.

объектами, которые реализуют

 

Предлагает новый подход к

интерфейс IEnumerable.

 

 

 

извлечению данных из

 

 

коллекций.

 

 

Может использоваться напрямую

 

 

с коллекциями,

 

 

поддерживающими IEnumerable

 

 

или IEnumerable<T>.

 

 

Может использоваться для

 

 

формирования запросов к

 

 

строкам, метаданным на основе

 

 

отражения и папкам с файлами.

 

 

 

 

LINQ to XML

Позволяет создавать LINQ-

Сильно зависит от

 

запросы к XML-данным.

универсальных классов.

 

Сравнима с объектной моделью

Технология не оптимизирована

 

документа (Document Object

для работы с XML-документами,

 

Model, DOM), которая помещает

полученными из не

 

XML-документ в память, однако

пользующихся доверием

 

значительно проще в

источников, которые требуют

 

использовании.

использования других технологий

 

 

 

 

Результаты запросов можно

снижения рисков.

 

применять в качестве

 

 

параметров конструкторов

 

 

объектов XElement и XAttribute.

 

 

 

 

LINQ to SQL

Предлагает простой способ

В .NET Framework 4.0 Entity

 

извлечения и обновления данных

Framework будет

 

как объектов, когда объектная

рекомендованным решением

 

модель и модель базы данных

доступа к данным для сценариев

 

одинаковы.

LINQ-запросов к реляционной

 

 

базе данных.

 

 

LINQ to SQL будет

 

 

поддерживаться и развиваться

 

 

на базе отзывов, полученных от

 

 

сообщества разработчиков.

 

 

 

Общие рекомендации

При выборе технологии доступа к данным руководствуйтесь следующими рекомендациями:

Гибкость и производительность. ADO.NET Core обеспечит максимальную производительность и гибкость. ADO.NET Core предоставляет самые широкие возможности и является наиболее серверно-ориентированным решением. При использовании ADO.NET Core не забывайте о компромиссе между дополнительной гибкостью и необходимостью написания собственного кода. Имейте в виду, что преобразование к пользовательским объектам уменьшает производительность. Если вам необходима тонкая инфраструктура, использующая поставщики ADO.NET и поддерживающая изменения в базе данных через конфигурацию, воспользуйтесь

Enterprise Library Data Access Application Block.

Объектно-реляционное сопоставление (O/RM). Если вам требуется решение на базе

O/RM и/или поддержка множества баз данных, воспользуйтесь Entity Framework. Это идеальный вариант реализации сценариев Domain Model.

Сценарий работы в автономном режиме. Если требуется поддерживать сценарий без подключения, воспользуйтесь объектами DataSet или Sync Framework.

N-уровневый сценарий. Существуют такие варианты передачи данных через слои или уровни: передача объектов сущностей, объекты передачи данных (Data Transfer Objects, DTO), которые сопоставляются с сущностями, объекты DataSet и пользовательские объекты. При создании ресурсно-ориентированных сервисов (REST) используйте ADO.NET Data Services. При создании сервисов, ориентированных на операции (SOAP), используйте сервисы Windows Communication Foundation (WCF) с

явным определением контрактов сервисов и данных.

Соседние файлы в папке ООП