Опубликован: 15.06.2011 | Доступ: свободный | Студентов: 701 / 55 | Оценка: 4.25 / 4.00 | Длительность: 14:09:00
Лекция 13:

Отображение данных в Silverlight

WCF Data Services

Службы WCF Data Services (которые раньше назывались "ADO.NET Data Services") — это компонент платформы .NET Framework, с помощью которого можно создавать службы, использующие протокол Open Data Protocol (OData) для передачи и получения данных через Интернет или интрасеть с помощью семантики REST. Службы OData предоставляют данные в качестве ресурсов, доступ к которым осуществляется с помощью URI.Доступ и изменение данных производится с помощью таких стандартных команд HTTP, как GET, PUT, POST и DELETE. В службах OData используются соглашения связи сущностей модели Entity Data Model для предоставления ресурсов в виде наборов сущностей, связанных с помощью сопоставлений.

При адресации и обновлении ресурсов службы Службы WCF Data Services используют протокол OData . В результате доступ к этим службам можно получить из любого клиента, который поддерживает OData . С помощью OData запросы и запись данных в ресурсы осуществляются с использованием традиционных форматов передачи: нотации объектов JavaScript (JSON), текстового формата обмена данными, интенсивно применяемого в приложении AJAX, и Atom — набора стандартов обмена данными и их обновления на основе XML.

Службы WCF Data Services позволяют предоставлять данные, поступающие из различных источников, в виде каналов OData. Средства Visual Studio упрощают создание служб на базе OData за счет использования модели данных ADO.NET Entity Framework. Также можно создавать каналы OData, основанные на классах CLR, данных с поздним связыванием или данных, не имеющих типа.

В состав служб Службы WCF Data Services также включен набор клиентских библиотек: одна для типовых клиентских приложений .NET Framework, а другая специально для приложений на основе Silverlight. Эти клиентские библиотеки предоставляют возможности объектно ориентированного программирования для доступа к каналу OData из таких платформ, как .NET Framework и Silverlight.

На рис 26.2показана архитектура служб Службы WCF Data Services для предоставления каналов OData, а также использование этих каналов в клиентских библиотеках, поддерживающих OData.

Архитектура службы WCF Data Services

Рис. 26.2. Архитектура службы WCF Data Services

Entity Data Model

Модель Entity Data Model (модель EDM) — это спецификация для определения данных, используемых приложениями, построенными на основе платформы Entity Framework. Приложения используют определенные моделью EDM сущности и связи в домене приложения в схеме макета. Схема макета используется для создания программируемых классов, используемых кодом приложения. Структуры хранилища, материализующие данные для приложений в этой модели, представлены в другой схеме, называемой схемой хранилища. Спецификация сопоставления соединяет схему макета и схему хранилища.

Поскольку программируемая модель объектов создается из схемы макета, а схема хранилища сопоставляется со схемой макета, спецификация сопоставления выполняет эффективное соединение программируемых классов со структурами хранилища. Сущности, определенные в модели EDM, могут быть считаны в сериализованной форме с помощью модуля чтения данных или материализованы как объекты. Материализованные объекты являются программируемыми в языках CLR. Их можно обновлять или сохранять без внедренных строк SQL или другого синтаксиса базы данных. Модель EDM предоставляет основные типы сущностей и связей, используемые в EDM-схемах и спецификации сопоставления. При необходимости разработчики могут расширить эти типы для поддержки макета приложения.

Для управления данными в приложениях используется несколько важных принципов. Модель хранения оптимизирована для эффективного хранения и получения данных. XML поддерживает межплатформенный обмен данными. Объектно-ориентированное программирование является стандартом для разработки приложений. Все эти модели полезны, однако перенос данных между ними или из них может потребовать много строк кода, не имеющих никакого отношения к сценариям приложения.

Модель данных может быть проанализирована с помощью языка UML или схем на доске. Необходимо выполнить концептуальную организацию типов данных, их атрибутов, связей между типами данных, ограничений данных и т. д. перед тем, как их будет можно реализовать в коде приложения. Модель EDM расширяет модели, используемые разработчиками данных для описания данных во время процесса разработки, и предоставляет XML-синтаксис для подробного описания результатов в схематичной форме.

В практическом занятии № 25 продемонстрировано создание WCF Data Service и ADO .NET Entity Data Model

Обработка XML - данных в Silverlight

Обработка XML-данных с помощью LINQ to XML

LINQ to XML — это располагаемый в памяти интерфейс программирования XML с поддержкой LINQ, позволяющий работать с XML из языков программирования платформы .NET Framework.

LINQ to XML сходен с объектной моделью документов (DOM) в том, что он помещает XML-документ в память. Можно запросить и изменить документ, после чего сохранить его в файле или сериализовать его и передать через Интернет. Тем не менее, LINQ to XML отличается от модели DOM: он предоставляет новую объектную модель, более легковесную и простую в работе, в которой используются языковые усовершенствования Visual C# 2010.

Наиболее важное преимущество интерфейса LINQ to XML заключается в его интеграции со встроенными в язык запросами (Language-Integrated Query, LINQ). Такая интеграция позволяет писать запросы к расположенному в памяти XML-документу для получения коллекций элементов и атрибутов. Возможности запросов LINQ to XML сравнимы в плане функциональности (но не в плане синтаксиса) с XPath и XQuery.

Практическое руководство. Создание динамического XAML-кода с помощью LINQ to XML

Обработка данных XML с помощью XmlReader и XmlWriter

Классы XML в пространстве имен System.Xml позволяют работать с XML-данными и XML-документами. Эти классы поддерживают анализ, запись и редактирование XML-данных в памяти. Обратите внимание, что пространство имен System.Xml в .NET Framework для Silverlight представляет собой подмножество System.Xml в .NET Framework. Наиболее значительно то, что тип XmlDocument недоступен в Silverlight. Вместо этого следует использовать класс XmlReader для чтения XML-данных. Дополнительные сведения о других отличиях двух платформ см. в разделе Обработка XML в .NET Framework по сравнению с .NET Framework для Silverlight.

Класс XmlReader обеспечивает доступ только для чтения к XML-данным без кэширования, допускающий перемещение только в прямом направлении. Этот класс поддерживает считывание XML-данных из потока, TextReader или файла в пакете XAP приложения. Определяет методы и свойства, которые позволяют перемещаться по XML-данным и считывать их содержимое. Для создания объекта XmlReader необходимо использовать метод Create.

Класс XmlWriter предоставляет способ создания XML-потоков только для записи без кэширования, допускающий перемещение только в прямом направлении. Для создания объекта XmlWriter необходимо использовать метод Create. При использовании методов XmlWriter для вывода XML элементы и атрибуты не записываются полностью до тех пор, пока не будет вызван метод Close или Flush

Практическое руководство. Разбор XML с помощью XmlReader