| Россия |
Кросс платформенность
В следующей таблице отражена совместимость 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 изначально предназначено для работы через веб соединение. Через веб соединение происходит обращение к данным, файлам, картинкам, веб-сервисам и т.д. Веб соединение может быть очень медленным. И если не предпринять специальных шагов, то каждый раз при нажатии кнопки, будет замедление и "торможение" работы элементов управления и всего приложения.
Вот пример как это сделать при обращении к ленте новостей агентства Рейтер:
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.2.
В "Работа вне браузера и с web-сервисами" "Работа Silverlight с базами данных" представлен еще один пример асинхронных вызовов.

