Методика создания интерактивных приложений Silverlight

Кросс платформенность

Показывать лекцию целиком

В следующей таблице отражена совместимость Silverlight различных версий с браузерами и операционными системами.

Совместимость Silverlight с браузерами и операционными системами (данные Википедии)
ОС/Браузер IE 6 SP1 IE 6 SV1 IE 7 IE 8 Firefox SeaMonkey Safari Konqueror Opera Google Chrome
Windows Vista/2008 - - 1.0, 2.0, 3.0 2.0, 3.0 1.0, 2.0, 3.0 2.0 1.0, 2.0; через NPAPI - Неофициально 2.0
Windows XP/2003/Home Server - 1.0, 2.0, 3.0 1.0, 2.0, 3.0 2.0, 3.0 1.0, 2.0, 3.0 - 1.0, 2.0; через NPAPI - Неофициально 2.0
Windows 2000 2.0 - - - 2.0 Неофициально - 2.0; через NPAPI - Запланирована -
Windows Mobile 6 2.0 - - - - - - - - -
Mac OS 10.4/10.5 PowerPC - - - - 1.0 - 1.0 - Запланирована -
Mac OS 10.4/10.5 Intel - - - - 1.0, 2.0 - 1.0, 2.0 - Запланирована -
Совместимость Silverlight с браузерами и операционными системами (данные Microsoft)
Операционная система/Браузер Internet Explorer 8 Internet Explorer 7 Internet Explorer 6 Firefox 2, 3 Safari 3 Safari 4
Windows Vista Да Да - Да - -
Windows 7 Да - - -
Windows Server 2008 Да Да - Да - -
Windows Server 2008 R2 Да - - - - -
Windows XP SP2, SP3 Да Да Да Да - -
Windows 2000 SP4 + KB 891861 - - Да - - -
Windows Server 2003 (excluding IA-64) Да Да Да Да - -
Mac OS 10.4.8+ (PowerPC) - - - Да Да -
Mac OS 10.4.8+ (Intel-based) - - - Да Да Да

Асинхронная коммуникация

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

Вот пример как это сделать при обращении к ленте новостей агентства Рейтер:

private void FeedsReuters()
{
 Uri url = new Uri
 ("http://feeds.reuters.com/reuters/oddlyEnoughNews?format=xml");
 WebClient client = new WebClient(); 
 client.DownloadStringCompleted +=  new 
        DownloadStringCompletedEventHandler(DownloadStringCompleted);
 client.DownloadStringAsync(url);            
}

void DownloadStringCompleted(object sender, 
    DownloadStringCompletedEventArgs e)
{
 XDocument xmlHeadlines = XDocument.Parse(e.Result);
 //Обработка результата XML документа
}

Вызов веб-сервиса происходит асинхронно DownloadStringAsync, когда сервис возвратит данные отработает метод DownloadStringCompleted, возвращая результат, как DownloadStringCompletedEventArgs. Результат показан на рис.2.1

(рис 2.1) Асинхронная коммуникация на примере вызова веб-сервиса

Если отключить соединение с интернетом или в случае, когда сервер недоступен, приложение не "зависнет", а будет работать дальше, но выдавать исключения отсутствия соединения. Такая ситуация показана на рис.2.2.

(рис 2.2) Асинхронная коммуникация, отсутствие соединения с веб-сервисом

В лекции 3 "Работа Silverlight с базами данных" представлен еще один пример асинхронных вызовов.

Сравнение версий

Microsoft Silverlight - это плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application). Версия 2.0, выпущенная в октябре 2008, добавила поддержку для языков .NET и интеграцию с IDE. В июле 2009 Microsoft выпустила Silverlight 3 и Microsoft Expression Studio 3.

Silverlight реализован для ОС Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Mac OS X 10.4, Mac OS X 10.5 и браузеров Internet Explorer 6.0/7.0/8.0, Mozilla Firefox 1.5/2.0/3 и Safari 3.1. В будущем также планируется поддержка Opera, мобильных устройств, начиная с Windows Mobile 6 и Symbian (Series 60), и, возможно, других платформ

Silverlight предоставляет графическую систему, схожую с Windows Presentation Foundation, и объединяет мультимедиа, графику, анимацию и интерактивность в одной программной платформе. Он был разработан чтобы работать с XAML и с языками Microsoft .NET. XAML используется для разметки страниц, использующих векторную графику и анимацию. Текст, содержащийся в Silverlight приложениях, доступен для поисковых систем, так как он не компилируется, а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать гаджеты для Windows Sidebar в Windows Vista.

Silverlight поддерживает воспроизведение WMV, WMA и MP3 для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player

Silverlight 1.0

(рис 2.3) Архитектура Silverlight 1.0 приложения

Silverlight 1.0 является подключаемым модулем обозревателя для обработки XAML плюс кодеки, для воспроизведения мультимедийного содержимого в форматах WMV, WMA и MP3. Он представляет обозревателю внутреннюю модель DOM, управляемую из JavaScript кода. Язык XAML основан на XML, поэтому документ, определяющий загружаемый клиенту пользовательский интерфейс - текстовый и вполне пригоден для индексирования поисковыми системами. Используя представленную модель DOM, JavaScript может динамически обновлять содержимое Silverlight, аналогично DHTML. Также можно вызывать методы управления презентацией (запуска анимации или приостановки воспроизведения видео, например).

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

В комплекте к Visual Studio 2005 SP1 прилагаются "Silverlight Tools for VS 2005".

Участники проекта Mono 16 мая 2008 года выпустили реализацию плагина Silverlight на базе открытого ПО, работающую на Linux - Moonlight, однако ни открытым, ни свободным ПО она считаться не может, так как разрешение на использование патентов предоставляется только получателям кода от Novell, и только для создания плагинов. Moonlight 2.0 находится в состоянии Preview 3.

Silverlight 2.0

(рис 2.4) Архитектура SilverLight 2

Версия Silverlight 2.0 была выпущена в октябре 2008 года и включала в себя подмножестово библиотек .NET Framework.

Кроме этого доступны для скачивания Microsoft Silverlight Tools for Visual Studio 2008, которые включают в себя:

  • Шаблоны для проектов Visual Basic и C#
  • Интеллисенс и генераторы кода для XAML
  • Отладку приложений Silverlight
  • Поддержку Web reference
  • Интеграцию с Expression Blend
  • Silverlight 3.0

    18 марта 2009 года на конференции MIX09 Лас-Вегасе Microsoft продемонстрировала бета-версию. 10 июля 2009 года в ходе мероприятия See the Light Microsoft объявила об официальном выпуске RTM версии. В настоящее время последняя доступна для загрузки на сайте Microsoft.

    Среди особенностей новой версии:

  • Поддержка устройств с multitouch-интерфейсом
  • Поддержка форматов H.264, AAC и MPEG-4
  • Поддержка аппаратного ускорения при работе с трехмерной графикой. Это позволяет задействовать потенциал графического процессора и снизить нагрузку на центральный процессор
  • Работа вне броузера
  • Новые возможности Silverlight 3

    Silverlight 3 предоставляет следующие новые возможности и функции, полностью поддерживаемые Visual Studio и Expression Blend, повышающие эффективность разработки RIA-приложений. Silverlight 3 имеет значительные усовершенствования в работе с мультимедиа. Выполнение веб-приложений без использования веб-браузера, прямо на рабочем столе. Значительное усовершенствование работы с графикой, включая поддержку трехмерной графики, видео-стандарта H.264 и ускорителей графических процессоров (GPU). Кроме того, чтобы обеспечить полную интеграцию со всеми средствами разработки .NET, пакет Visual Studio 2010 будет поддерживать полностью интерактивный и редактируемый конструктор для Silverlight 3.

    Новые возможности Silverlight 3 включают в себя следующее.

    Поддержка высококачественного видео и звука. Благодаря встроенной поддержке стандарта кодирования видео H.264 и стандарта кодирования звука Advanced Audio Coding (AAC), поддержке технологии интеллектуально адаптируемого потока IIS7 Smooth Streaming (в режиме реального времени и по запросу), воспроизведению видео высокой четкости стандарта Full HD (720p+) и расширяемому конвейеру декодера Silverlight 3 предоставляет на рабочем столе многофункциональный, полноэкранный мультимедийный интерфейс, работающий без задержек. Новые и усовершенствованные возможности Silverlight 3 по работе с мультимедиа включают в себя следующее.

  • Плавное потоковое воспроизведение (в режиме реального времени и по требованию) настоящего видео высокой четкости (с разрешением 720 точек и более). Службы IIS Media (ранее IIS Media Pack) - это интегрированная платформа предоставления мультимедиа по протоколу HTTP, поддерживающая технологию Smooth Streaming, которая в зависимости от нагрузки центрального процессора и параметров канала связи локального компьютера динамически определяет и плавно, в режиме реального времени, изменяет качество медиафайла, воспроизводимого с помощью Silverlight.
  • Поддержка дополнительных форматов.Кроме встроенной поддержки форматов VC-1 и Windows Media Audio, Silverlight 3 поддерживает формат AAC и основанный на MPEG-4 формат H.264, позволяя распространителям контента передавать высококачественный контент на широкий круг компьютеров и устройств.
  • Настоящее видео высокой четкости в полноэкранном режиме. Благодаря использованию аппаратного ускорения GPU платформа Silverlight позволяет воспроизводить в полноэкранном режиме видео высокой четкости(с разрешением 720 точек и более).
  • Расширяемая поддержка форматов контента. Благодаря новому конвейеру необработанных аудио- и видеоданных Silverlight может поддерживать широкий круг кодеков сторонних разработчиков. Это позволяет декодировать видео и звук за пределами среды Silverlight, а затем воспроизводить в Silverlight, обеспечивая поддержку форматов, которые не поддерживаются встроенными кодеками.
  • Высокий уровень защиты контента. Управление цифровыми правами Silverlight, основанное на защите контента PlayReady, позволяет отображать в веб-браузере защищенный контент, используя шифрование по протоколу AES (Advanced Encryption Standard) или управление цифровыми правами Windows Media.
  • Новые возможности отображения. Silverlight 3 поддерживает новые возможности анимации, трехмерной графики, повышения качества отображения текста и использования эффектов, основанных на аппаратном ускорении, позволяя разработчикам и проектировщикам создавать визуальные эффекты следующего поколения для веб-приложений. Некоторые новые возможности перечислены ниже.

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

  • Более 60 элементов управления с исходным кодом. В состав Silverlight 3 входит более 60 готовых высококачественных, настраиваемых элементов управления с полной поддержкой обложек, включая элементы для построения диаграмм и работы с мультимедиа, новые контейнеры макетов, такие как модуль стыковки и поле просмотра, а также элементы управления для автозаполнения, представления в виде дерева и работы с сетками данных. Эти элементы управления поставляются с девятью профессионально оформленными темами и полным исходным кодом. Кроме того, Silverlight 3 предоставляет разработчикам списки с возможностью выбора нескольких элементов и окно сохранения файла, упрощающее запись файлов, а также поддерживает многостраничные приложения, использующие навигацию.
  • Глубокое связывание. Silverlight 3 поддерживает глубокое связывание, позволяя создавать закладки для страниц в RIA-приложениях.
  • Поисковая оптимизация (SEO). Silverlight 3 разрешает выполнять поисковую оптимизацию в соответствии с потребностями, которые возникают при работе с RIA-приложениями. С помощью расположенных на сервере бизнес-объектов, в совокупности с элементами управления ASP.NET и картами сайтов, пользователи могут автоматически отражать управляемый базами данных RIA-контент в HTML-код, который эффективно индексируется лидирующими поисковыми системами.
  • Новые возможности работы с данными. Silverlight 3 предоставляет следующие возможности.
  • Связывание элемент-элемент. Разработчики пользовательских интерфейсов используют связывание элементов интерфейса с целью создания удобных интерфейсов. Silverlight 3 позволяет с помощью языка XAML (Extensible Application Markup Language) связывать элементы интерфейса с объектами общеязыковой среды выполнения (CLR) и другими компонентами пользовательского интерфейса. Например, эта возможность позволяет связывать положение ползунка с уровнем громкости медиапроигрывателя.
  • Формы данных.Форма данных поддерживает разметку полей, а также проверку и обновление данных и разбиение их на страницы.
  • Новые возможности проверки данных. Автоматическое обнаружение ошибок при вводе и предупреждение пользователя с помощью встроенных элементов управления проверкой.
  • Поддержка бизнес-объектов. Поддержка бизнес-объектов в клиентских и серверных системах благодаря поддержке многоуровневых данных. Пользователи получают удобные средства загрузки, сортировки и фильтрации данных и их разбиения на страницы, а также выполнения ряда других операций с ними. Кроме того, добавлен новый встроенный элемент CollectionView, позволяющий выполнять ряд сложных операций с данными на сервере. Новый набор служб RIA .NET поддерживает следующие возможности сервера.
  • Повышение производительности благодаря следующим возможностям.
  • Кэширование библиотек приложений. Уменьшает размер приложений благодаря кэшированию инфраструктуры на стороне клиента с целью повышения скорости отрисовки.
  • Усовершенствованное глубокое масштабирование. Предоставляет пользователям удобную навигацию в больших наборах изображений, основанную на масштабировании
  • Двоичный язык XML. Позволяет выполнять обмен с сервером в сжатом виде, значительно повышая скорость обмена данными.
  • Локальное подключение. Дает возможность двум выполняющимся на клиентском компьютере приложениям Silverlight обмениваться данными напрямую, минуя сервер. Например, эта возможность позволяет приложению строить диаграмму, используя информацию из сетки данных другого приложения.
  • Работа без веб-браузера. Silverlight 3 предоставляет новые возможности для создания облегченных, сопутствующих веб-приложений, выполняющихся в "песочнице" на настольном компьютере, обеспечивая веб-сайтам постоянный контакт с пользователями. Благодаря новым возможностям веб-приложения теперь можно помещать в хранилище с ограниченным доступом на компьютере пользователя и создавать ссылки на эти приложения на рабочем столе, в меню "Пуск" и в новой панели задач (Superbar) Windows 7, что облегчает поиск приложений и обеспечивает запуск их одним щелчком мыши. Silverlight 3 позволяет применять эти возможности, не изменяя существующие методики разработки приложений и не загружая дополнительное ПО. Кроме того, приложения Silverlight могут проверять, подключены ли они к Интернету, обновлять свои версии и обращаться к изолированному хранилищу. Совместное использование этих возможностей значительно повышает эффективность работы по сравнению с традиционным подходом. Некоторые новые возможности описаны ниже.

  • Поддержка ярлыков на рабочем столе и в меню "Пуск". Разработчики могут помещать приложения на рабочий стол, обеспечивая их запуск одним щелчком мыши.
  • Выполнение без браузера. Позволяет не запускать браузер при работе с приложениями.
  • Высокая надежность, безопасность и использование "песочницы". Приложения обеспечивают высокую защищенность, не отображая мешающие работе предупреждения системы безопасности.
  • Удобная установка, не требующая прав администратора. Приложения Silverlight хранятся в локальном кэше и не требуют для работы дополнительных прав.
  • Поддержка автоматического обновления. При запуске приложения Silverlight проверяют наличие новой версии на сервере и автоматически выполняют обновление.
  • Проверка подключения к Интернету (с браузером и без него). Приложения Silverlight могут обнаруживать разрыв подключения к Интернету и помещать пользовательские данные в кэш, пока подключение не восстановится.
  • Интеграция с Windows. Silverlight 3 поддерживает Windows 7 Superbar, мультисенсорные технологии ввода и другие новые технологии.
  • Расширенные специальные возможности. Silverlight 3 - это первый подключаемый модуль для веб-браузеров, который обеспечивает доступ ко всем системным цветам и позволяет людям с ослабленным зрением использовать привычные средства управления ОС, чтобы выбирать схемы с высоким контрастом и вносить другие изменения, облегчающие восприятие текста.

    Среда разработки Silverlight 3

    Expression Blend 3 - это среда разработки и проектирования, которая сегодня значительно прогрессировала благодаря поддержке новых, передовых возможностей. В их числе функция SketchFlow, позволяющая быстро создавать прототипы, что облегчает представление заинтересованным сторонам образцов дизайна; выборки проектных данных, позволяющие проектировать и тестировать приложения без фактических данных; прямой импорт файлов Adobe Photoshop и Adobe Illustrator; расширяемые, повторно используемые компоненты расширения функциональности, позволяющие наращивать пользовательский интерфейс приложений не прибегая к дополнительному кодированию; полнофункциональный редактор кода, поддерживающий C#, Visual Basic и XAML; а также многие другие возможности, повышающие эффективность разработки и проектирования.

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

    Импорт файлов Adobe Photoshop и Adobe Illustrator. Мощные средства импорта файлов Adobe Photoshop и Adobe Illustrator обеспечивают эффективную интеграцию с существующими рабочими средами проектировщиков. Проектировщик может послойно просматривать и импортировать файлы Photoshop. Expression Blend позволяет перегруппировывать слои и элементы, не меняя их исходный формат. Кроме того, в среде Expression Blend можно редактировать слои, менять их положения, изменять текст и векторы.

    Расширения функциональности. Позволяют разработчикам расширять пользовательский интерфейс приложений без написания дополнительного кода. Это достигается благодаря инкапсуляции сложных функций взаимодействия в повторно используемые компоненты, которые можно напрямую применять к элементам пользовательского интерфейса приложений. Многофункциональные интерфейсы API позволяют разработчикам создавать триггеры, действия и режимы, используемые в их проектах Silverlight и Windows Presentation Foundation.

    Выборки проектных данных. Позволяют создавать использующие данные приложения без обращения к фактическим данным. Разработчики могут создавать выборки данных самостоятельно или импортировать их из файла XML, используемого для элементов управления на панели конструирования (Artboard) во время проектирования. Expression Blend 3 предоставляет широкие возможности настройки примеров данных и позволяет переключаться между тестовыми и фактическими данными, не прерывая работу.

    Усовершенствованная среда проектирования и разработки. Expression Blend 3 содержит множество нововведений, повышающих эффективность работы, включая новую панель конструирования, которая делает работу с этой средой более удобной для проектировщиков, использующих визуальные средства. Поддержка сервера Visual Studio Team Foundation Server упрощает пользователям Expression Blend интеграцию с Visual Studio Team System. Усовершенствованные функции анимации и удаления, трехмерные преобразования, визуальные эффекты и улучшенный диспетчер видимых состояний предоставляют удобную среду для работы.

    Вернуться к учебному плану