Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Silverlight 2

Покупка
Артикул: 131144.02.99
Доступ онлайн
399 ₽
В корзину
Silverlight — новая революционная технология разработки пользовательских веб-интерфейсов, созданная корпорацией Майкрософт на основе Windows Presentation Foundation (WPF). В приложениях Silverlight используется язык разметки XAML при поддержке таких инструментов, как Expression Design и Expression Blend. Это дает возможность реализовывать поразительные эффекты (градиенты, композиции, анимации). Помимо богатого набора элементов управления, Silverlight 2 позволяет использовать не только язык JavaScript, но также C# и VB. Silverlight предоставляет вам всю мощь .NET на различных платформах (Internet Eхplorer и Firefox для Windows, Firefox и Safari для Macintosh и Firefox для Linux). Автор на многочисленных примерах помогает очень быстро овладеть основами этой современной технологии.
Буньон, Л. Silverlight 2 : практическое руководство / Л. Буньон ; пер. с англ. А. А. Слинкина. — 2-е изд. - Москва : ДМК Пресс, 2023. - 529 с. - ISBN 978-5-89818-474-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/2106244 (дата обращения: 04.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Лоран Буньон

SILVERLIGHT 2
Laurent Bugnion

SILVERLIGHT 2

UNLEASHED
Лоран Буньон

SILVERLIGHT 2

Москва, 2023

Перевод с английского Слинкина А. А.

2-е издание, электронное
УДК 004.4
ББК 32.973.26-018.2
Б91

Б91
Буньон, Лоран.
Silverlight 2 / Л. Буньон ; пер. с англ. А. А. Слинкина. — 2-е изд., эл. — 1 файл 
pdf : 529 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader 
XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-474-2
Silverlight — новая революционная технология разработки пользовательских веб-интерфейсов, 
созданная корпорацией Майкрософт на основе Windows Presentation 
Foundation (WPF). В приложениях Silverlight используется язык разметки XAML при 
поддержке таких инструментов, как Expression Design и Expression Blend. Это дает возможность 
реализовывать поразительные эффекты (градиенты, композиции, анимации). 
Помимо богатого набора элементов управления, Silverlight 2 позволяет использовать не 
только язык JavaScript, но также C# и VB.
Silverlight предоставляет вам всю мощь .NET на различных платформах (Internet 
Eхplorer и Firefox для Windows, Firefox и Safari для Macintosh и Firefox для Linux). Автор 
на многочисленных примерах помогает очень быстро овладеть основами этой современной 
технологии.

УДК 004.4 
ББК 32.973.26-018.2

Электронное издание на основе печатного издания: Silverlight 2 / Л. Буньон ; пер. с англ. А. А. Слин-
кина. — Москва : ДМК Пресс, 2009. — 528 с. — ISBN 978-5-94074-550-1. — Текст : непосредственный.

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

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты 
авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-474-2
©  Перевод на русский язык, оформление, 
издание, ДМК Пресс, 2009
Содержание

Предисловие .......................................................................................... 19

Об авторе .................................................................................................. 20

Посвящение ............................................................................................ 21

Благодарности ....................................................................................... 22
В помощь читателям .................................................................................. 23

Введение .................................................................................................. 24
О примерах кода ........................................................................................ 25
Старше на год ............................................................................................ 25

Глава 1. Введение в Silverlight ........................................................ 26
Истоки технологии Silverlight ...................................................................... 27
Автоматизация вебстраниц с помощью языка JavaScript..................... 27
Каскадные таблицы стилей ................................................................... 28
Переход к DHTML .................................................................................. 29
AJAX – более развитый способ коммуникации ...................................... 29
Использование сторонних надстроек ........................................................ 30
Javaапплеты ........................................................................................ 30
Элементы управления ActiveX ............................................................... 31
Flashприложения ................................................................................. 31
Работа на разных платформах ................................................................... 32
Вебприложения и безопасность ............................................................... 33
Знакомство с Silverlight.net ........................................................................ 34
Что необходимо для запуска Silverlight? ..................................................... 34
Автоматическое обновление среды исполнения ........................................ 35
Познакомимся с демонстрационными приложениями Silverlight ............... 36
Поиграем в шахматы против Silverlight .................................................. 36
Планирование путешествия с помощью приложения Airline .................. 37
Панорамирование хардроккафе......................................................... 38
Где найти дополнительные демонстрации ............................................ 39
Что необходимо для разработки приложений Silverlight? ........................... 39
Expression Studio ................................................................................... 40
Visual Studio 2008 .................................................................................. 40
Содержание
Содержание
Содержание
Содержание
Содержание

Чтение документации ................................................................................ 41
Просмотр онлайновой документации.................................................... 41
Поиск дополнительной документации................................................... 41
Учебные пособия .................................................................................. 42
Заглянем в будущее Silverlight ................................................................... 42
Считать ли ASP.NET/HTML/JavaScript покойниками? ............................. 43
Резюме ...................................................................................................... 43

Глава 2. Знакомство с XAML ............................................................ 44
Использование XML для представления данных ........................................ 44
XML и пользовательские интерфейсы ........................................................ 45
Пространства имен в XML .......................................................................... 46
Определение дополнительных пространств имен ..................................... 47
Создание элемента Canvas с дочерними элементами ............................... 48
Присоединенные свойства: Canvas.Left и Canvas.Top ................................ 49
Документирование разметки с помощью XMLкомментариев ................... 49
Тестирование XAMLразметки ................................................................... 50
Использование SilverlightPad ................................................................ 50
Использование KaXaml ......................................................................... 51
Задание свойств в XAML ............................................................................ 52
Изменение кисти ....................................................................................... 54
Описание сцен в XAML ............................................................................... 55
Меньше вводить, экономить место ............................................................ 57
Резюме ...................................................................................................... 57

Глава 3. Трансформации и анимации в XAML ......................... 59
Трансформация визуальных элементов ..................................................... 59
Типы трансформаций................................................................................. 61
Трансформация RotateTransform ........................................................... 61
Трансформация TranslateTransform ....................................................... 61
Трансформация ScaleTransform ............................................................ 62
Трансформация SkewTransform............................................................. 63
Трансформация MatrixTransform ........................................................... 64
Композиция трансформаций ..................................................................... 65
Создание простой анимации ..................................................................... 66
Составные элементы анимации ................................................................. 68
Добавление анимации масштабированием ............................................... 69
Использование других типов анимаций ..................................................... 70
Навигация по пути к свойству................................................................ 71
Развертывание сцены на вебстранице ..................................................... 72
Резюме ...................................................................................................... 72

Глава 4. Самовыражение с помощью Expression Blend ..... 73
Коротко об Expression Studio ...................................................................... 73
Установка Expression Blend ........................................................................ 73
Содержание
Содержание
Содержание
Содержание
Содержание

Запуск Expression Blend ............................................................................. 74
Опции настройки ....................................................................................... 74
Создание нового проекта .......................................................................... 76
Панели ....................................................................................................... 76
Знакомство с файлами .............................................................................. 77
Исполнение в веббраузере....................................................................... 78
Работа с формами ..................................................................................... 79
Панель свойств .......................................................................................... 80
Элемент Color Picker .................................................................................. 80
Создание кисти LinearGradienBrush ...................................................... 81
Изменение вектора градиента .............................................................. 82
Создание радиальноградиентной кисти .............................................. 82
Создание эффекта трехмерной границы с помощью
радиальноградиентной кисти ................................................................... 83
Восстановление подразумеваемых по умолчанию значений свойств ........ 83
Составление иерархии элементов ............................................................. 84
Резюме ...................................................................................................... 85

Глава 5. Мультимедиа ........................................................................ 86
Смешивание цветов................................................................................... 86
Почему FF? ............................................................................................ 87
Канал прозрачности................................................................................... 88
Свойство Opacity ....................................................................................... 89
Векторная графика .................................................................................... 90
Добавление на сцену мультимедийных элементов .................................... 91
Создание макета приложения ............................................................... 92
Добавление картинок............................................................................ 93
Добавление видео ................................................................................ 94
Тестирование результата в браузере .................................................... 95
Уточнение макета.................................................................................. 95
Добавление еще одной картинки .......................................................... 97
Управление звуком и видео ....................................................................... 97
Отключение автоматического воспроизведения................................... 97
Зацикливание ....................................................................................... 98
Приостановка и возобновление видео .................................................. 99
Изменение формы курсора ................................................................. 100
Другие свойства ...................................................................................... 100
Заполнение пространства .................................................................. 100
Как сделать изображение незаметным при перемещении мыши ........ 101
Использование мультимедийных элементов для вывода ......................... 101
Вывод с помощью видео ..................................................................... 101
Применение невидимого видеоролика для рисования текста ............. 102
Вывод с помощью изображений ......................................................... 102
Трансформации мультимедийных элементов .......................................... 103
Использование мультимедийных элементов из веб ................................. 103
Резюме .................................................................................................... 105
Содержание
Содержание
Содержание
Содержание
Содержание

Глава 6. Еще об Expression Blend ................................................ 106
Создание трансформаций ....................................................................... 106
Создание маски прозрачности OpacityMask ............................................ 107
Контуры ................................................................................................... 108
Создание контура с нуля ..................................................................... 108
Использование сплайнов для модификации контура .......................... 109
Комбинирование форм ....................................................................... 109
Обтравочные контуры .............................................................................. 110
Контуры в XAML ................................................................................... 111
Группировка элементов управления ........................................................ 112
Группировка элементов ...................................................................... 112
Другие панели..................................................................................... 113
Прокрутка миниатюр ........................................................................... 113
Пользовательские элементы управления ................................................ 114
Создание пользовательского элемента управления ........................... 115
Применение пользовательского элемента управления....................... 116
Продолжаем работу над галереей миниатюр ........................................... 117
Добавление фрейма отображения ...................................................... 117
Добавление отражений под миниатюрами ......................................... 118
Отражение видео ................................................................................ 120
И последнее ........................................................................................ 120
Резюме .................................................................................................... 120

Глава 7. Развертывание на вебстранице .............................. 121
Создание тестовой страницы .................................................................. 121
Тег object.................................................................................................. 122
Атрибуты ............................................................................................. 122
Параметры .......................................................................................... 123
Модификация атрибутов и параметров .............................................. 124
Развертывание с помощью JavaScript ................................................. 128
Определение версии Silverlight ................................................................ 128
Интеграция Silverlight в существующую вебстраницу ............................. 128
Изучение оригинального кода ............................................................. 129
Получение XAPфайла ......................................................................... 130
Модификация разметки ...................................................................... 130
Тестирование результата .................................................................... 131
Ссылка на XAPфайл на другом вебсервере ...................................... 132
Получение места на вебсервере............................................................. 132
Требования к вебсерверу .................................................................. 133
Поиск провайдера............................................................................... 134
Знакомство с FTP ..................................................................................... 134
Настройка FTPклиента ....................................................................... 135
Соединение с сервером ...................................................................... 136
Копирование приложения Silverlight ........................................................ 137
Тестирование результата .................................................................... 139
Резюме .................................................................................................... 139
Содержание
Содержание
Содержание
Содержание
Содержание

Глава 8. Программирование Silverlight с помощью
JavaScript ............................................................................................... 140
Основы языка .......................................................................................... 140
Комментарии ...................................................................................... 141
Точка с запятой ................................................................................... 141
Чувствительность к регистру .............................................................. 141
Переменные ........................................................................................ 142
Функции .............................................................................................. 142
Прототипы, this, new............................................................................ 142
Типы .................................................................................................... 143
Встроенные объекты и библиотеки ..................................................... 143
Функция alert....................................................................................... 144
Значение undefined ............................................................................. 144
Значение null ....................................................................................... 145
Обработка событий ............................................................................. 146
Знакомство с концепцией объектов ......................................................... 147
Взаимодействие с другими экземплярами ......................................... 147
Глобальный объект ................................................................................... 148
Литеральная нотация JSON ..................................................................... 149
Создание объектов с помощью JSON ................................................. 149
Статические члены .................................................................................. 150
Загрузка сценариев на вебстраницу ...................................................... 151
Что такое контекст? ................................................................................. 152
Интеграция Silverlight в существующую вебстраницу с помощью
JavaScript ................................................................................................. 153
Где найти файл Silverlight.js ................................................................. 154
Использование файла Silverlight.js ...................................................... 154
Определение версии Silverlight ........................................................... 158
Определение наличия JavaScript ........................................................ 158
Модификация вебстраницы во время выполнения ............................ 159
Отладка ................................................................................................... 159
Резюме .................................................................................................... 159

Глава 9. Основы .NET ........................................................................ 161
История .NET ........................................................................................... 161
Версии, версии, версии… ................................................................... 161
Управляемый и неуправляемый код .................................................... 163
Загрузка и установка Visual Studio 2008 ................................................... 163
Создание приложения Silverlight 2 в Visual Studio 2008 ............................. 164
Сборка и запуск приложения .............................................................. 165
Ошибки компиляции ........................................................................... 165
Знакомство с файлами ....................................................................... 166
Запуск (пустого) приложения .............................................................. 168
Intellisense ................................................................................................ 169
Программирование на C#, основные конструкции .................................. 170
10
10
10
10
Содержание
Содержание
Содержание
Содержание
Содержание

Типы .................................................................................................... 171
Целые типы ......................................................................................... 171
Типы с плавающей точкой ................................................................... 171
Прочие типы........................................................................................ 172
Преобразование типов ....................................................................... 172
Предложение if then else ..................................................................... 173
Цикл for ............................................................................................... 174
Цикл foreach ........................................................................................ 175
Цикл while............................................................................................ 175
Цикл do… while .................................................................................... 176
Предложение switch…case .................................................................. 177
Операторы .......................................................................................... 178
Резюме .................................................................................................... 180

Глава 10. Продолжаем изучение .NET...................................... 181
Программирование на C# с объектами .................................................... 181
Разбиение задачи на меньшие подзадачи .......................................... 181
Пространства имен и директива using ................................................ 182
Добавление директивы using .............................................................. 182
Видимость .......................................................................................... 183
Свойства ............................................................................................. 183
Наследование ..................................................................................... 185
Добавление интерактивности в приложение Thumbnails.......................... 186
Добавление обработчиков событий .................................................... 186
Отображение увеличенного мультимедийного элемента .................... 187
Перегрузка методов ................................................................................ 190
Возбуждение событий и использование делегатов.................................. 191
Создание объекта EventArgs ............................................................... 192
Объявление события........................................................................... 192
Подписка на событие .......................................................................... 194
Сохранение данных на стороне клиента .................................................. 194
Ограничения безопасности, налагаемые на изолированное хранилище .. 194
Создание объектов ............................................................................. 195
Чтение из изолированного хранилища ................................................ 198
Запись в изолированное хранилище ................................................... 199
Обновление пользовательского интерфейса ...................................... 199
Совместимость с разными браузерами .............................................. 200
Резюме .................................................................................................... 201

Глава 11. И снова анимация .......................................................... 202
Анимирование элементов в Blend ............................................................ 202
Тестирование приложения .................................................................. 204
Изменение свойств анимации ............................................................ 205
Изменение темпа анимации ............................................................... 206
Синхронизация анимаций ........................................................................ 206
11
11
11
11
Содержание
Содержание
Содержание
Содержание
Содержание

Об элементах анимации ...................................................................... 207
Обращение раскадровки ......................................................................... 208
Анимация PointAnimation .......................................................................... 208
Запуск и останов анимации ..................................................................... 210
Продолжаем работу над галереей миниатюр ........................................... 211
Составляем план ................................................................................. 211
Готовим подмостки ............................................................................. 212
Изготавливаем заготовку анимации ................................................... 213
Изменение темпа анимации параллельным переносом ...................... 214
Запуск анимации из программы ......................................................... 215
Программное создание анимации «затухания» ................................... 219
Резюме .................................................................................................... 221

Глава 12. Кодирование видео в Expression Encoder .......... 222
Прежде чем начать… ............................................................................... 222
Введение в Expression Encoder ................................................................ 222
Параметры............................................................................................... 223
Назначение различных панелей ............................................................... 224
Импорт видео .......................................................................................... 224
Сохранение изменений............................................................................ 226
Задание типа выходных данных ............................................................... 226
Изменение размера и пропорций видео ............................................. 227
Дополнительная обработка и параметры кодека ................................ 229
Добавление заголовка и хвостовика ................................................... 229
Тестирование перед началом кодирования ............................................. 230
Задание метаданных ............................................................................... 231
Добавление собственных метаданных ................................................ 232
Создание глав ..................................................................................... 232
Создание надписей............................................................................. 233
Кодирование видео для Silverlight ............................................................ 234
Проверка результата ............................................................................... 235
Полноэкранное воспроизведение видео............................................. 236
Дополнительные параметры .................................................................... 236
Резюме .................................................................................................... 237

Глава 13. Еще о видео ...................................................................... 238
Почему именно потоковое видео? ........................................................... 238
Публикация на собственном сайте .......................................................... 239
Копирование файлов .......................................................................... 239
Наложение изображения ......................................................................... 240
Добавление картинки или видео ......................................................... 240
Задание дополнительных свойств ...................................................... 241
Наложение XAMLразметки ................................................................. 242
Выбор плеера пользователем .................................................................. 243
Копирование файлов .......................................................................... 243
12
12
12
12
Содержание
Содержание
Содержание
Содержание
Содержание

Модификация файлов ......................................................................... 244
Создание видео .................................................................................. 246
Как это работает? ............................................................................... 247
Публикация на потоковых серверах Microsoft Silverlight ........................... 248
Регистрация........................................................................................ 248
Установка и конфигурирование надстройки, публикация ................... 249
Тестирование результата .................................................................... 249
Включение приложения в существующую вебстраницу .......................... 250
Использование iframe ......................................................................... 251
Использование JavaScript и Live Control .............................................. 251
Запуск команд сценария .......................................................................... 251
Модификация шаблона плеера в Blend .................................................... 254
Добавление кнопки Full Screen ............................................................ 254
Обработка события в сценарии........................................................... 255
Тестирование результата .................................................................... 256
Резюме .................................................................................................... 256

Глава 14. Взаимодействие .NET и JavaScript ....................... 257
Доступ к .NET из JavaScript ...................................................................... 257
Атрибут ScriptableMember ................................................................... 257
Регистрация объекта .......................................................................... 258
Обработка событий .NET в JavaScript....................................................... 258
Подготовка класса, доступного из сценария ....................................... 258
Возбуждение события ......................................................................... 260
Подписка на событие в JavaScriptсценарии ....................................... 260
Тестирование программы ................................................................... 262
Вызов JavaScriptметодов из .NET ........................................................... 262
Вызов методов .NET из JavaScript ............................................................ 264
Добавление диалога регистрации в приложение Thumbnails ................... 264
Развитие класса User .......................................................................... 264
Дополнительные свойства .................................................................. 265
Учет нескольких пользователей .......................................................... 268
Модификация класса Page.................................................................. 271
Добавление ссылки Login .................................................................... 273
Добавление вебпроекта .................................................................... 274
Проверка мультимедийных файлов во время сборки .......................... 275
Добавление HTMLдиалога регистрации ............................................ 276
Комбинирование приложения Silverlight с HTML ................................. 277
Перехват событий .NET ....................................................................... 277
Связывание сценариев ....................................................................... 279
Обработка HTMLсобытий................................................................... 280
Резюме .................................................................................................... 280

Глава 15. Элементы управления в Silverlight ........................ 281
Знакомство с иерархией классов............................................................. 281
Класс Object ........................................................................................ 282
13
13
13
13
Содержание
Содержание
Содержание
Содержание
Содержание

Класс DependencyObject ..................................................................... 282
Класс DependencyProperty .................................................................. 282
Класс UIElement .................................................................................. 282
Класс FrameworkElement ..................................................................... 283
 XAML или застраничный код? .................................................................. 283
Верстка с помощью панелей .................................................................... 285
Композиция элементов ....................................................................... 286
Панель Canvas ..................................................................................... 286
Буксировка элемента по холсту .......................................................... 287
Рядное расположение элементов на панели StackPanel ..................... 289
Использование StackPanel для потоковой верстки ............................. 290
Использование панели Grid для выравнивания элементов ................. 290
Задание минимального и максимального размеров ........................... 292
Добавление элементов в сетку ........................................................... 293
Добавление элементов в застраничном коде...................................... 294
Прокрутка и обрамление ......................................................................... 294
Использование ScrollViewer для прокрутки больших областей ............ 294
Обрамление элемента ........................................................................ 296
Всплывающие элементы .......................................................................... 297
Рисование форм ...................................................................................... 298
Свойство Data ..................................................................................... 298
Резюме .................................................................................................... 300

Глава 16. Еще об элементах Silverlight .................................... 301
Класс Control ............................................................................................ 301
Активация и деактивация элементов управления ............................... 302
Применение стилей и шаблонов ......................................................... 302
О шрифтах .......................................................................................... 302
Основные элементы управления.............................................................. 303
Ввод и вывод текста ............................................................................ 303
Класс ButtonBase ................................................................................ 304
Прокрутка и буксировка ...................................................................... 306
Представление мультимедиа .............................................................. 309
Выбор даты с помощью элементов Calendar и DatePicker ........................ 310
Элемент Calendar ................................................................................ 310
Элемент DatePicker ............................................................................. 311
Обработка ошибок .............................................................................. 312
Рукописный ввод ..................................................................................... 312
Разработка простого приложения для рисования .................................... 313
Подготовка сцены ............................................................................... 313
Обработка событий ............................................................................. 315
Запуск приложения ............................................................................. 319
Представление данных с помощью элементов ItemsControl..................... 319
Элемент TabControl ............................................................................. 320
Подробное рассматривание изображений .............................................. 321
14
14
14
14
Содержание
Содержание
Содержание
Содержание
Содержание

Как это работает? ............................................................................... 321
Создание пирамиды изображений для DeepZoom .............................. 321
Элемент управления MultiScaleImage ................................................. 323
Резюме .................................................................................................... 324

Глава 17. Ресурсы, стили и шаблоны ....................................... 325
Сохранение объектов в наборах .............................................................. 325
Реализация интерфейсов ................................................................... 326
Использование словарей ресурсов в Silverlight ........................................ 327
Хранение ресурсов ............................................................................. 327
Использование ресурсов в застраничном коде ................................... 328
А зачем такие сложности? ................................................................... 328
Использование ресурсов в XAML ........................................................ 328
Хранение ресурсов в файле App.xaml ................................................. 330
Стилизация элемента управления ........................................................... 331
Создание объекта Style ....................................................................... 331
Использование объекта Style .............................................................. 331
Приоритеты установщиков свойств .................................................... 332
Создание стилей в Blend ..................................................................... 333
Редактирование стиля в Blend ............................................................ 334
Стилизация приложения Thumbnails ........................................................ 334
Стилизация текстовых блоков ............................................................. 334
Стилизация миниатюр ........................................................................ 335
Перемещение ресурсов в Blend .......................................................... 336
Внедрение шрифтов в приложение.......................................................... 337
Внедрение шрифта в Blend ................................................................. 337
Внедрение шрифта в Visual Studio ....................................................... 338
Шаблоны.................................................................................................. 339
Но ведь мы видим элемент управления! ............................................. 339
Редактирование шаблона ................................................................... 340
Модификация состояний .................................................................... 341
Привязка шаблона к элементу управления ......................................... 342
Представление содержимого ............................................................. 343
Резюме .................................................................................................... 344

Глава 18. Привязка к данным и элементы,
допускающие связывание ............................................................. 345
Что такое привязка к данным? ................................................................. 345
Создание объекта данных ................................................................... 345
Создание объекта данных в ресурсах ................................................. 347
Запись в объект данных с помощью механизма привязки ................... 347
Получение уведомлений, поиск ошибок связывания........................... 348
Конвертация значений при связывании .............................................. 349
Более тесное знакомство с классом Binding ............................................ 350
Задание контекста данных ....................................................................... 351
15
15
15
15
Содержание
Содержание
Содержание
Содержание
Содержание

Использование элементов управления, допускающих связывание ......... 352
Элемент управления ListBox ............................................................... 353
Элемент DataGrid ................................................................................ 360
Использование источников XMLданных .................................................. 366
Резюме .................................................................................................... 366

Глава 19. Создание пользовательских
и нестандартных элементов управления ............................... 367
Создание элемента управления для просмотра миниатюр ...................... 367
Создание объектов данных ................................................................. 368
Элемент ThumbnailsViewerControl ....................................................... 371
Общение с внешним миром ................................................................ 372
Создание объектов и проектирование шаблона данных .......................... 375
Создание экземпляра класса Media в виде XAML ................................ 375
Проектирование шаблона данных ....................................................... 378
Удаление тестового источника данных ................................................ 379
Перемещение мультимедийных файлов ............................................. 379
Подключение ThumbnailsViewer к реальным данным ........................... 381
Возбуждение и обработка события SelectionChanged ......................... 381
Создание нестандартного элемента управления MediaInfoDisplay .......... 383
Вырабатываем план ............................................................................ 383
Создание «оболочки» .......................................................................... 384
Обработка состояний .......................................................................... 387
Обработка частей ............................................................................... 388
Применение шаблона ......................................................................... 390
Резюме .................................................................................................... 391

Глава 20. Еще один шаг вглубь Silverlight 2 ............................ 392
Создание шаблона по умолчанию для элемента управления
MediaInfoDisplay ....................................................................................... 392
Использование элемента управления MediaInfoDisplay ........................... 394
Добавление тестовых данных ............................................................. 394
Помещение элемента управления на сцену ........................................ 394
Создание шаблона .............................................................................. 395
Создание переходов ........................................................................... 396
Удаление тестовых данных .................................................................. 397
Связывание элементов между собой .................................................. 397
Копнем глубже .................................................................................... 398
Прокрутка объектов ................................................................................. 399
Создание нового шаблона для RepeatButton............................................ 401
Создание шаблона .............................................................................. 401
Изменение переходов ......................................................................... 402
Привязка шаблона .............................................................................. 403
Тестирование новой кнопки ................................................................ 403
Стилизация кнопки RepeatButton ........................................................ 403
16
16
16
16
Содержание
Содержание
Содержание
Содержание
Содержание

Стилизация второй кнопки .................................................................. 404
Перенос классов во внешнюю сборку и рефакторинг .............................. 405
Создание библиотеки классов Silverlight ............................................. 405
Использование внешней библиотеки классов..................................... 408
Несколько слов об объекте Application ..................................................... 410
Универсальные типы ................................................................................ 411
Резюме .................................................................................................... 412

Глава 21. Дальше по пути Silverlight 2 ...................................... 413
Регистрация нескольких обработчиков событий в JavaScript ................... 413
Поиск элементов Silverlight из JavaScriptкода ......................................... 414
Доступ к HTMLстранице из .NET ............................................................. 416
Обмен данными между .NET и JavaScript ................................................. 418
Попытка преобразования.................................................................... 418
Обмен данными в стандартных форматах ........................................... 420
Преобразование в тип ScriptObject ..................................................... 421
Передача параметров инициализации .................................................... 424
Задание параметров инициализации ................................................. 424
Получение параметров инициализации .............................................. 425
Присоединение .NETобработчиков к событиям HTMLэлементов .......... 426
Использование класса HtmlEventArgs ................................................. 427
Публикация непосредственно из Visual Studio ......................................... 428
Отладка приложения Silverlight ................................................................ 429
Сравнение отладочной и выпускной версий........................................ 429
Создание выпускной версии ............................................................... 429
Пошаговое выполнение программы .................................................... 430
Инспекция и модификация переменных ............................................. 432
Отладка в контексте проекта вебсайта .............................................. 433
Отладка JavaScript .............................................................................. 434
Отладка уже запущенных приложений ................................................ 434
Отладка приложений Silverlight на компьютере Macintosh ................... 435
Резюме .................................................................................................... 436

Глава 22. Соединение с веб ........................................................... 437
Создание и загрузка XMLфайла .............................................................. 437
Вынесение информации о мультимедийных файлах из приложения ... 437
Отображение и сокрытие заставки ..................................................... 438
Загрузка XMLфайла с информацией о мультимедийных файлах ....... 439
Отправка запроса ............................................................................... 440
Получение ответа ................................................................................ 441
Чтение XMLфайла с помощью технологии LINQ ................................. 442
Разбор перечислений ......................................................................... 445
Отправка запроса ............................................................................... 445
Обработка результатов ....................................................................... 446
Тестирование приложения .................................................................. 448
17
17
17
17
Содержание
Содержание
Содержание
Содержание
Содержание

Загрузка zipфайла и индикация хода загрузки ....................................... 448
Создание zipфайла ............................................................................ 448
Расширение класса MediaEx для хранения потока .............................. 449
Загрузка zipфайла ............................................................................. 449
Чтение файлов из архива .................................................................... 451
Обновление пользовательского интерфейса ...................................... 453
Отправка запросов WCFслужбам ............................................................ 455
Перемещение классов User и DataFile на сервер ................................ 455
Адаптация класса DataFile к работе на сервере .................................. 456
Создание WCFслужбы ........................................................................ 457
Реализация службы............................................................................. 458
Модификация клиентского приложения.............................................. 460
Еще о сетевых взаимодействиях.............................................................. 463
Резюме .................................................................................................... 463

Глава 23. Междоменные запросы
и обработка исключений ................................................................ 464
Междоменные запросы ........................................................................... 464
Использование файла междоменной политики Flash .......................... 465
Использование файла междоменной политики Silverlight ................... 465
Ограничения ....................................................................................... 466
Взаимодействие со сторонними службами.............................................. 468
Принятие условий обслуживания Flickr ............................................... 468
Получение ключа для работы с Flickr API ............................................. 468
Подготовка и отправка запроса .......................................................... 469
Обработка ответа................................................................................ 472
Модификация пользовательского интерфейса ................................... 478
Отправка POSTзапросов ........................................................................ 479
Возбуждение и перехват исключений ...................................................... 480
Распространение исключений ............................................................ 481
Свойства класса Exception .................................................................. 483
Перехват необработанных исключений ............................................... 484
Создание собственных типов исключений .......................................... 485
Обработка ошибок Silverlight в JavaScript ............................................ 486
Резюме .................................................................................................... 487

Глава 24. Silverlight: путешествие продолжается .............. 488
Обновление ссылки на службу ................................................................. 488
Принудительное завершение процесса ................................................... 489
Принудительное завершение процесса в отладочном режиме ........... 490
О защите своей интеллектуальной собственности .................................. 491
Защитить любой ценой ....................................................................... 491
Привязка в особых ситуациях .................................................................. 491
Задание привязки в Blend ................................................................... 492
Обработка ошибок контроля ............................................................... 493
18
18
18
18
Содержание
Содержание
Содержание
Содержание
Содержание

Привязка и свойства Converter, ConverterParameter, ConverterCulture.... 494
Привязка к объекту, а не к свойству .................................................... 495
Использование ASP.NETэлементов управления Silverlight и MediaPlayer .. 496
ASP.NETэлемент Silverlight ................................................................. 497
ASP.NETэлемент MediaPlayer ............................................................. 498
Создание автономных тестов для Silverlight ............................................. 500
Установка каркаса автономного тестирования для Silverlight .............. 501
Создание нового тестового приложения Silverlight ............................. 501
Создание метода расширения TryFindResource .................................. 503
Написание правильного класса .......................................................... 504
Реализация рекурсии.......................................................................... 505
Еще об автономных тестах .................................................................. 507
Повторное использование автономных тестов Майкрософт ............... 507
Изготовление и покупка XAMLресурсов .................................................. 508
Использование Expression Design ....................................................... 508
Поиск XAMLресурсов в Сети .............................................................. 509
Конвертация других форматов в XAML ................................................ 510
Сторонние элементы управления и библиотеки ...................................... 511
Блоги, посвященные Silverlight ................................................................. 511
Резюме .................................................................................................... 512

Алфавитный указатель .................................................................... 513
Предисловие

В мире разработки программного обеспечения наблюдаются две несомненные
тенденции. Вопервых, стремление к развертыванию приложений через веб. Веб
стремительно превращается в зрелую платформу для распространения приложений, причем такой стиль оказывается подходящим решением для многих типов
приложений. Вовторых, это движение в сторону более богатой функциональности приложений. Все большее значение приобретает удобство работы пользователя; привлекать новых и удерживать старых пользователей становится все труднее, поэтому даже небольшой выигрыш в удобстве оказывается существенным.
Директора по информационным технологиям осознают, что экономия хотя бы
нескольких секунд на каждой транзакции, осуществляемой бизнесприложением,
повышает производительность труда работников, а стало быть, может принести
миллионы долларов.
Неудивительно, что Silverlight 2 учитывает эти тенденции.
Silverlight 2 – это технология разработки вебприложений. Среда исполнения
Silverlight меньше средней песенки Бритни Спирс, при этом она устанавливается
в любой браузер (Internet Explorer, Firefox, Safari и др.) и на любой платформе (Windows, Mac, Linux). Приложения для Silverlight компактны, работают быстро и никак
не сказываются на клиентском компьютере. Их не надо инсталлировать и деинсталлировать, к тому же все они исполняются в «песочнице» и потому гарантированно
не могут причинить вред машине пользователя или другим приложениям.
Пользователю работать с Silverlight 2 очень удобно. Объясняется это конвергенцией видео, векторной графики и развитой инфраструктуры разработки. Имея
под капотом Silverlight всю мощь среды CLR, программист может полнее выразить свои идеи. Языки C# и VB обеспечивают высокую продуктивность уже сегодня без изучения новых языков и инструментов разработки. А язык разметки
XAML позволяет дизайнеру воспользоваться программами семейства Expression
и другими подобными инструментами для создания интересных переходов и анимаций, придающих приложениям внешнюю привлекательность. В совокупности
же это позволяет пользователям приложений Silverlight работать с большим удобством и быстрее решать свои задачи.
В этой книге раскрываются секреты Silverlight. Лоран не просто глубоко разбирается в Silverlight, не только знает текущее положение дел и направления развития, но
и отлично знаком с проблемами, волнующими программистов при разработке реальных приложений. Изучать Silverlight по этой книге – сплошное удовольствие.
С нетерпением буду ждать приложений, которые вы напишете.

Брэд Адамс
менеджер по продуктам
корпорация Майкрософт
http://blogs.msdn.com/brada

Сентябрь 2008
Об авторе

Лоран Буньон – старший разработчик и архитектор, проживает в Швейцарии
с женой Чи Мей и двумя дочерьми – Алисой (родилась в 2001 г.) и Летицией
(2004 г.). Получив специальность инженераэлектронщика в Инженерной школе
Ивердона (Швейцария), он скоро заинтересовался программным обеспечением и
в 1999 г. защитил диплом в области разработки ПО в Инженерной школе Рапперсвиля (Швейцария).
В настоящее время его интересуют прежде всего WPF, Silverlight и другие
технологии, вошедшие в состав .NET 3.5. Последние три года он занимался их
внедрением в компании Siemens и обучением ее сотрудников. Ранее он писал
встраиваемые программы на C/C++, а потом перешел на создание программ для
настольных компьютеров на языках Java, JavaScript и, наконец, .NET (WinForms
и ASP.NET). Посвятив свыше 12 лет разработке различных программных продуктов в компании Siemens, в 1998 г. Лоран перешел на работу в компанию IdentityMine – один из лидеров в области проектирования и разработки ПО на платформах WPF и Silverlight.
В свободное от работы время Лоран также проявлял завидную активность,
разрабатывая сайты и вебприложения с использованием HTML, JavaScript, CSS,
ASP, а теперь и ASP.NET. Он привнес немало ценного в различные сообщества
разработчиков, сначала в сетевых конференциях по JavaScript, а позже в форумах
Microsoft, посвященных ASP.NET, C#, WPF и Silverlight. Он регулярно оставляет
заметки в своем блоге по адресу http://blog.galasoft.ch, публикует статьи, прототипы приложений и демонстрационные примеры, относящиеся к этим технологиям.
В 2007 г. Лоран сдал экзамен на звание «исключительно ценного профессионала» (MVP) Microsoft по ASP.NET, а в 2008 г. – по разработке клиентских приложений. Также в 2008 г. он получил звание «сертифицированного технического
специалиста Microsoft» (MCTS) по Windows Presentation Foundation.
Посвящение

Как бы я стал писать эту книгу без твоей безграничной,
терпеливой поддержки, Чи Мей? С этим очередным безумным проектом
я никогда не справился бы без твоего одобрения и помощи.
Только благодаря неиссякаемой энергии, с которой ты ограждала меня
от мелких жизненных проблем, эта книга увидела свет.
Я люблю тебя.

Посвящается Алисе и Летиции, моим двум принцессам.
До вашего появления на свет я воображал себя счастливым.
Но лишь теперь понимаю, как многого мне не хватало.
Я очень люблю вас обеих.

День без танца – потерянный день.
Морис Бежар

Я не знаю, что такое красота, но знаю, что нравится лично мне,
и нахожу, что этого вполне достаточно.
Борис Виан

Поэт, вот образ твой! Ты также без усилья
Летаешь в облаках, средь молний и громов,
Но исполинские тебе мешают крылья
Внизу ходить, в толпе, средь шиканья глупцов.
Бодлер. «Альбатрос» 
(перевод П. Якубовича)
Благодарности

Написать книгу о технологии, которая еще окончательно не выпущена, было бы
невозможно без поддержки со стороны сообщества как в корпорации Майкрософт, так и вне нее. Невозможно назвать всех, кто воодушевлял меня и всячески
помогал в решении этой непростой задачи, но я все же хочу явно упомянуть и поблагодарить нескольких человек (некоторые из них – мои друзья), не расставляя
их в какомлибо значимом порядке:
Из корпорации Майкрософт: Скотт Гатри (Scott Guthrie), Ян ЭллисонТэйлор (Ian EllisonTaylor), Брэд Абрамс (Brad Abrams), Роб Релиа (Rob
Relyea), Тим Хойер (Tim Heuer), Адам Кинни (Adam Kinney), Петер Блойз
(Peter Blois), Унни Равиндранатан (Unni Ravindranathan), Джо Стегман
(Joe Stegman), Майк Харш (Mike Harsh), Карен Корби (Karen Corby), Кэти
Кэм (Kathy Kam), Коррина Барбер (Corrina Barber), Беатрис Коста
(Beatriz Costa), Джеймс Кларк (James Clarke), Джон Госсман (John Gossmann), Карстен Янушевски (Karsten Januszewski), Адам Натан (Adam
Nathan), Кристиан Шорман (Кристиан Schormann), Марк Фейнхольц
(Mark Feinholz), Тэд Ху (Ted Hu), Джефф Уилкокс (Jeff Wilcox), Джастин
Анджел (Justin Angel) и многих других из подразделения разработки – за
претворение в явь предметов моих сновидений (и за то, что они об этих
предметах написали!). Я наблюдал «обновленную Майкрософт» за работой, и мне это понравилось!
Из сообщества пользователей Silverlight и WPF: Джон Смит (John Smith),
Джонатан Русс (Jonathan Russ), Бреннон Вильямс (Brennon Williams),
Кард Шиффлет (Karl Schifflett), Марлон Греч (Marlon Grech), Коррадо
Кавалли (Corrado Cavalli), Грант Хинксон (Grant Hinkson), Натан Данлэп
(Nathat Dunlap), Джон Вагонер (Josh Wagoner), Робби Ингебретсен
(Robby Ingebretsen), Кэвин Мур (Kevin Moore), Шон Вильдермут (Shawn
Wildermuth), Дэйв Кэмпбелл (Dave Campbell), Йон Гэллоуей (Jon Galloway), Джон Папа (John Papa) и всех апостолов WPF – за то, что они научили меня всему, что я знаю (или думаю, что знаю).
Коллектив издательства Sams и в особенности Нейл Роуи (Neil Rowe),
Марка Ренфроу (Mark Renfrow), Мэнди Фрэнк (Mandie Frank) и Дженейл
Бриз (Geneail Breeze) – за проявленное терпение и поддержку начинающего автора.
Все сообщество MVP, особенно в части разработки клиентских приложений, за то, что они приветили меня и дали почувствовать, каково быть одним из них.
Всех своих друзей, в Сети и в реальной жизни, которые вынуждены были
мириться с тем, что я то работаю над книгой, то говорю о книге, то думаю
о книге – даже во сне.

Отдельное спасибо Бреннону Вильямсу, который делился со мной бесценными комментариями и советами; Дж. Бойду Нолану (J. Boyd Nolan) – за техническое рецензирование и редактирование и за перевод на VB.NET примеров, написанных на C#; Адаму Натану, который предложил план книги еще до того, как я
приступил к работе над ней; Шону Вильдермуту, который не раз вытаскивал меня
из технических ям; Петеру Блойзу за то, что он терпеливо выслушивал мои отчеты
об ошибках и предлагал решения; Тиму Хойеру и Адаму Кинни, которые дали ясно
понять, что для них Silverlight – куда больше, чем просто работа, и всем разработчикам за их постоянную заинтересованность и крайне полезные обсуждения.
Разработка ПО – это страсть. Тем, у кого я каждодневно учусь, и тем, кого я
пытаюсь учить в своем блоге, на сайте или на конференциях, – спасибо за то, что
сделали это не просто работой, а образом жизни.
Нам важно ваше мнение!

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

Электронная почта: webdev@samspublishing.com

Почтовый адрес:
Neil Rowe
Executive Editor
Sams Publishing
800 East 96th Street
Indianapolis, IN 46240 USA
В помощь читателям

Зайдите на наш сайт и зарегистрируйте свой экземпляр книги по адресу
www.informit.com/9780672330148, чтобы получить доступ к обновлениям, загружаемым материалам или перечню замеченных опечаток.
Введение

С выходом Windows Presentation Foundation (новая система разработки графических интерфейсов пользователей для персональных приложений Windows)
в 2006 г. и Silverlight в 2008 г. процесс разработки клиентских приложений изменился в лучшую сторону. Корпорация Майкрософт приняла смелое решение распрощаться с некоторыми концепциями и технологиями, которые оставались неизменными с самой первой версии Windows, и заменить их чемто более новым и
совершенным. Конечно, идти в ногу со всеми новинками, предлагаемыми разработчикам ПО, нелегко, но на этот раз стоит постараться. Майкрософт поставила
на Silverlight и WPF очень много, тут просто не может быть неудачи. Именно
в этих технологиях – будущее разработки клиентских приложений.
Silverlight реализована на многих платформах в виде надстройки над браузером. И такие надстройки скоро окажутся на большинстве клиентских компьютеров, обращающихся к Интернету, поскольку процедура их развертывания не
сложнее загрузки обычного вебконтента, а раздавать их способен любой вебсервер без какой бы то ни было дополнительной инфраструктуры. Благодаря богатству графического интерфейса и простоте обращения к удаленным службам
Silverlight станет одним из основных игроков на поле обогащенных интерактивных приложений (rich interactive applications – RIA). Кроме того,  Silverlight открывает путь к технологии разработки клиентских приложений Windows
Presentation Foundation, за которой Майкрософт видит будущее программирования для персональных компьютеров.
В Сети веб, где в настоящее время главную роль играет Adobe Flash, Silverlight
представляет не просто альтернативу. В ее основе лежит .NET! Любой программист, знакомый с .NET, воспримет Silverlight как дом родной, поскольку и библиотеки, и языки программирования (C#, VB.NET, Ruby, Python), и среда разработки
(Visual Studio, Expression Studio) те же самые. К тому же программистам для
Silverlight доступны все новые концепции, возникшие и отточенные при создании
Windows Presentation Foundation: привязка к данным, отделение поведения от
представления, элементы управления, не имеющие собственного внешнего вида,
но открытые для стилизации и применения шаблонов с помощью таких
могучих инструментов, как Expression Blend, развитая система анимации, интеграция с мульмедийным содержимым и т. д. Новый язык разметки XAML (XMLbased Application Markup Language), разработанный Майкрософт, может выступать в качестве моста между программистами и дизайнерами, что открывает
совершенно новые возможности работы над проектами.
Доступ онлайн
399 ₽
В корзину