Опубликован: 01.03.2010 | Уровень: специалист | Доступ: платный
Лекция 2:

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

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: Использование Silverlight на различных операционных системах, с различными браузерами, на различных аппаратных платформах (Windows Vista/XP, Windows Mobile, Linux, Internet Explorer, Firefox, x86, Pocket PC и т.д.).

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

Таблица 1 . Совместимость 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 - Запланирована -
Таблица 2 . Совместимость 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. Асинхронная коммуникация, отсутствие соединения с веб-сервисом

В "Работа вне браузера и с web-сервисами" "Работа Silverlight с базами данных" представлен еще один пример асинхронных вызовов.

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Ляйсан Рустамханова
Ляйсан Рустамханова
Россия, Башкирский Государственный университет, 2006
Елена Лях
Елена Лях
Россия, Ярославль, ЯГПУ, 2009