Разработка облачных бизнес-приложений с использованием Visual Studio LightSwitch 2011

Введение в технологию 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. Подробнее описание данной технологии будет приведено в лекции 2.

Рассмотрим современное состояние платформы 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 приложений:

  • Первый – quot;классическийquot; способ, заключается в том, что приложение выполняется в браузере в окне плеера, которое при необходимости можно развернуть на весь экран. Все элементы управления выводятся в окне и весь процесс работы с приложением происходит в этом окне.
  • Второй способ позволяет рассматривать 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. Подробную информацию можно получить в специальных справочниках и литературе , .

    Кроме 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 .

    Элементы управления SilverLight
    Название элемента управленияОписание
    Элемент управления ButtonВ Silverlight кнопка реализуется с помощью элемента управления Button. Кнопка реагирует на ввод пользователя с таких устройств ввода, как мышь, клавиатура или стилус, формируя событие Click (Щелчок).
    Элемент управления CheckBoxЭлемент управления CheckBox предоставляет пользователю опцию для выбора. Обычно он представляется в виде прямоугольника, в котором пользователь может установить или убрать флажок. Он используется, когда имеется ряд опций на выбор и можно выбрать несколько из них.
    Элемент управления HyperlinkButtonHyperlinkButton (Гиперссылка) обеспечивает на странице элемент с возможностью щелчка по нему для перехода по 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 в качестве одной из своих стратегических платформ.

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

  • Silverlight является интернет-ориентированной платформой создания и выполнения насыщенных приложений.
  • Silverlight включает в себя возможности и инструменты для создания бизнес-приложений.
  • В новой версии Silverlight 5 будет реализован ряд нововведений как в мультимедиа, так и в бизнес-функции.
  • Существует несколько принципиально различных способов использования Silverlight приложений.
  • К ключевым элементам насыщенных интернет приложений (RIA) можно отнести ряд функций SilverLight.
  • Для элементов управления Silverlight относятся к элементам расположения.
  • Для вывода и вывода мультимедиа информации Silverlight поддерживает различные кодеки и интерфейсные устройства.
  • Доступ к сети в Silverlight через классы в пространстве имен System.Net.
  • Страницы:

    Файлы к данному курсу Вы можете скачать здесь.

    Цель лекции: Первоначально знакомство с 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. Подробнее описание данной технологии будет приведено в лекции 2.

    Рассмотрим современное состояние платформы 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 приложений:

  • Первый – quot;классическийquot; способ, заключается в том, что приложение выполняется в браузере в окне плеера, которое при необходимости можно развернуть на весь экран. Все элементы управления выводятся в окне и весь процесс работы с приложением происходит в этом окне.
  • Второй способ позволяет рассматривать 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. Подробную информацию можно получить в специальных справочниках и литературе , .

    Кроме 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 .

    Элементы управления SilverLight
    Название элемента управленияОписание
    Элемент управления ButtonВ Silverlight кнопка реализуется с помощью элемента управления Button. Кнопка реагирует на ввод пользователя с таких устройств ввода, как мышь, клавиатура или стилус, формируя событие Click (Щелчок).
    Элемент управления CheckBoxЭлемент управления CheckBox предоставляет пользователю опцию для выбора. Обычно он представляется в виде прямоугольника, в котором пользователь может установить или убрать флажок. Он используется, когда имеется ряд опций на выбор и можно выбрать несколько из них.
    Элемент управления HyperlinkButtonHyperlinkButton (Гиперссылка) обеспечивает на странице элемент с возможностью щелчка по нему для перехода по 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 в качестве одной из своих стратегических платформ.

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

  • Silverlight является интернет-ориентированной платформой создания и выполнения насыщенных приложений.
  • Silverlight включает в себя возможности и инструменты для создания бизнес-приложений.
  • В новой версии Silverlight 5 будет реализован ряд нововведений как в мультимедиа, так и в бизнес-функции.
  • Существует несколько принципиально различных способов использования Silverlight приложений.
  • К ключевым элементам насыщенных интернет приложений (RIA) можно отнести ряд функций SilverLight.
  • Для элементов управления Silverlight относятся к элементам расположения.
  • Для вывода и вывода мультимедиа информации Silverlight поддерживает различные кодеки и интерфейсные устройства.
  • Доступ к сети в Silverlight через классы в пространстве имен System.Net.
  • Вернуться к учебному плану