Приложения Silverlight

142

В Silverlight используется традиционная технология расширения функциональности браузеров — надстройки (plug-ins).

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

На рисунке ниже показаны два вида страницы, содержащей объект Silverlight. Вверху приведена страница, которую пользователь видит, когда надстройка Silverlight не установлена. В этот момент пользователь может щелкнуть на кнопке Click now to install (Установить сейчас), чтобы перейти на сайт Microsoft, где будет предложено установить надстройку. Внизу показана та же страница после установки надстройки Silverlight:

Страница без установленного плагина Silverlight
Приложение Silverlight

На данный момент надстройка Silverlight установлена на 75% компьютеров, подключенных к Интернету (включая настольные компьютеры и мобильные устройства). Если учитывать только компьютеры, на которых установлены Windows и браузер Internet Explorer, процент Silverlight будет выше. Такие показатели впечатляют, однако надстройки Flash все же установлены на большем количестве веб-устройств (96%).

Требования к системе, предъявляемые Silverlight

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

Windows

Версия Silverlight 5 работает на компьютерах под управлением Windows 8, Windows 7, Windows Vista и Windows XP. Минимальные версии браузеров, поддерживающих Silverlight — Internet Explorer 6, Firefox 1.5 и Chrome 4.0. Надстройки работ также под управлением Windows 2000, но только с Internet Explorer 6. Другие браузеры, такие как Opera и Safari (для Windows) в настоящий момент тоже поддерживают надстройку Silverlight, однако она для них пока что не документирована.

Macintosh

Надстройки Silverlight работают на компьютерах Mac с операционной системой версии OS X 10.4.8 или более поздней. Должен использоваться процессор Intel (оборудование PowerPC недопустимо). Для Silverlight минимальные версии браузеров — Firefox 2 и Safari 3. На мобильных устройствах Apple, включая iPhone, iPod Touch и iPad, приложения Silverlight не поддерживаются.

Linux

В настоящее время надстройки Silverlight 5 на Linux не работают, однако команда Mono создает открытую библиотеку для Silverlight (проект Moonlight, одобряемый компанией Microsoft). Последняя стабильная официальная версия Moonlight поддерживает приложения Silverlight 2, но сейчас уже выпущена бета-версия, поддерживающая Silverlight 4. Прогресс медленный, поэтому пока что неизвестно, когда Moonlight будет поддерживать Silverlight 5, если вообще будет.

Windows Phone

Silverlight — одна из двух официально поддерживаемых технологий разработки приложений для Windows Phone 7 и 8 (другая — Microsoft XNA).

Для установки надстройки Silverlight необходим небольшой файл (менее 10 Мбайт), который легко загрузить, поэтому установить надстройку Silverlight не сложнее, чем Flash.

Silverlight и Flash

В настоящее время самая успешная и популярная надстройка браузера — Adobe Flash — установлена в более чем 96% браузеров по всему миру. Технология Flash имеет долгую историю — более десяти лет. Изначально Flash была простым инструментом добавления анимированной графики, но со временем она постепенно превратилась в мощную платформу разработки интерактивного содержимого.

Для разработчиков .NET создание веб-сайтов с использованием содержимого Flash выглядит вполне естественным. Однако для Flash нужны отдельные инструменты разработки — совершенно другой язык программирования (ActionScript) и другая среда программирования (Flex).

Хуже всего то, что не существует простых способов интеграции содержимого Flash с серверным кодом .NET. В частности, для обращения объекта Flash к компоненту .NET потребуется приложить немалые усилия. Использование серверного кода .NET для вывода содержимого Flash (например, для создания элемента управления ASP.NET, который манипулирует содержимым Flash) — еще более тяжелая задача.

По сравнению с Flash, Silverlight существенно облегчает манипулирование содержимым .NET. Главная цель Silverlight — обеспечить создание приложений, столь же мощных и кроссплатформенных, как и Flash, на основе первоклассной платформы программирования .NET. Благодаря этому разработчики могут создавать клиентский код Silverlight на том же языке (C# или VB), что и серверный код. Кроме того, разработчики могут применять в клиентском коде Silverlight те же абстракции, что и в серверном коде, включая потоки ввода-вывода, элементы управления, коллекции, обобщенные объекты и средства LINQ.

Silverlight и HTML5

Когда создавалась технология Silverlight, предполагалось, что ее главным назначением будет разработки мощных веб-страниц, а ее главным конкурентом — технология Adobe Flash. Однако после выпуска нескольких версий Silverlight мир изменился. Приложения Adobe Flash по-прежнему поддерживаются практически каждым настольным компьютером, но они оказались исключенными из таких популярных продуктов Apple, как iPhone и iPad. В результате ниша мобильных устройств стала тяготеть к другим решениям, таким как одноплатформенные специализированные приложения (выполняющиеся только в одной операционной системе) и HTML5.

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

Без сомнения, позиции HTML5 со временем будут усиливаться. Но до того времени разработчики вынуждены выбирать между средствами, которые поддерживаются уже сейчас (Silverlight и Flash), но никогда не будут поддерживаться мобильными устройствами, и средствами, которые не поддерживаются сейчас, но в будущем будут поддерживаться всеми устройствами, включая мобильные. В последнем случае разработчик предпочтет HTML5. Эта дилемма выбора между мощными и доступными средствами. Технология Silverlight относится к мощным средствам, a HTML5 — к доступным, потому что сейчас она поддерживается всеми настольными браузерами (но не всеми мобильными устройствами).

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

Будущее платформы Silverlight сейчас довольно туманное. Она может остаться предпочтительной платформой для разработчиков корпоративных приложений на основе .NET или постепенно превратиться в узкопрофильный инструмент создания мощных компьютерных игр и видеоплееров. Одно можно сказать определенно: Silverlight никогда не заменит HTML в качестве главного языка создания традиционных открытых веб-сайтов. Впрочем, это никогда и не планировалось.

Silverlight и Metro/Windows 8

Когда компания Microsoft объявила о создании Windows 8 на основе новой модели программирования мощных клиентских приложений (она называется Metro), развитие платформы Silverlight приостановилось. Многие разработчики задумались: не станет ли в ближайшем будущем новая модель программирования "убийцей" Silverlight?

Ответ на это вопрос — категорическое "Нет!". Технология Metro предназначена для облегчения создания приложений совершенно другого типа: легковесных, ориентированных на сенсорные экраны и интенсивный обмен данными. Эти приложения предназначены для будущих поколений планшетных компьютеров на базе Windows 8. Технология Metro (как и ее ближайшая родственница WPF) конкурирует с платформой iPad. Приложения Metro не могут выполняться на платформах, не принадлежащих Microsoft, и даже более того — на любой версии Windows, отличной от Windows 8. По этой причине технология Metro не является конкурентом и не представляет интереса для разработчиков Silverlight.

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

Silverlight и WPF

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

Технология WPF предназначена для создания сложных приложений Windows. Средства WPF не только упрощают процесс разработки благодаря удобным высокоуровневым средствам, но и обеспечивают более высокую производительность благодаря выводу любого содержимого непосредственно через конвейер DirectX.

Очевидно, что Silverlight не может дублировать все средства WPF, поскольку многие из них зависят от возможностей операционной системы, включая специфичные для Windows драйверы и средства DirectX. И все же, вместо того чтобы изобретать для клиентской стороны совершенно новый набор элементов управления и классов, разработчики Silverlight применили подмножество модели WPF. Если у вас есть опыт работы с WPF, вы будете удивлены тем, как сильно Silverlight похожа на WPF. Ниже перечислено несколько общих особенностей:

Развитие Silverlight

Версия Silverlight 1 была весьма "скромной". Она содержала средства поддержки двухмерного рисования и воспроизведения мультимедийных файлов. В ней не было даже драйвера среды выполнения CLR и компилятора языков .NET, поэтому разработчики были вынуждены писать код на JavaScript.

Версия Silverlight 2 была радикально изменена. В нее были добавлены среда CLR, подмножество классов .NET Framework и модель пользовательского интерфейса на основе WPF. В результате Silverlight 2 стала одной из наиболее ожидаемых технологий за всю историю Microsoft.

Следующие версии Silverlight не столь амбициозны, как Silverlight 2. В Silverlight 5 сохранена модель разработки Silverlight 2 и добавлено несколько тщательно отобранных новых средств. Перечислим преимущества последней версии:

Повышение производительности

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

Векторная печать

Улучшена модель печати путем добавления драйверов PostScript. В результате печать выполняется быстрее и требует меньше памяти.

Аппаратное ускорение трехмерной графики

Silverlight предоставляет приложению часть инфраструктуры Microsoft XNA для создания игр XBox. Добавлен мощный низкоуровневый интерфейс отображения трехмерных сцен. Важнее всего то, что все вычисления выполняются аппаратно, обеспечивая существенное повышение производительности. Также можно отметить уменьшение задержки звука путем поддержки средств Microsoft XNA при воспроизведении аудиофайлов. Это особенно полезно в видеоиграх, в которых задержка недопустима.

Гибкое воспроизведение

Воспроизводить видеоклип теперь можно быстрее или медленнее без изменения тональности звукового сопровождения. Это позволяет просматривать содержимое (например, видеоурок) с выбранной скоростью.

Просмотр сводных таблиц

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

Отладка XAML

Теперь можно устранять ошибки связывания данных путем установки точек прерывания в выражениях связывания.

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

Приложения Silverlight, выполняющиеся вне браузера, теперь могут отображать дополнительные окна, как настольные приложения Windows. Для этого даже не нужны расширенные права доступа.

Поддержка доступа к файлам и вызовам P/Invoke

Приложения, выполняющиеся с расширенными правами доступа, могут обращаться к любым файлам на жестком диске, к которым пользователь имеет доступ (за исключением требующих привилегий администратора). На компьютере Windows можно применять вызовы P/Invoke для обращения к унаследованным функциям языка С из библиотек Windows API.

Обратная совместимость Silverlight 5

Может ли существующее приложение Silverlight, разработанное в предыдущей версии, выполняться на компьютере, на котором установлена надстройка Silverlight 5? Это не такой уж простой вопрос, как может показаться на первый взгляд, потому что в Silverlight 5 внесены некоторые тонкие изменения и устранен ряд ошибок, что может повлиять на работу приложения и даже изменить его поведение.

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

Более подробную информацию о тонких различиях между Silverlight 5 и Silverlight 4 можно найти в статье Ensuring That Your Silverlight Applications Work with Silverlight 5 на сайте MSDN.

Пройди тесты
Лучший чат для C# программистов