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

Silverlight

Аннотация: Краткое описание Silverlight, описание архитектуры, сравнение с технологией Flash, Silverlight и WPF, описание инструментария для работы с Silverlight, XAML.

Microsoft Silverlight - это кросс-браузерная, кросс-платформенная технология для разработки богатых интерактивных Web приложений ( RIA — Rich Interactive Applications) следующего поколения. Не смотря на то, что Silverlight основан на технологии Microsoft .NET, он не требует установки полного .NET Framework какой-либо версии

Веб-разработчики и дизайнеры графики могут создавать приложения Silverlight множеством способов. Разметку Silverlight можно использовать для создания мультимедиа и графики, а также работать с ними посредством динамических языков и управляемого кода. Silverlight также позволяет использовать инструменты профессионального уровня, такие как Visual Studio, для написания кода и Microsoft Expression Blend для создания макетов и графического дизайна.

Возможности SIlverlight

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

  • WPF и XAML. Silverlight включает подмножество методов Windows Presentation Foundation (WPF), которое значительно расширяет возможности элементов браузера для создания пользовательского интерфейса. Silverlight позволяет создавать впечатляющие графику, анимации, мультимедиа и другие многофункциональные клиентские функции, расширяя пользовательский интерфейс на основе браузера за пределы возможностей, предоставляемых HTML. Расширяемый язык разметки приложений (XAML) предоставляет синтаксис декларативной разметки для создания элементов.
  • Расширения на JavaScript. Silverlight предоставляет расширения для универсального скриптового языка браузеров, обеспечивающие управление пользовательским интерфейсом браузера, включая возможность работы с элементами WPF.
  • Поддержка различными браузерами и платформами Silverlight выполняется одинаково во всех распространенных браузерах (и платформах). При проектировании и разработке приложения можно не беспокоиться о том, в каком браузере или на какой платформе оно будет использоваться.
  • Интеграция с существующими приложениями. Silverlight тесно интегрируется с существующим кодом JavaScript и ASP.NET AJAX для дополнения созданной функциональности.
  • Доступ к модели программирования платформы .NET Framework. Можно создавать приложения Silverlight, используя динамические языки, например IronPython, а также языки C# и Visual Basic..
  • Поддержка средств. Средства разработки, такие как Visual Studio и Expression Blend, можно использовать для быстрого создания приложений Silverlight.
  • Поддержка работы в сети. Silverlight включает поддержку HTTP по протоколу TCP. Можно подключиться к службам WCF, SOAP и ASP.NET AJAX и получать данные XML, JSON и RSS.
  • LINQ. Silverlight включает встроенный язык запросов ( LINQ ), который позволяет программировать доступ к данным с помощью интуитивно понятного синтаксиса и строго типизированных объектов на языках .NET Framework.

Архитектура Silverlight

Архитектура SIlverlight

Рис. 20.1. Архитектура SIlverlight

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

Сравнение WPF и Silverlight

(Более подробно в блоге http://blogs.msdn.com/b/vorobiev/archive/2009/07/28/wpf-silverlight-1-3.aspx)

Архитектуру клиент-серверных приложений можно разделить на два типа: с использованием толстого или тонкого клиента. Для создания быстрых красивых тонких клиентов хорошо подойдет Silverlight, который не занимает много места и предоставляет богатый функционал. При проектировании толстого клиента желательно воспользоваться WPF, который дает нам дополнительные возможности.

Таблица 20.1. Приемущества и недостатки WPF и Silverlight
Преимущества Недостатки
Windows Presentation Foundation
  • Может использовать клиентские ресурсы
  • Предоставляет больше интерактивности
  • Богатый набор библиотек для реализации пользовательских функций.
  • Высокая производительность
  • Не требует соединение с Internet

Требует установки(Click Once, Windows Installer, Copy)

Требует наличия .Net Framework 3.0 +

Silverlight
  • Богатый набор библиотек для реализации пользовательских функций.
  • Богатые средства для работы с медиа
  • Простая схема развертывания
  • Компактность
  • Работает на большом количестве браузеров и ОС

Требует установленного Silverlight Runtime

Инструментарий для работы с Silverlight

Microsoft Expression Studio

Microsoft Expression Studio – это современный надежный набор инструментов для дизайнеров, позволяющий им создавать артефакты, которые затем могут быть включены разработчиками при работе с пакетом инструментов Microsoft Visual Studio.

В пакет инструментов Expression Studio входит несколько продуктов:

  • Expression Web. Этот инструмент для Веб-разработки обеспечивает возможность использовать HTML, DHTML, CSS и другие стандартные Веб-технологии для проектирования, построения и управления Веб-приложениями.
  • Expression Media. Этот инструмент управления мультимедиа ресурсами позволяет каталогизировать и организовывать эти элементы, а также кодировать и перекодировать из формата в формат.
  • Expression Encoder. Это приложение разработано для обеспечения возможности управления кодированием мультимедиа ресурсов. Также может использоваться для комплектации мультимедиа Silverlight-медиаплеером в виде соответствующего кода.
  • Expression Design. Это инструмент графического дизайна, который можно использовать для создания иллюстраций, графических элементов и ресурсов для UI Веб- и настольных приложений.
  • Expression Blend. Этот инструмент обеспечивает возможность создавать UI на базе XAML для настольных приложений на WPF или Веб-приложений на Silverlight.

Visual Studio 2010

Visual Studio 2010 имеется шесть видов шаблонов Silverlight проектов ( Рис 20.2).

Шаблоны проектов Silverlight в Visual Studio 2010

увеличить изображение
Рис. 20.2. Шаблоны проектов Silverlight в Visual Studio 2010

Обычно, для создания Silverlight приложений используется шаблон Silverlight Application ( Рис 20.2), который уже содержит весь набор библиотек необходимы для создания приложения. После того как проект будет создан в Visual Studio 2010 станет доступно создание приложения в режиме конструктора. Конструктор Silverlight для Visual Studio 2010 предоставляет поддержку визуального проектирования для создания приложений Silverlight и Windows Presentation Foundation ( WPF ). Можно создавать пользовательские интерфейсы для приложений, перетаскивая элементы управления с Панели элементов и устанавливая свойства в окне Свойства. Также можно изменять код XAML непосредственно в представлении XAML. На Рис 20.3показан сред. Конструктор Silverlight с некоторыми его окнами, поддерживающими такую возможность.

Конструктор Silverlight

Рис. 20.3. Конструктор Silverlight

При первом запуске сред. Конструктор Silverlight "Панель элементов" и окна "Источники данных" и "Структура документа" свернуты в левой части окна Visual Studio. Если отобразить и закрепить эти вкладки слева, получится предыдущее представление, удобное для работы с рабочей областью конструирования.

Конструктор предоставляет рабочую область конструирования для построения элементов управления Silverlight и макета приложений. В нем отображается текущее состояние кода в представлении XAML. При изменении элементов управления на поверхности разработки, представление XAML обновляется для отражения изменений. Режим конструктора предоставляет множество возможностей для упорядочения элементов управления на странице приложения Silverlight. Некоторые функции представления конструктора отображены на Рис 20.4.

Функции конструктора

Рис. 20.4. Функции конструктора

Некоторые функции конструктора:

  • Масштаб. Элемент управления Zoom позволяет управлять размером рабочей области конструирования. Можно изменять масштаб с 10% до значения 20x.
  • Сдвиг. При увеличении масштаба рабочей области конструирования появляются горизонтальная или вертикальная полосы прокрутки и можно сдвигать рабочую область конструирования для просмотра ее частей, находящихся за границами экрана. Для этого, нажав и удерживая клавишу ПРОБЕЛ, перетащите рабочую область конструирования.
  • Fit in view. Используйте кнопку "По размеру представления" для увеличения размера рабочей области до размера экрана в конструкторе. Это полезно после сильного уменьшения или увеличения.
  • Границы сетки. Границы сетки служат для управления строками и столбцами в элементе управления Grid. Можно создать и удалить столбцы и строки, настроить их относительную ширину и высоту.
  • Линии сетки. Линии сетки используются для управления высотой и шириной строк и столбцов элемента управления Grid. Можно добавить новый столбец или строку, щелкнув левую или верхнюю границу элемента управления Grid.
  • Индикаторы линий сетки. Индикатор линии сетки отображается как треугольник на границе таблицы. При перетаскивании индикатора линии сетки или непосредственно самой линии сетки значения ширины и высоты смежных столбцов и строк обновляются по мере движения мыши.
  • Маркер перемещения. Отображаемый в левом верхнем углу выбранного элемента управления панели маркер перемещения позволяет перемещать панель. Щелкните маркер перемещения и перетащите элемент управления в нужное место поверхности разработки.
  • Маркеры изменения размеров. Для выбранных элементов управления отображаются маркеры изменения размеров, позволяющие изменять размер элемента управления. После изменения размера элемента управления обычно появляются значения ширины и высоты, которые позволяют установить более точные размеры элемента управления.
  • Линии полей. Поля представляют фиксированное расстояние между краем элемента управления и краем его контейнера. Чтобы задать поля элемента управления, щелкните его линии полей.
  • Заглушки полей. Заглушка поля появляется на выбранном элементе управления, когда значение его поля установлено равным 0. Щелкните ее, чтобы установить расстояние до соответствующего края контейнера.
  • Линии привязки. Линии привязки используются для выравнивания элементов управления относительно друг друга. Если линии привязки включены, они появляются при перетаскивании элемента управления относительно других элементов управления, когда края и текст некоторых элементов управления выравниваются по горизонтали или вертикали.
  • Панель информации. В верхней части конструктора отображается панель информации со сведениями о неполадках визуализации в конструкторе. В некоторых случаях можно щелкнуть панель информации, чтобы получить дополнительные сведения о неполадке.
  • Шкала изменения размера. При перемещении указателя мыши по границе сетки элемента управления Grid, имеющего не менее двух столбцов или строк, с внешней стороны границы отображается шкала изменения размера. Шкала изменения размера позволяет задать для столбцов и строк Grid параметры "fixed", "star" и "Auto sizing".
  • Тег Root Sizing. Тег root sizing отображается в правом нижнем углу окна в конструкторе при выборе этого окна. Тег root sizing позволяет переключать свойство "root size" окна между значениями "auto" и "fixed".

Обзор Silverlight 5

Поддержка 64-битной платформы

Даже Silverlight 4 не работает в 64-битных браузерах. Между тем, 32-бита уверенно уходят в прошлое. Именно поэтому, начиная с 5-й версии Silverlight, плагин будет доступен как в 32-битной, так и в 64-битной версиях. Предполагается, что пользователю не придется думать, какая из версий должна быть установлена.

Управление скоростью проигрывания видео

Функциональные возможности позволят устанавливать скорость проигрывания, синхронизируя видео и звук, а также выполнять "переметку" не только вперед, но и назад. Предполагается, что можно будет использовать следующие множители для скорости проигрывания: 0.2, 0.4, 0.6, 0.8, 1, 2, 4, 8, 16, 32.

Интеграция с пультом управления

Сегодня, такие приложения, как Windows Media Center, успешно работают с пультом, позволяющим управлять программой, " не вставая с кровати" ". Silverlight 5 будет поддерживать аналогичные возможности.

Улучшенное управление питанием

Речь идет о том, что при просмотре видео с помощью Silverlight (а, следовательно, при отсутствии взаимодействия с мышью и клавиатурой), Вас не застанет врасплох установленный на машине Screensaver и Вам не придется бросаться к мыши, чтобы продолжить смотреть видео.

Двойной щелчок мышью

Событие, связанное с мышью, теперь будет получать значение в свойстве ClickCount, показывающее, сколько раз пользователь щелкнул кнопкой. Иными словами, разработчик сможет описать реакцию на двойной щелчок мыши.

Копирование изображений

В Silverlight 4 появился класс Clipboard, который позволил копировать текст в буфер и обратно. Silverlight 5 расширяет возможности этого класса, позволяя работать с изображениями. Методы SetImage и GetImage будут работать с объектами типа BitmapSource. Также предусмотрено наличие метода ContainsImage, проверяющего наличие изображения в буфере.

Поддержка 3D

Речь идет не о технологии псевдо 3D, появившейся в Silverlight 4, а о полноценном 3D API с поддержкой аппаратного ускорения. Последнее уже хорошо зарекомендовало себя при работе с видео.

Поддержка Behaviors и Triggers

Поддержка Behaviors призвана перенести функциональность Поведений, реализованных в Blend на уровень ядра Silverlight. Речь идет о создании комплексных объектов, объединяющих в себе ряд различных преобразований, создавая тем самым уникальное Поведение. И если ранее подобное можно было реализовать, только подключив специальную сборку из Blend, то теперь это все будет в ядре. Введение триггеров призвано еще больше сблизить WPF и Silverlight, хотя триггера в Silverlight выглядят более универсальными.

Улучшенное отображение текста

Для начала, в элементах TextBlock появится возможность устанавливать интервал между символами и строками. Появится полная поддержка OpenType. Кроме того, планируются значительно улучшить элемент RechText, добавив туда новые возможности (хоть он мне и не нравится).

Layout transition

В Silverlight 5 любому контейнеру будет можно задавать эффекты, связанные с заполнением контейнера и добавлением нового элемента. Благодаря Layout transition разработчику не придется работать с каждым элементом отдельно, а достаточно будет указать механизм заполнения для всего контейнера.

Связывание с данными: Отладка

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

Связывание с данными: FindAncestor

RelativeSource FindAncestor позволяет выполнять связку, выполняя поиск любого вышестоящего элемента и выполнять с ним связывание.

Связывание с данными: DataContextChanged

Новое событие DataContextChanged позволит определить изменение источника данных при связывании.

Связывание с данными: Стили

Связывание теперь можно будет использовать в Setter элементах стилей. Это позволит быстро менять внешний вид окна, задавая различные темы.

Дочерние окна

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

Поддержка Full-Trust внутри браузера

Silverlight 5 будет поддерживать правила, установленные групповыми политиками. Поддержка групповых политик позволит централизовано управлять развертыванием Silverlight-приложений. Кроме того, это даст возможность устанавливать список Publishers (вылетело русское слово из головы), разрешая избранным приложениям работать внутри браузера, но с использованием Full-Trust со всеми вытекающими последствиями (включая поддержку элемента WebBrowser ). Это нововведение связано с отзывом от некоторых компаний, которые хотят запускать свои корпоративные приложения внутри браузера, но с повышенными привилегиями.

P/Invoke

Добавлена так же возможность вызова Win API функций.

Атанас Маринов
Атанас Маринов
Болгария
Владимир Матыцин
Владимир Матыцин
Россия, Арсеньев