Оглавление

advertisement
Оглавление
Благодарности ...................................................................... 16
Введение ............................................................................. 17
Для кого написана эта книга? ..................................................................................... 17
Часть I (Насущная) Перелицовка застарелой технологии Web ....... 19
Глава 1. Под защитой AJAX ..................................................................... 20
Какой Web нам нужен? .................................................................................................. 21
Все ради впечатления пользователя...................................................................... 21
Впечатление пользователя для «чайников»....................................................... 22
Впечатление пользователя для пользователей
с медленным соединением по сети................................................................... 23
Впечатление пользователя для разработчиков.................................................. 24
Пользовательский интерфейс для менеджеров................................................. 25
Основные принципы Web.......................................................................................... 26
Рождение Web................................................................................................................ 26
Принцип работы Web ................................................................................................ 27
Изначальное предназначение HTML и HTTP ................................................ 27
Парадокс Web ............................................................................................................... 28
Старый, прочный фундамент, на котором основан Web................................ 28
Фундамент заменить нельзя..................................................................................... 29
Главное преимущество AJAX ...................................................................................... 30
Чем на самом деле является AJAX?...................................................................... 31
Новая концепция веб-программирования........................................................... 31
Объект XMLHttpRequest ......................................................................................... 32
Объектная модель документов................................................................................ 33
Изменение концепции................................................................................................. 33
Модель «страницы с формами».............................................................................. 34
Модель «данные для данных».................................................................................. 34
Рефакторинг AJAX: элементы, веб-страницы и приложения...................... 36
AJAX и новые веб-проекты ........................................................................................... 37
Внедрение возможностей AJAX ............................................................................. 37
Выборочные обновления..............................................................................................38
Затраты и выгоды...........................................................................................................38
Архитектура — важный вопрос............................................................................... 39
Некоторые общие вопросы архитектуры...............................................................39
Два уровня и формат данных.....................................................................................40
Оглавление 
7
JSON как облегченная альтернатива XML......................................................... 41
Затраты и выгоды......................................................................................................... 42
RIA, «богатые» интернет-приложения.................................................................. 43
Доступность против «богатства» приложений.................................................. 43
Приложение RIA обладает более функциональным HTML........................ 44
Приложение RIA обладает более функциональным JavaScript.................. 45
Выводы ................................................................................................................................. 45
Глава 2. Легкий подход к AJAX ................................................................ 47
Инфраструктура ASP.NET AJAX ................................................................................ 48
Менеджер скриптов страницы................................................................................. 48
Элемент управления ScriptManager........................................................................49
Оптимизация частичной отрисовки страниц.......................................................50
Те же скрипты, но обработанные лучше................................................................51
Те же сценарии, но используемые глобально......................................................53
Добавление сервисных ссылок на страницы........................................................54
Определение точек истории в пределах страниц...............................................54
Библиотека Microsoft JavaScript............................................................................. 56
JavaScript с более богатой функциональностью.................................................57
Плюсы и минусы языка JavaScript .........................................................................58
Добавление объектной ориентации в JavaScript ...............................................59
Частичная отрисовка страниц ..................................................................................... 60
Элемент управления UpdatePanel.......................................................................... 60
Причины для использования частичной отрисовки страниц........................60
Беглый взгляд на синтаксис.......................................................................................61
Механизм частичной отрисовки страниц..............................................................63
Механизм частичной отрисовки страниц в серверной части........................64
Роль просмотра состояния..........................................................................................65
Плавное обновление страницы..................................................................................66
Программирование обновляемых панелей.......................................................... 67
Условные обновления....................................................................................................67
Управление программными обновлениями..........................................................69
Динамические шаблоны...............................................................................................70
Дополнительные возможности..................................................................................71
Сведение к минимуму передачи данных............................................................. 71
Золотые правила по размещению элементов управления
UpdatePanel.................................................................................................................72
Снижение размеров страниц для операции частичной отрисовки..............72
Свет и тени частичной отрисовки.......................................................................... 73
Обратная связь с пользователем...............................................................................75
Отключение визуальных элементов в процессе обновлений........................77
Проблемы с одновременными вызовами...............................................................78
Проблемы с опросами...................................................................................................79
8 Оглавление
AJAX и JavaScript-вставки ............................................................................................ 79
Удаленные методы........................................................................................................ 80
Методы страниц..............................................................................................................80
Активация страничных методов................................................................................81
Сравнение страничных методов и сервисов.........................................................83
Виджеты и эффекты.................................................................................................... 83
AJAX Control Toolkit......................................................................................................83
Библиотека jQuery ........................................................................................................86
Резюме .................................................................................................................................. 87
Глава 3. Архитектура AJAX ...................................................................... 89
Схема сервисного уровня AJAX .................................................................................. 90
Обзор архитектуры....................................................................................................... 90
HTTP-представление.....................................................................................................91
HTTP-представление и схема сервисного уровня.............................................92
Технологии HTTP-представления............................................................................94
Передача данных и формат данных.........................................................................96
Почему JSON более предпочтителен, чем XML.................................................97
HTML-уровень представления..................................................................................98
Взгляд изнутри на HTTP-представление..........................................................100
Анализ HTTP-запросов............................................................................................. 100
WCF-сервисы................................................................................................................. 101
Веб-сервисы ASP.NET................................................................................................ 106
Пользовательские сервисы....................................................................................... 109
Платформа ADO.NET Data Services.................................................................... 110
Уровень представления AJAX ...............................................................................111
Получение прокси для HTTP-представления.................................................. 111
Использование прокси............................................................................................... 112
JavaScript-шаблон «Модель-контроллер».......................................................... 114
Вопросы безопасности...............................................................................................115
HTTP-представление — это не средний уровень
вашего приложения.............................................................................................. 116
Встроенные контрмеры безопасности.................................................................. 117
Replay-атаки................................................................................................................... 118
Оградиться от посторонних..................................................................................... 118
Обеспечение доверительности HTTP-представлению.................................. 120
Шаблон AJAX Server Pages ........................................................................................ 121
Обзор архитектуры.....................................................................................................122
Классические элементы управления ASP.NET................................................. 122
Увеличение числа JavaScript-вставок на странице......................................... 123
Фоновый код и сервисный уровень..................................................................... 125
Еще одна реализация классической модели постбэков...............................125
Это тот же постбэк...................................................................................................... 125
Более интеллектуальная форма частичной отрисовки................................. 126
Библиотеки в действии.............................................................................................127
RadControls для ASP.NET AJAX от компании Telerik................................... 128
Gaia AJAX от компании Gaiaware......................................................................... 129
Резюме ............................................................................................................................... 134
Оглавление 
9
Часть II. Улучшение функциональности клиентской стороны ....... 135
Глава 4. Улучшенный и более функциональный JavaScript .................... 136
JavaScript сегодня .......................................................................................................... 137
Язык JavaScript и браузер........................................................................................137
Изначальное предназначение языка JavaScript................................................ 138
Обработчик сценариев............................................................................................... 138
Общепризнанные недостатки.................................................................................. 140
Столпы языка JavaScript..........................................................................................141
Объекты как словари.................................................................................................. 142
Функции как объекты................................................................................................ 142
Динамическая типизация.......................................................................................... 143
Замыкания и прототипы........................................................................................... 144
JavaScript будущего (если таковой будет в будущем)..................................145
Модернизация языка.................................................................................................. 146
Все дело в безопасности............................................................................................ 146
JavaScript-движок V8 от Google............................................................................. 147
Библиотека Microsoft AJAX ...................................................................................... 147
Обзор библиотеки.......................................................................................................148
Основные файлы.......................................................................................................... 148
Подключение библиотеки Microsoft AJAX........................................................ 149
Без ненужных украшательств................................................................................. 149
Расширения языка JavaScript.................................................................................150
Примитивные типы..................................................................................................... 150
Новые типы.................................................................................................................... 151
Сокращенные наименования функций................................................................ 152
Объектно-ориентированные расширения..........................................................153
Пространства имен и классы................................................................................... 154
Наследование и полиморфизм............................................................................... 155
Интерфейсы................................................................................................................... 157
Возможности платформы.........................................................................................158
Отражение...................................................................................................................... 159
Объект Application....................................................................................................... 161
Операции со строками............................................................................................... 163
Отладка............................................................................................................................ 163
Сетевой стек................................................................................................................... 164
Модель событий........................................................................................................... 166
Выводы .............................................................................................................................. 167
Глава 5. JavaScript-библиотеки . ........................................................... 169
От серверных элементов управления к JavaScript-виджетам ...................... 170
Фактор ASP.NET.........................................................................................................171
Почему ASP.NET был вехой в истории веб-разработки?............................. 171
Перемена ветра для серверных элементов управления................................ 172
Фактор JavaScript-виджетов...................................................................................173
Самые популярные библиотеки............................................................................. 174
Библиотека Dojo.......................................................................................................... 175
Библиотека ExtJS........................................................................................................ 175
10 Оглавление
Библиотека PrototypeJS............................................................................................ 175
Библиотека Script.aculo.us........................................................................................ 177
Библиотека Yahoo! UI................................................................................................ 177
Библиотеки и естественный отбор........................................................................ 179
Библиотека jQuery ........................................................................................................ 181
Быстрый взгляд на библиотеку.............................................................................181
Размер библиотеки...................................................................................................... 181
Фундаментальные особенности.............................................................................. 182
Использование библиотеки в Visual Studio 2008............................................ 183
Ядро библиотеки ............................................................................................................ 184
Функция $.....................................................................................................................184
Упакованные наборы.................................................................................................. 185
Вспомогательные методы функции $.................................................................. 186
Селекторы jQuery........................................................................................................187
CSS-селекторы.............................................................................................................. 187
CSS-селекторы в действии....................................................................................... 188
Фильтры.......................................................................................................................... 189
Фильтры элементов форм........................................................................................ 194
Работа с упакованными наборами........................................................................195
Перебор элементов в упакованном наборе........................................................ 195
Некоторые предопределенные операции............................................................ 196
Связывание методов в цепочки вызовов............................................................ 197
Утилиты jQuery............................................................................................................198
Обработка событий..................................................................................................... 198
Визуальные эффекты................................................................................................. 202
Функции для работы с AJAX.................................................................................. 205
Кэширование.................................................................................................................. 206
Подключаемые модули jQuery............................................................................... 207
Платформа jQuery UI................................................................................................. 208
Выводы .............................................................................................................................. 211
Глава 6. Шаблоны проектирования с использованием AJAX ................. 212
Шаблоны проектирования и разработка кода .................................................... 213
Основные положения шаблонов проектирования.........................................213
Применение шаблонов проектирования............................................................. 214
Истинная ценность шаблонов................................................................................. 214
Шаблоны и идиомы.................................................................................................... 215
Шаблоны, используемые при разработке AJAX‑приложений...................216
Динамическая загрузка данных.............................................................................. 216
Управление DOM-моделью страницы................................................................. 217
Пользовательские действия..................................................................................... 217
Уникальный URL-адрес............................................................................................ 218
Шаблоны JavaScript-разработки .............................................................................. 219
Шаблон «Одиночка»..................................................................................................220
Общая характеристика шаблона «Одиночка».................................................. 220
Реализация шаблона «Одиночка» с использованием
клиентской библиотеки Microsoft AJAX...................................................... 221
Оглавление 
11
Шаблон «Модель-Представление-Контроллер» ...........................................222
Основы шаблона «Модель-Представление-Контроллер»............................ 223
Шаблон «Модель-Представление-Контроллер» в JavaScript..................... 224
Шаблон загрузки по требованию в JavaScript.................................................228
Основные положения JavaScript-шаблона загрузки по требованию....... 229
Использование объекта XMLHttpRequest для загрузки
скриптов по запросу............................................................................................. 229
Использование DOM-модели для загрузки скриптов по запросу............ 230
Шаблон «Выборка с предсказанием» .................................................................... 231
Основные положения шаблона «Выборка с предсказанием»....................232
Подробности шаблона «Выборка с предсказанием»...................................... 232
Причины для использования шаблона «Выборка с предсказанием»...... 232
Открытые вопросы в шаблоне «Выборка с предсказанием»...................... 233
Пример реализации шаблона «Выборка с предсказанием»........................234
Сценарий для шаблона «Выборка с предсказанием».................................... 234
Управление удаленными вызовами...................................................................... 235
Кэширование делает приложения более быстрыми
и привлекательными............................................................................................ 239
Выводы о шаблоне «Выборка с предсказанием»............................................. 242
Шаблон «Время ожидания» ...................................................................................... 242
Основные положения шаблона времени ожидания.......................................243
Подробности шаблона времени ожидания......................................................... 243
Причины для использования шаблона времени ожидания......................... 244
Прерывание сессии браузера................................................................................... 244
Пример реализации шаблона времени ожидания..........................................245
Сценарий для шаблона времени ожидания....................................................... 245
Открытые вопросы в шаблоне времени ожидания......................................... 249
Родственные шаблоны..............................................................................................250
Шаблон «Периодическое обновление»............................................................... 250
Шаблон «Пульс».......................................................................................................... 251
Шаблон «Расписание событий»............................................................................. 251
Шаблон «Индикатор прогресса» ............................................................................. 252
Основные положения шаблона индикатора прогресса................................252
Подробности шаблона индикатора прогресса................................................... 253
Элемент UpdateProgress платформы ASP.NET................................................ 253
Открытые вопросы в шаблоне индикатора прогресса................................... 254
Пример реализации шаблона индикатора прогресса....................................255
Сценарий для шаблона индикатора прогресса................................................. 255
Проектирование серверного программного интерфейса.............................. 256
Реализация задачи....................................................................................................... 257
Реализация приемника сообщений....................................................................... 259
Реализация клиентского программного интерфейса..................................... 261
Обновление пользовательского интерфейса..................................................... 266
Отмена выполняющейся серверной задачи......................................................268
Наиболее простой способ отмены операций..................................................... 268
12 Оглавление
Проектирование серверной операции, поддерживающей
отмену выполнения.............................................................................................. 270
Прерывание операции с клиентской стороны.................................................. 274
Как насчет отката результатов?.............................................................................. 275
Другие шаблоны ............................................................................................................. 276
Шаблон «Микроссылка»..........................................................................................276
Страничные ссылки и микроссылки.................................................................... 276
Микроссылки на практике....................................................................................... 277
Микроссылки в jQuery.............................................................................................. 278
Шаблон «Междоменный прокси-объект».........................................................279
Проблема политики единого домена.................................................................... 279
Удаленные вызовы при помощи JavaScript....................................................... 280
Обработка ошибок....................................................................................................... 281
Шаблон «Регулировка отправки»........................................................................282
Шаблон «Явная отправка»....................................................................................... 282
Поэтапная отправка.................................................................................................... 283
Таймеры для имитации многопоточности.......................................................... 284
Шаблон «Интерактивная форма»......................................................................... 285
Выводы .............................................................................................................................. 286
Глава 7. Привязка данных на стороне клиента ...................................... 288
Архитектурный тур по привязке данных в платформе ASP.NET .............. 289
Проектирование HTML-шаблона.........................................................................290
Автоматическое формирование HTML-разметки........................................... 290
Формирование HTML-разметки на основе шаблонов.................................. 291
Интерфейс ITemplate.................................................................................................. 293
Сравнение шаблонного и автоматизированного подходов.......................... 296
Проектирование источника данных.....................................................................297
Допустимые источники данных в ASP.NET...................................................... 297
Свойства привязки данных...................................................................................... 298
Привязка данных в эпоху AJAX............................................................................299
Инструменты для эффективной привязки данных на стороне клиента..... 299
Не стоит сбрасывать со счетов частичную отрисовку................................... 302
Шаблон на стороне браузера .................................................................................... 303
Основные положения шаблона на стороне браузера....................................303
Подробное описание шаблона на стороне браузера....................................... 304
Что же, в сущности, такое — HTML-шаблон?................................................. 304
Смешивание данных и шаблонов.......................................................................... 305
Двусторонний шаблон............................................................................................... 306
Пример реализации шаблона на стороне браузера........................................307
Шаблон на стороне браузера: общая картина................................................... 308
Подготовка страницы................................................................................................. 308
Генератор HTML-разметки...................................................................................... 311
Настройка генерации разметки для элемента данных.................................. 317
Генерация персонализированной разметки........................................................ 319
Украшение вашего решения эффектами jQuery.............................................. 321
Оглавление 
13
Шаблон «HTML-сообщение» ................................................................................... 322
Основные положения шаблона «HTML-сообщение»...................................323
Подробное описание шаблона «HTML-сообщение»...................................... 323
Причины для использования шаблона «HTML-сообщение»..................... 324
Сравнение «шаблона на стороне браузера» и HTML-сообщения............ 326
Пример реализации шаблона «HTML-сообщение».......................................327
Шаблон «HTML-сообщение»: общая картина................................................. 327
Удаленный сервис........................................................................................................ 328
Генерация разметки..................................................................................................... 331
Расширение DynamicPopulate................................................................................. 333
Небольшой пример реализации на платформе ASP.NET MVC................. 334
Взгляд на платформу ASP.NET AJAX 4.0 ............................................................ 336
Шаблоны ASP.NET AJAX........................................................................................336
Структура шаблона..................................................................................................... 336
Компонент Sys.UI.DataView.................................................................................... 338
Внедрение дополнительной логики в шаблон.................................................. 340
Компонент Sys.Data.DataSource............................................................................. 342
Поддержка сервисов данных ADO.NET.............................................................343
Основные положения платформы ADO.NET Data Services....................... 343
Использование прокси-классов для сервисов данных ADO.NET............ 343
Отображение содержимого, возвращаемого сервисом
данных ADO.NET.................................................................................................. 344
Выводы .............................................................................................................................. 345
Глава 8. Насыщенные интернет-приложения ........................................ 346
В поисках более насыщенной Всемирной паутины ......................................... 346
Мечта о двоичном коде, запускаемым во Всемирной паутине.................347
Первая попытка — технология ActiveX.............................................................. 347
Тернии безопасности и совместимости............................................................... 348
Другая попытка — технология Flash.................................................................... 348
Подключаемые модули браузера...........................................................................349
Краткая история подключаемых модулей.......................................................... 350
Вопросы безопасности............................................................................................... 350
Тег <object>.................................................................................................................... 351
Характеристики подключаемого модуля браузера......................................... 352
Подключаемые модули, используемые для размещения
приложений............................................................................................................. 352
Обзор платформы Microsoft Silverlight ................................................................ 353
Элементы архитектуры Silverlight........................................................................354
Сравнение Silverlight и AJAX.................................................................................. 354
Сравнение Silverlight и «умных» клиентов....................................................... 355
Запуск Silverlight-приложений............................................................................... 356
Графика и мультимедиа............................................................................................357
Элементы управления для работы с мультимедиа......................................... 357
Анимация........................................................................................................................ 358
Технология Deep Zoom.............................................................................................. 358
14 Оглавление
Создание приложений...............................................................................................359
Код и разметка.............................................................................................................. 360
Языки программирования........................................................................................ 361
Пакеты XAP................................................................................................................... 361
Загрузка исполняющей среды CLR...................................................................... 362
Программная модель платформы Microsoft Silverlight .................................. 362
Пользовательский интерфейс, основанный на WPF....................................363
Менеджер верстки....................................................................................................... 363
Общий набор элементов управления................................................................... 365
Менеджер привязки данных.................................................................................... 366
Совместимость между кодом Silverlight и WPF............................................. 367
Базовый набор классов .NET..................................................................................368
Поддержка технологии LINQ.................................................................................. 369
Поддержка многопоточности.................................................................................. 370
Поддержка таймеров................................................................................................... 372
Изолированное хранилище.....................................................................................373
Почему локальное хранилище так важно?........................................................ 373
Подсистема хранения данных................................................................................. 374
Работа с файлами и папками.................................................................................. 375
Работа с потоками....................................................................................................... 376
Управление хранилищем........................................................................................... 378
Дисковые квоты............................................................................................................ 379
Сетевые операции.......................................................................................................380
Загрузка данных........................................................................................................... 381
Работа с HTTP-запросами........................................................................................ 384
Работа с сервисами...................................................................................................... 385
Выполнение междоменных запросов................................................................... 387
Платформа Microsoft Silverlight и безопасность кода ..................................... 389
Модель безопасности.................................................................................................389
Защита доступа по правам кода............................................................................. 389
Прозрачность кода....................................................................................................... 390
Атрибуты безопасности............................................................................................390
Прозрачный код............................................................................................................ 391
Критичный код............................................................................................................. 391
Безопасно-критичный код........................................................................................ 392
Безопасность, обеспечиваемая архитектурой платформы..........................394
Код приложения и код платформы...................................................................... 395
Правила наследования............................................................................................... 395
Выводы .............................................................................................................................. 396
Download