Создание бизнес-приложений Silverlight с использованием .NET WCF RIA сервисов



Введение в технологию SilverLight

Цель лекции: Первоначально знакомство с SilverLight. Изучение элементов платформы SilverLight, принципов создания приложений Silverlight и особенности их использования в современном интернет бизнесе.

В момент своего создания платформа Silverlight рассматривалась Microsoft как альтернатива технологии Adobe Flash. Это определяло и область использования Silverlight в глазах большинства разработчиков: представление сложного мультимедиа- контента в интернете. Microsoft позиционировала Silverlight и как урезанную версию своих библиотек представления информации Windows Presentation Foundation (WPF), обеспечивающих мультиплатформенность. Для описания интерфейсов обе платформы имеют единый механизм, основанный на использовании специального языка разметки интерфейса приложений eXtensible Application Markup Language (XAML). Первая версия Silverlight 1.0 действительно использовалась в основном в сценариях мультимедиа, т.к. не имела ни поддержки языков программирования из .Net стека, ни различных элементов управления для реализации пользовательских интерфейсов.

После выпуска Silverlight 2 положение кардинальным образом изменилось и Silverlight уже может рассматриваться как эффективная платформа создания умных клиентских приложений (Smart Client) и как альтернатива веб-клиентам на основе технологии ASP.Net. Оба подхода \– и Silverlight, и ASP.Net – позволяют создавать клиент-серверные и мультиплатформенные решения.

Вместе с тем, интерфейс Silverlight приложения может быть гораздо более насыщенным, чем интерфейс приложения ASP.Net в котором возможности ограничены языком разметки гипертекста (HTML). Приложения ASP.Net выполняются на сервере и включают различные элементы доступа к данным, такие как Data Readers, Linq-to-SQL и др. Создать приложения для работы с данными достаточно просто из ASP.Net. В технологии Silverlight приложение выполняется на клиенте и не имеет расширенных механизмов доступа к данным, что усложняет создание приложений, ориентированных на использование баз данных.

Доступ к данным в Silverlight возможен только посредством создания специальной промежуточной службы, что значительно усложняет доступ к данным. Но мультиплатформенность приложений Silverlight, удобство их развертывания и использования, а главное возможность создания сложных многооконных интерфейсов со стандартными для настольных компьютеров элементами управления и использование для разработки мощных языков программирования из стека .Net – C# и VB.Net позволяют считать Silverlight перспективной платформой для создания и размещения бизнес-приложений.

Проблема доступа к данным решается через добавление к серверной части приложения специального уровня службы, на этом уровне может быть реализована и бизнес-логика приложения. На стороне клиента Silverlight реализовывается интерфейс пользователя и обеспечивается взаимодействие его со службой для получения и обработки информации с помощью служб RIA WPF. Подробнее описание данной технологии будет приведено в "Создание бизнес-приложений Silverlight с использованием .NET WCF RIA сервисов" .

Рассмотрим современное состояние платформы Silverlight и ее ключевые особенности, а также перспективы дальнейшего развития.

Silverlight является интернет-ориентированной платформой создания и выполнения насыщенных приложений. Для запуска Silverlight приложения необходимо, чтобы на компьютере пользователя была установлена специальная надстройка, которая используется браузером как элемент ActiveХ, аналогично надстройке Adobe Flash. Silverlight поддерживает использование различных медиа-ресурсов, таких как анимация, векторная графика, различные видео-форматы, в том числе видео высокого разрешения, а также различные интерфейсные элементы для создания насыщенного пользовательского интерфейса.

Можно выделить следующие ключевые преимущества платформы Silverlight:

· Silverlight является кросс-платформенным решением для создания интерактивных приложений с насыщенным интерфейсом;

· в платформу включена поддержка различных аудио и видео форматов вплоть до вывода полноэкранного видео высокого разрешения;

· при построении приложений Silverlight для дизайна можно использовать Expression Blend, для разработки программной части - Visual Studio 2010;

· для разработчика поддерживается XAML, HTML, JavaScript, C# и VB, а также другие управляемые языки платформы .Net. Через библиотеку базовых классов Base Class Library (BCL) из .Net можно получить доступ к классам для разработки Windows клиентов;

· можно создавать внебраузерные приложения с поддержкой доступа к файловой системе, COM объектам и др.;

· в Silverlight встроено более 60 элементов управления, кроме того, разработчики предлагают значительное количество дополнительных платных и бесплатных компонент;

· пользователь может включить доступ Silverlight к микрофону и веб-камере, что обеспечивает дополнительный уровень интерактивного взаимодействия.

Особенное широкие перспективы имеет использование Silverlight для создания бизнес-приложений. У платформы имеется поддержка:

· печати документов;

· поддержка Drag-and-drop;

· удобной навигации;

· редактируемых таблиц;

· списков и других элементов пользовательского интерфейса.

С помощью служб доступа к данным можно реализовать эффективные модели взаимодействия с сервером, используя популярные паттерны трехзвенной архитектуры и модель-представления – управление. На рисунке 1.1 представлены основные составные части Silverlight.

В настоящее время последней версией является Silverlight 4, выпущенный весной 2010 года. Основные его усовершенствования были связаны с упрощением разработки интернет-ориентированных бизнес-приложений, созданием полной поддержки служб доступа к данным насыщенных интернет приложений Rich Internet Application (RIA), доступу к файловой системе локального компьютера и СОМ библиотекам, а также добавлением возможности создание внебраузерных приложений.


Рис. 1.1. Составляющие Silverlight


 

На конференции MIX 2010 была анонсирована версия Silverlight 5, релиз которой намечен на 2012 год. По описанию разработчиков, в этой версии будет реализован ряд нововведений как в возможности мультимедиа, так и в бизнес-функции. В частности ожидается:

· аппаратное декодирование H.264 устройствами с низким энергопотреблением для плавного воспроизведения HD видео с использованием GPU поддержки;

· аппаратное 3D ускорение с поддержкой vertex-шейдеров;

· улучшенное управление энергосбережением;

· поддержка пульта дистанционного управления;

· аппаратное ускорение работы в оконном режиме с Internet Explorer 9;

· поддержка 64-битных браузеров;

· полная поддержка Open Type и улучшение отображения текстов;

· быстрый запуск Silverlight приложений.

Плеер Silverlight поддерживает механизмы автообновления и конечный пользователь может быть уверен, что использует его последнюю версию. При необходимости, после выхода новой версии плеера, у пользователя появляется предупреждение об обновлении и выполняется загрузка и установка обновлений.

Существует несколько принципиально различных способов использования Silverlight приложений:

· Первый – "классический" способ, заключается в том, что приложение выполняется в браузере в окне плеера, которое при необходимости можно развернуть на весь экран. Все элементы управления выводятся в окне и весь процесс работы с приложением происходит в этом окне.

· Второй способ позволяет рассматривать Silverlight приложение как обычное приложение Windows. Для его выполнения браузер не требуется. И хотя выполнение происходит в особой песочнице, но уровень доступа к ресурсам (файлам, памяти компьютера) у такого приложения более широкий, чем у браузерного варианта. Имеется возможность использования локальных файлов, СОМ-библиотек и другого расширенного функционала.

· Приложения третьего типа основаны на внедрении элементов Silverlight в проекты ASP.Net или другие HTML приложения. С помощью Silverlight можно реализовывать сложные интерфейсы, но большая часть приложения сохраняет обычную веб-форму. Таким образом, внедряются видеофрагменты и анимационные элементы в интернет сайты.

С появлением Windows Phone 7 появилась возможность создавать приложения Silverlight для этой платформы, такие приложения и составляют четвертый тип.

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

· Microsoft Visual Studio 2010

· Microsoft Expressions Blend

· Silverlight Tools for Visual Studio 2010

· Silverlight Runtimes for Windows

Рассмотрим ключевые элементы насыщенных интернет приложений (RIA), которые необходимы для понимания лежащих в основе технологии Silverlight концепции. К ним можно отнести поддержку языка XAML, использование BCL,

Изначальное название Silverlight было WPF Everywhere (Windows Presentation Foundation (WPF) везде), что точно передает суть данной платформы, заключающуюся в поддержке упрощенной версии WPF на различных платформах. Как и в WPF в основе Silverlight лежит XAML (eXtensible Application Markup Language — расширяемый язык разметки приложений).

Появление данного языка описания интерфейсов направлено на решение одной из краеугольных проблем программирования – разделение программного кода приложения и его интерфейсного представления. В идеале это должно выражаться в том, что одно и то же приложение дизайнер и программист редактируют в собственных рабочих инструментах, не затрагивая работу друг друга. XAML решает данную задачу.

Дизайнер может создавать интерфейс страницы приложения с помощью Expression Blend, а затем разработчик, открыв проект в Visual Studio, связывает элементы с программным кодом. При необходимости эти итерации могут повторяться. В Visual Studio для реализации такого подхода используются частичные классы и код на фоне (code behind).

Таким образом, XAML позволяет отделить логику приложения от размещения и представления элементов управления. XAML основан на XML, и XAML файл представляет собой текстовое описание с синтаксисом XML. Элементы XAML описывают объекты, которые создаются во время исполнения. Элементы выстроены в определенную иерархию, а свойства элементов задаются через их атрибуты. Также через атрибуты и специальные элементы описываются события, как ответ на определенные действия пользователя или приложения.

Тема XAML достаточно сложная и многоаспектная и для квалифицированного разработчика Silverlight необходимо уметь работать с XAML. Подробную информацию можно получить в специальных справочниках и литературе [ 2 ] , [ 3 ] .

Кроме Expression Blend и Visual Studio 2010 можно для изучения XAML ознакомиться с приложением XAML Pad (http://msdn.microsoft.com/en-us/library/ms742398(v=VS.90) .aspx). Это приложение позволяет писать код на языке XAML и сразу видеть результат его преобразования и отображения ( рис. 1.2).


Рис. 1.2. Вид окна XAML Pad

 

Следующим ключевым преимуществом Silverlight является поддержка CLR (Common Language Runtime) и BCL (Base Class Library). В данном случае это не полные версии данных библиотек из .Net framework и имеется ряд отличий, но базовая часть и основные принципы их построения сохранены и могут быть использованы в Silverlight приложениях.

Выполнение приложения в Silverlight плеере выполняется библиотекой Core CLR (ядро CLR), которая также представляет собой сокращенную версию CLR из .Net Framework. Сокращение почти не уменьшает функциональности, так как убраны те классы, которые не востребованы в сценариях разработки Silverlight.

Приложение Silverlight также выполняется в управляемой памяти и использует общую систему типов. При этом обеспечивается возможность одновременного использования CLR и Core CLR в одном процессе. Вместе с тем, Core CLR обеспечивает и мультиплатформенность Silverlight приложений, это означает возможность запуска приложений Silverlight, например, на компьютерах Macintosh.

Рассматривая элементы управления, поддерживаемые Silverlight, можно выделить две большие группы: элементы расположения и элементы отображения интерфейса. Элементы расположения могут не иметь собственного визуального представления во время выполнения программы, но обеспечивают требуемое размещение элементов отображения интерфейса на странице.

К элементам расположения относятся:

· Canvas – элемент с абсолютным позиционированием, создающий на странице пространство для размещения подчиненных элементов. Подчиненные элементы позиционируются соотносительно Canvas, также можно вкладывать Canvas объекты друг в друга.

· Doc Panel – позволяет прикреплять элементы к краям этой панели. Край для прикрепления указывается через свойство Doc элемента управления DocPanel.

· Stack Panel – панель для автоматического упорядочивания элементов в горизонтальные или вертикальные списки.

· Wrap Panel – также упорядочивает элементы в горизонтальном или вертикальном направлении, но осуществляет обрезку, когда достигается ограничение по ширине или высоте. Кроме использования размещения для управления местоположением элемента можно настраивать его специальные свойства: размер полей, ZOrder (порядок по глубине) или использовать механизмы трансформации.

Для создания интерфейса Silverlight поддерживает достаточно большое количество элементов управления их описание и примеры использования можно найти в специальной литературе [ 1 ] . Часть элементов описана в таблице 1.1 .

Таблица 1.1. Элементы управления SilverLight

Название элемента управления Описание
Элемент управления Button В Silverlight кнопка реализуется с помощью элемента управления Button. Кнопка реагирует на ввод пользователя с таких устройств ввода, как мышь, клавиатура или стилус, формируя событие Click (Щелчок).
Элемент управления CheckBox Элемент управления CheckBox предоставляет пользователю опцию для выбора. Обычно он представляется в виде прямоугольника, в котором пользователь может установить или убрать флажок. Он используется, когда имеется ряд опций на выбор и можно выбрать несколько из них.
Элемент управления HyperlinkButton HyperlinkButton (Гиперссылка) обеспечивает на странице элемент с возможностью щелчка по нему для перехода по URI, заданному свойством NavigateUri (Uri перехода).
Элемент управления Image Элемент управления Image используется для отображения изображений. Он может принимать форматы файлов .bmp, .jpg и .png. Путь к изображению задается свойством Source.
Элемент управления ListBox Элемент управления ListBox используется для представления содержимого в виде упорядоченного списка. Это достаточно гибкий элемент управления, так что элементы списка могут создаваться из содержимого любого типа, но обычно список образуется элементами ListBoxItem (элемент списка)
Элемент управления RadioButton, CheckBox Элемент управления RadioButton подобно CheckBox используется для фиксирования выбора пользователя. Однако отличается от CheckBox тем, что обычно применяется в ситуациях, когда пользователь должен выбрать единственный вариант из ряда предлагаемых опций.
Элемент управления TextBlock Элемент управления TextBlock используется в приложениях Silverlight для отображения текста. В самом простом случае, для отображения текст достаточно применить TextBlock с заданным свойством Text.
Элемент управления PasswordBox Очень похож на TextBox элемент управления PasswordBox (Поле пароля). PasswordBox во многих отношениях практически идентичен TextBox. С помощью свойства PasswordChar (Символ пароля) этого элемента управления можно задать символ, который будет использоваться вместо любого введенного символа для отображения нажатия клавиши.
Элементы управления Calendar и DatePicker Возможность использования дат в приложениях Silverlight обеспечивается элементами управления Calendar (Календарь) и DatePicker (Элемент выбора дат). Элемент управления Calendar выводит на экран дни заданного месяца или месяцы заданного года и предоставляет кнопки со стрелками для перемещения по месяцам или годам. DatePicker сочетает это представление с текстовым полем, в которое пользователь может вводить дату в соответствующем формате, или выпадающим списком, в котором можно выбрать определенную дату

Кроме того, с сайта CodePlex (http://silverlight.codeplex.com/) рекомендуется скачать набор дополнительных элементов управления Silverlight Toolkit, который также содержит специальные элементы отображения интерфейса. Использование элементов при разработке программы выполняется аналогично другим технологиям. Элемент размещается на форме, а его свойства можно измерять как в редакторе или XAML коде или в коде программ.

Так как Silverlight работает в браузере, логично обеспечить поведение его приложений аналогично веб-приложениям в браузере. Для этого используется специальные элементы, входящие в Navigation Framework. С помощью элементов Frame и Page можно отображать страницы по частям и перемещаться между ними аналогично переходам по веб – страницам. Также с использованием этого фреймворка реализуется поддержка гиперссылок и возможность индексации приложения Silverlight в поисковых системах.

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

Для воспроизведения видео используется объект MediaClient. В качестве параметра ему передается URL видео файла. При этом клиент имеет возможность в зависимости от типа своего интернет соединения выбирать качество видео, и тем самым регулировать объем передаваемой информации. Данный элемент поддерживает различные медиаформаты видео: WMV, WMVA, H.264, WMVC1 и аудио (WMA, AAC, MP3).

Кроме вывода мультимедиа информации Silverlight поддерживает и различные интерфейсные устройства. Помимо стандартных – клавиатуры и мыши, можно использовать, например, перьевой ввод. Для этого применяется объект InfoPrezenter, отображающий зону для ввода рукописной информации. Для обработки представлена коллекция объектов Stroke.

Для создания бизнес-приложений со сложной начинкой Silverlight поддерживает механизмы локального хранилища, позволяющего обеспечить локальный кеш для временного хранения информации на стороне клиента. Это позволяет не перемещать многократно используемую информацию между сервером и клиентом, а, загрузив ее однократно, использовать при необходимости. Также это позволяет создавать приложения, поддерживающие автономную работу. Размер хранилища по умолчанию 1 МБ, но может быть увеличен в настройках до нужного размера. Размер устанавливается для отдельного домена, и хранилища для приложений с разных доменов не зависимы друг от друга.

Удобным для бизнес-приложений является поддержка механизмов внебраузерного исполнения. Эта возможность расширяет функции приложения Silverlight, в частности становится доступным: Поддержка клавиатуры в полноэкранном режиме, окна оповещения, доступ к локальной файловой системе компьютера, использование кросс-доменных приложений и др.

Доступ к файловой системе ограничен в целях безопасности. Папки, к которым доступ возможен входят в перечисленные Get Special Folder. В него входят Мои документы, Мои рисунки и т.д.

Для удобства работы с данными доступа поддержка механизмов связывания. Связывание поддерживается как для одиночных свойств и значений, так и для списковых элементов управления. Все привязки описываются в XAML коде. Так как выполнение программы осуществляется на клиентской стороне и нет возможности прямого доступа к базе данных, то информация получается с помощью WCF службы интернет, а затем помещается через связывание в объект.

Доступ к сети в Silverlight через классы в пространстве имен System.Net реализованы различные классы, позволяющие получать данные как по стандартным протоколам HTTP и HTTPS, так и по XML, JSON, RSS, Atom. Также имеется поддержка Sockets сокетов и механизмов асинхронного взаимодействия на основе TCP протокола.

Данные со страниц Silverlight могут быть распечатаны. Имеется специальный класс Print Document. Можно распечатывать все элементы управления, добавленные в свойство Page Visual.

Для обеспечения соответствия интерфейса Silverlight привычному для настольных компьютеров сценарию работы в последних версиях была добавлена поддержка технологии Drag – and – drop. Она позволяет реализовывать сценарии переноса данных в окно Silverlight с их последующей загрузкой, а также специальные типы пользовательского интерфейса с перемещением элемента путем их переноса.

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

Таким образом, Silverlight может рассматриваться как мощная платформа для создания интернет-приложений с насыщенным пользовательским интерфейсом. При этом за короткий срок создатели этой платформы прошли путь от выпуска простого медиаплеера для интернет страниц до создания мощной инфраструктуры, обеспечивающей формирование необходимых условий, позволяющих разрабатывать не ее основе бизнес-приложения.

В последнее время, в связи с грядущим выходом Windows 8 Microsoft смещает фокус в сторону HTML 5, чем пугает сообщество разработчиков Silverlight, но последние заявления указывают, что сомнения необоснованные и Silverlight имеет самые широкие перспективы рассматривать Microsoft в качестве одной из своих стратегических платформ.

Краткие итоги

1. Silverlight является интернет-ориентированной платформой создания и выполнения насыщенных приложений.

2. Silverlight включает в себя возможности и инструменты для создания бизнес-приложений.

3. В новой версии Silverlight 5 будет реализован ряд нововведений как в мультимедиа, так и в бизнес-функции.

4. Существует несколько принципиально различных способов использования Silverlight приложений.

5. К ключевым элементам насыщенных интернет приложений (RIA) можно отнести ряд функций SilverLight.

6. Для элементов управления Silverlight относятся к элементам расположения.

7. Для вывода и вывода мультимедиа информации Silverlight поддерживает различные кодеки и интерфейсные устройства.

8. Доступ к сети в Silverlight через классы в пространстве имен System.Net.


Лекция 2:

Создание бизнес-приложений Silverlight с использованием .NET WCF RIA сервисов

Аннотация: В лекции рассматриваются вопросы построения бизнес-приложений на платформе Silverlight и описаны направления развития, которые предлагает компания Microsoft. Приведено описание служб Windows Communication Foundation Rich Internet Application (WCF RIA) и рассмотрены вопросы их использования в приложениях Silverlight.

Ключевые слова: интерфейс, Visual Basic, Visual Studio, ASP, net, ADO, Data, SQL, Windows, communication, foundation, State, transfer, интранет, TCP, архитектурный стиль, Web, Internet, application, RIA, базы данных, server, portable, поддержка, domain, хранилище данных, механизмы, представление, шаблон, доступ, сервер, приложение, class, library, бизнес-объекты, база данных, entity, data model, строка соединения, файл, класс, Интернет, операции, INSERT, UPDATE, DELETE, элементы управления, пространство, значение, источник данных, таблица, список, поле, HTML

Цель лекции: ознакомиться с использованием служб Windows Communication Foundation Rich Internet Application (WCF RIA) в разработке бизнес-приложений на платформе Silverlight.

Большинство современных бизнес-приложений имеют архитектуру интерфейсных форм на основе данных и представляют собой внешний интерфейс над базой данных для удобного просмотра обновлений и изменения информации. Для разработчика такое положение означает, что большая часть разрабатываемой программы состоит из форм и процесс их создания носит повторяющийся характер. Microsoft всегда уделяло этому внимание, создавая различные инструменты, упрощающие создание приложений на основе баз данных. Можно вспомнить FoxPro, платформу Visual Basic всех версий с момента ее появления и, конечно же, средство разработки приложений Microsoft Visual Studio. В них имеется значительное количество мастеров и других инструментов для ускорения и облегчения создания подобных приложений. Silverlight в настоящее время еще трудно отнести к основной платформе написания бизнес-приложений, но ряд инструментов, которые будут полезны при создании бизнес-приложений, уже включены в его состав.

Приложения Silverlight выполняются на стороне клиента, а данные сохраняются в базе данных на сервере. Как уже отмечалось, Silverlight в отличии, например, от ASP.Net не поддерживает серверных технологий работы с базой данных (ADO.Net, Data Readers, Linq to SQL). Поэтому для обеспечения поддержки требуется промежуточная служба, которая будет реализовывать взаимодействие с базой данных и возвращать необходимую информацию в Silverlight.

Для реализации сетевого взаимодействия Silverlight поддерживает технологии Windows Communication Foundation (WCF) и Representational State Transfer (REST), также для интранет приложений можно использовать сокеты и протокол TCP.

Службы ASP.Net (ASMX) и WCF представляют собой разные версии одной технологии, поэтому в современных разработках рекомендуется использовать WCF. Архитектурный стиль REST является более легковесным механизмом обеспечения взаимодействия и пользуется популярностью из-за распространения концепции Web 2.0. Многие известные приложения, созданные в рамках Web 2.0, в том числе Facebook основаны на его использовании. Silverlight поддерживает этот подход, что позволяет создавать клиенты для приложений Web 2.0 или использовать информацию, полученную с его использованием.

Базовым механизмом доступа к данным на платформе .Net является WCF. Для взаимодействия клиентских приложений Silverlight был разработан специальный его вариант, который получил название службы Rich Internet Application Windows Communication Foundation (RIA WCF). С помощью этих служб реализуется промежуточный слой в приложении, а также появляются специальные средства, упрощающие реализацию работы с хранилищем данных. В качестве хранилища могут выступать базы данных SQL Server, модель сущностей, классы C++ Portable Components (POCO). На клиенте создаются прокси представления этих сущностей, которые и будут использованы в элементах, связанных с данными. Обмен между прокси сущностями клиента к хранилищам данных осуществляется средствами RIA WCF.

Для разработчика Silverlight при использовании RIA WCF значительно упрощается подход к взаимодействию с данными. Разработчику доступны все стандартные возможности, например, есть поддержка Domain Context, который отслеживает изменения в данных и автоматически передает их в хранилище данных, например серверную базу данных. Использование RIA WCF упрощает проверку данных, как на стороне клиента, так и сервера, а также в нем реализуются базовые механизмы обеспечения безопасности доступа к данным и разграничения доступа путем авторизации и аутентификации пользователей.

Использование RIA WCF строится на применении шаблона проектирования Модель – представление – представление модели (МVVM). Этот шаблон позволяет четко отделить интерфейс от кода программы. При этом обеспечивается доступ к объекту Data Context на клиенте и появляется возможность использовать привязку данных к объектам Data Context. Модель представления на клиенте выполняет роль прокси-объекта и обеспечивает сетевое взаимодействие с объектами хранения данных.

Для обеспечения отправки событий интерфейса на сервер Silverlight представляет интерфейс ICommon, через который осуществляется подписка интерфейсных элементов на соответствующие команды. Общий вид реализуемого взаимодействия приведен на рисунке. В этой модели Silverlight приложение выполняет роль интерфейса и реализует слой представления, который взаимодействует с сервером бизнес-логики (средний слой), а он взаимодействует с базой данных.


Рис. 2.1. Схема использования RIA WCF

Таким образом, WCF RIA представляет собой промежуточное звено, обеспечивающее доступ от клиентского приложения к слою бизнес-логики и хранилищу данных. Для разработчика использование этой технологии обеспечивает высокую степень удобства и простоты реализации механизмов взаимодействия клиентского приложения и сервера.

WCF RIA аналогично WCF Data Services относятся к семейству Windows Communication Foundation. При этом WCF RIA значительно упрощает использование различных механизмов коммуникации от разработчика, скрывая все сложности и сохраняя мощь, заложенную в WCF.

Рассмотрим пример создания несложного бизнес-приложения с использованием служб WCF RIA. Для их использования необходимо загрузить специальную надстройку Visual Studio 2010 с сервера Silverlight ( http://go.microsoft.com/fwlink/?LinkId=205085).

После установки данной библиотеки возможности Visual Studio 2010 будут расширены, в том числе появятся два новых типа проектов: Silverlight Business Application и WCF RIA Class Library.

Silverlight Business Application представляет собой шаблон и пример использования технологии WCF RIA. После создания такого типа решения, оно будет содержать два проекта. Business Application позволяет создать Silverlight приложение клиентской стороны, а Business Application1.Web – это серверная часть решения, которая и содержит WCF RIA Services. Созданное решение может быть скомпилировано и запущено, в результате появится простейшее приложение с базовым функционалом и навигацией. Для создания полноценного приложения с необходимыми функциями в созданный шаблон следует добавить требуемые бизнес-объекты, подключить к хранилищу данных и реализовать бизнес-логику.

Первым шагом на стороне сервера в проекте Business Application 1.Web необходимо создать модель сущностей данных. Для этого подключается существующая база данных, например, Microsoft Adventure Work, которая расположена (http://msftclbprodsampless.codeplex.com), в папку Appdata. Затем в проект добавляется ADO.Net Entity Data Model, в мастере необходимо выбрать вариант Генерировать на основе баз данных, и выбрать несколько таблиц. После завершения в проект будет добавлена соответствующая модель сущностей, связанная с базой данных проекта. Строка соединения с базой данных будет добавлена в файл Web.Config. После этого необходимо скомпилировать проект и он готов для создания Domain Services. С помощью Domain Services создается механизм передачи модели сущностей и в клиентское приложение и удобного использования.

Для его создания необходимо добавить в BusinessApplication1.Web класс Domain Services с помощью команды Добавить в инспекторе проекта. Появится окно настройки, в котором необходимо указать требуемую сущность, а также выбрать все необходимые таблицы. Установить флажок Разрешить доступ клиента, что обеспечивает возможность из Silverlight к данному классу. В результате создания будет сгенерирован новый класс, содержащий необходимое для доступа к модели сущностей через интернет. Большинство методов этого класса реализует возможность получения требуемой сущности из базы данных через интернет, а также ее обновления. При необходимости можно добавить требуемые способы фильтрации или сортировки. В качестве методов обновления реализуются стандартные операции Вставки (Insert), Обновления ( Update) и Удаления (Delete). Измененный проект необходимо перекомпилировать, на данный момент можно считать, что серверная часть готова к использованию и требуется настройка только для клиентской части.

Для использования созданных на сервере служб создадим в клиентской части проекта Silverlight страницу с названием Customers.xaml. Страницу необходимо разместить в папке Views. Проекта. Страница должна наследоваться от других страниц проекта. Также необходимо добавить элемент Data Grid, который будет использован для отображения данных, полученных с сервера.

После подключения WCF RIA Services в Visual Studio на панели элементов становятся доступными новые элементы управления, в частности Domain Data Source. Этот элемент необходимо также перенести на страницу Silverlight. В результате в проект будет добавлено соответствующее пространство или включен элемент <riaControls=DomainDataSource/> Затем можно настроить данный элемент управления на взаимодействие с сервером, а после этого осуществить привязку DataGrid к этому источнику данных.

Например, для наших данных необходимо установить свойство QueryName в значение GetCustomers, свойство LoadSize в значения 10, это свойство показывает количество загружаемых за один раз записей.

После установки указанных свойство можно привязать созданный источник данных к DataGrid через свойство ItemsSource.

После компиляции и запуска проекта на экране отобразится таблица, содержащая 10 записей из источника данных, после небольшой паузы будут подгружены еще 10 записей, и так , пока записи не будут загружены.

Для постраничной разбавки содержимого можно добавить на страницу элемент Data Pager, и указать для него нужные настройки

<sdk: DataPager Height= "26" Name= "dataPager1" PageSize= "10" Source= BindingData, ElementName= domainDataSource1}/>

С его использованием элементы будут отображаться по 10 за один раз.

Важным для реализации простейшей логики управления данными является фильтрация данных на основе критериев задаваемых пользователей. Например, можно отображать список категорий и по выбору пользователя отображать в Data Grid информацию, относящуюся к выбранной категории. Опции фильтрации можно применить на стороне клиента добавив выпадающий список с набором категории, а также настроив дополнительно элемент Domain Data Source. В него добавляется секция Описания фильтров.

<riaControls:DomainDataSource.FilterDescriptors><riaControls:FilterDescriptorPropertyPath="TerritoryID"Operator="IsEqualTo"Value="{Binding ElementName=comboBox1,Path=SelectedItem.Content}" /></riaControls:DomainDataSource.FilterDescriptors>

В данном случае используется свойство PropertyPath, которое указывает на поле, по которому осуществляется фильтрация в таблице сущностей. Свойство Operator определяет способ сравнения. Остальные данные используют механизм связывания.

В этой лекции была рассмотрена рекомендуемая Microsoft технология создания бизнес-приложения, основанная на использовании WCF RIA служб. Данный подход ориентирован на обеспечение механизмов передачи данных от сервера к клиентскому приложению и наоборот. В этом кроется существенное отличие от других технологий веб-разработки, например, ASP.Net , где и взаимодействие с данными и пользовательский интерфейс генерируются на сервере и передаются клиенты, который только отображает созданную HTML страницу. Технология WCF RIA Services значительно упрощает и скрывает от разработчика детали реализации, представляет возможность использовать на клиенте Data Context и другие объекты Entity Framework. Также в состав WCF RIA входит шаблон приложения, на основе которого можно создавать бизнес-приложения любого уровня сложности.

Краткие итоги

· Современные бизнес-приложения имеют архитектуру интерфейсных форм на основе данных.

· Для реализации сетевого взаимодействия Silverlight поддерживает ряд специальных технологий.

· Для взаимодействия клиентских приложений Silverlight были службы Rich Internet Application Windows Communication Foundation (RIA WCF).

· RIA WCF представляет собой промежуточное звено, обеспечивающее доступ от клиентского приложения к слою бизнес-логики.

· Для создания служб RIA WCF используется надстройка Silverlight Business Application, которая представляет собой шаблон и пример использования технологии WCF RIA.


Лекция 3:


Дата добавления: 2020-11-15; просмотров: 62; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!