Silverlight 2
Покупка
Тематика:
Web-технологии. Web-дизайн
Издательство:
ДМК Пресс
Автор:
Буньон Лоран
Перевод:
Слинкин Алексей Александрович
Год издания: 2023
Кол-во страниц: 529
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-474-2
Артикул: 131144.02.99
Доступ онлайн
В корзину
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). Автор на многочисленных примерах помогает очень быстро овладеть основами этой современной технологии.
- Полная коллекция по информатике и вычислительной технике
- Web-технологии. Web-дизайн
- Веб-разработка
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
- 54.03.01: Дизайн
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Лоран Буньон 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), разработанный Майкрософт, может выступать в качестве моста между программистами и дизайнерами, что открывает совершенно новые возможности работы над проектами.
Доступ онлайн
В корзину