Книга "Программирование с использованием Microsoft ASP.NET 3.5. Мастер-класс" - полное руководство по Microsoft ASP.NET 3.5. Вы узнаете обо всех возможностях данной технологии, в частности об использовании тем, мастеров и шаблонов страниц, о применении динамических данных для построения и настройки веб-приложений, об интегрировании запросов с помощью LINQ, а также об использовании AJAX и Microsoft Silverlight. Кроме того, здесь подробно рассматриваются такие вопросы, как реализация стратегии безопасности с применением аутентификации форм и членства API, а также обслуживание веб-запросов с помощью модулей и обработчиков HTTP.
Книга предназначена для профессиональных программистов, состоит из 21 главы.
Глава 1. Модель программирования ASP.NET ............................................................2
Что такое ASP.NET ........................................................................................................................3
Программирование в эру веб-форм ...................................................................................4
Событийно-управляемое программирование HTTP ..................................................5
HTTP-протокол ........................................................................................................................7
HTTP-запрос .............................................................................................................................8
HTTP-ответ...............................................................................................................................8
Построение серверного уровня абстракции ...................................................................9
Отправка форм .........................................................................................................................9
Структура страницы ASP.NET ..........................................................................................10
Образец страницы ASP.NET ..............................................................................................11
Краткий обзор кода ...............................................................................................................12
Компонентная модель ASP.NET .............................................................................................13
Модель взаимодействия компонентов ...........................................................................14
Атрибут runat ...........................................................................................................................14
Работа с серверными элементами управления ............................................................15
Теги уровня страницы ..........................................................................................................16
Неизвестные теги ...................................................................................................................16
Элементы управления сервера ASP.NET ......................................................................17
Стек разработки ASP.NET ........................................................................................................19
Уровень представления .......................................................................................................19
Инфраструктура страницы ................................................................................................20
Среда выполнения HTTP ...................................................................................................22
Модель провайдера ASP.NET ..................................................................................................25
Применение модели провайдера ......................................................................................26
Коротко о реализации ASP.NET .......................................................................................29
Выводы ...........................................................................................................................................33
Только факты..........................................................................................................................34
Глава 2. Веб-разработка в Microsoft Visual Studio 2008 .......................................35
Знакомство с Visual Studio 2008 .............................................................................................35
Особенности Visual Studio .................................................................................................36
Новые свойства в Visual Studio 2008 ..............................................................................40
Новые свойства языка C# ...................................................................................................44
Создание веб-сайта ASP.NET ..................................................................................................48
Дизайн страницы ...................................................................................................................48
Добавление кода к проекту ................................................................................................54
Защищенные папки ASP.NET ...........................................................................................58
Каталоги ресурсов .................................................................................................................60
Построение проекта ASP.NET ...........................................................................................63
Развертывание приложения .....................................................................................................66
XCopy-развертывание ..........................................................................................................66
Предварительная компиляция сайта ..............................................................................69
Администрирование приложения ASP.NET ......................................................................72
Web Site Administration Tool ..............................................................................................72
Редактирование файлов конфигурации ASP.NET .....................................................75
Выводы ...........................................................................................................................................77
Только факты..........................................................................................................................78
Глава 3. Анатомия страницы ASP.NET .........................................................................79
Вызов страницы ............................................................................................................................79
Машины среды выполнения ..............................................................................................80
Обработка запроса .................................................................................................................85
Обработка директив страницы .........................................................................................90
Класс Page ................................................................................................................................... 100
Свойства ................................................................................................................................ 100
Методы .................................................................................................................................. 104
События ................................................................................................................................ 108
Событийная модель ........................................................................................................... 109
Асинхронные страницы .................................................................................................... 110
Жизненный цикл страницы .................................................................................................. 117
Установка страницы ........................................................................................................... 117
Обработка постбека ........................................................................................................... 120
Завершение страницы ....................................................................................................... 121
Выводы ........................................................................................................................................ 123
Только факты........................................................................................................................ 124
Глава 4. Основные серверные элементы управления ASP.NET ................... 125
Общие свойства серверных элементов управления ASP.NET .................................. 126
Свойства класса Control .................................................................................................... 127
Методы класса Control ....................................................................................................... 130
События класса Control ..................................................................................................... 131
Другие свойства ................................................................................................................... 131
HTML-элементы управления ............................................................................................... 137
Общие свойства ................................................................................................................... 138
Контейнерные элементы управления .......................................................................... 140
Элементы управления для ввода данных ................................................................... 146
Элемент управления HtmlImage .................................................................................... 151
Веб-элементы управления ..................................................................................................... 152
Общие свойства ................................................................................................................... 153
Основные веб-элементы управления........................................................................... 155
Другие веб-элементы управления................................................................................. 162
Проверочные элементы управления .................................................................................. 167
Общие свойства ................................................................................................................... 167
Галерея элементов управления ...................................................................................... 170
Специальные возможности ............................................................................................. 174
Выводы ........................................................................................................................................ 179
Только факты........................................................................................................................ 180
Глава 5. Работа со страницей ........................................................................................ 181
Программирование с помощью форм ................................................................................ 181
Класс HtmlForm .................................................................................................................... 182
Множественные формы .................................................................................................... 184
Межстраничная отправка данных ................................................................................ 188
Обработка ошибок страницы ................................................................................................ 193
Основы обработки ошибок .............................................................................................. 194
Отображение ошибок на странице ............................................................................... 198
Трассировка в ASP.NET .......................................................................................................... 203
Трассировка потока выполнения .................................................................................. 203
Написание сообщений трассировки ............................................................................ 205
Просмотрщик трассировки ............................................................................................. 206
Персонализация страницы .................................................................................................... 208
Создание профиля пользователя .................................................................................. 208
Представление класса пользовательского профиля .............................................. 209
Взаимодействие со страницей ........................................................................................ 211
Провайдеры профиля ........................................................................................................ 217
Выводы ........................................................................................................................................ 220
Только факты........................................................................................................................ 221
Глава 6. Композиция страницы .................................................................................... 222
Работа с эталонными страницами ....................................................................................... 223
Авторская разработка страниц с богатым интерфейсом в ASP.NET 1.x ......... 223
Создание эталонной страницы....................................................................................... 225
Создание страницы содержимого ................................................................................. 228
Обработка эталонных страниц и страниц содержимого ....................................... 232
Программирование эталонной страницы ................................................................... 236
Работа с темами ......................................................................................................................... 239
Темы ASP.NET ..................................................................................................................... 239
Применение тем к страницам и элементам управления ....................................... 243
Использование тем ............................................................................................................. 247
Работа с мастерами ................................................................................................................... 250
Обзор элемента управления Wizard ............................................................................. 250
Добавление шагов к мастеру ........................................................................................... 255
Навигация посредством мастера ................................................................................... 258
Выводы ........................................................................................................................................ 262
Только факты........................................................................................................................ 263
Часть II Размещение данных на сайте ASP.NET
Глава 7. Провайдеры данных ADO.NET .................................................................... 266
Инфраструктура доступа к данным в технологии .NET ............................................. 266
Управляемые провайдеры данных .NET..................................................................... 267
Источники данных, доступные посредством ADO.NET ...................................... 271
Модель фабрики провайдеров ....................................................................................... 274
Подключение к источникам данных .................................................................................. 278
Класс SqlConnection ............................................................................................................ 278
Строки подключения ......................................................................................................... 284
Пул подключений ............................................................................................................... 291
Выполнение команд ................................................................................................................. 297
Класс SqlCommand .............................................................................................................. 297
Объекты чтения данных ADO.NET ............................................................................. 301
Асинхронное выполнение команд ................................................................................ 307
Работа с транзакциями ..................................................................................................... 312
Усовершенствования SQL Server 2005 ........................................................................ 317
Выводы ........................................................................................................................................ 322
Только факты........................................................................................................................ 322
Глава 8. Контейнеры данных ADO.NET ..................................................................... 324
Адаптеры данных ...................................................................................................................... 324
Класс SqlDataAdapter ........................................................................................................ 325
Механизм сопоставления таблиц .................................................................................. 331
Пакетное обновление данных ......................................................................................... 335
Контейнеры данных ................................................................................................................. 337
Объект DataSet .................................................................................................................... 338
Объект DataTable ................................................................................................................. 345
Связывание данных ........................................................................................................... 351
Объект DataView ................................................................................................................. 353
Выводы ........................................................................................................................................ 356
Только факты........................................................................................................................ 357
Глава 9. Модель связывания с данными .................................................................. 358
Связывание на основе источника данных ........................................................................ 359
Источники данных ............................................................................................................. 359
Свойства элементов связывания с данными ............................................................. 362
Списочные элементы управления ................................................................................ 367
Итеративные элементы управления ............................................................................ 374
Выражения связывания с данными .................................................................................... 379
Простейшие случаи связывания с данными ............................................................. 380
Класс DataBinder ................................................................................................................. 382
Другие средства связывания с данными ..................................................................... 385
Компоненты, представляющие источники данных ...................................................... 388
Обзор компонентов ............................................................................................................ 388
Внутренняя структура компонентов ........................................................................... 390
Элемент управления SqlDataSource ............................................................................. 393
Класс AccessDataSource ..................................................................................................... 399
Элемент управления ObjectDataSource ....................................................................... 400
Класс LinqDataSource ........................................................................................................ 410
Компонент SiteMapDataSource ....................................................................................... 421
Класс XmlDataSource ......................................................................................................... 424
Выводы ........................................................................................................................................ 428
Только факты........................................................................................................................ 429
Глава 10. Модель программирования Linq-to-SQL .............................................. 430
Краткое описание LINQ ......................................................................................................... 430
Интегрированные в язык средства работы с данными .......................................... 431
Общий синтаксис запросов ............................................................................................. 436
Механизм LINQ .................................................................................................................. 443
Работа с SQL Server ................................................................................................................. 446
Контекст данных ................................................................................................................. 446
Запросы ................................................................................................................................. 450
Модификация данных....................................................................................................... 457
Другие возможности .......................................................................................................... 463
Выводы ........................................................................................................................................ 464
Только факты........................................................................................................................ 465
Глава 11. Создание связываемых элементов управления.............................. 466
Элемент управления DataGrid ............................................................................................. 467
Объектная модель ............................................................................................................... 467
Связывание данных ........................................................................................................... 472
Работа с DataGrid ................................................................................................................ 476
Элемент управления GridView .............................................................................................. 479
Объектная модель ............................................................................................................... 480
Связывание данных ........................................................................................................... 485
Страницы данных ............................................................................................................... 494
Сортировка данных ............................................................................................................ 500
Редактирование данных ................................................................................................... 505
Дополнительные возможности ...................................................................................... 510
Выводы ........................................................................................................................................ 515
Только факты........................................................................................................................ 516
Глава 12. Управление списком записей ................................................................... 517
Элемент управления ListView ............................................................................................... 517
Объектная модель ............................................................................................................... 518
Определение макета списка ............................................................................................ 525
Построение табличного макета ...................................................................................... 527
Создание потокового макета ........................................................................................... 531
Создание мозаичного макета .......................................................................................... 532
Стилизация списка ............................................................................................................. 539
Работа с элементом управления ListView.......................................................................... 541
Внутреннее редактирование ........................................................................................... 542
Выполнение операции обновления .............................................................................. 544
Вставка новых элементов данных ................................................................................. 547
Выбор элемента ................................................................................................................... 550
Постраничная разбивка списка элементов ................................................................ 552
Выводы ........................................................................................................................................ 556
Только факты........................................................................................................................ 557
Глава 13. Управление представлениями записей ............................................... 558
Элемент управления DetailsView ......................................................................................... 558
Объектная модель ............................................................................................................... 559
Связывание данных ........................................................................................................... 565
Создание представлений Master/Detail ..................................................................... 568
Работа с данными ................................................................................................................ 572
Элемент управления FormView ............................................................................................. 580
Объектная модель ............................................................................................................... 581
Связывание данных ........................................................................................................... 583
Редактирование данных ................................................................................................... 585
Выводы ........................................................................................................................................ 589
Только факты........................................................................................................................ 589
Часть III Инфраструктура ASP.NET
Глава 14. Контекст запросов HTTP ............................................................................. 592
Инициализация приложения ............................................................................................... 592
Свойства класса HttpApplication .................................................................................... 593
Модули приложений ......................................................................................................... 594
Методы класса HttpApplication ....................................................................................... 594
События класса HttpApplication ..................................................................................... 595
Файл global.asax ......................................................................................................................... 598
Компиляция .......................................................................................................................... 598
Синтаксис .............................................................................................................................. 600
Отслеживание ошибок и аномалий .............................................................................. 602
Класс HTTPContext ................................................................................................................... 604
Свойства класса ................................................................................................................... 604
Методы класса ..................................................................................................................... 607
Объект Server .............................................................................................................................. 608
Свойства класса HttpServerUtility .................................................................................. 609
Методы класса HttpServerUtility ..................................................................................... 609
Объект HttpResponse ................................................................................................................ 615
Свойства класса HttpResponse ........................................................................................ 615
Методы класса HttpResponse ........................................................................................... 619
Функции кэширования выходных данных................................................................ 621
Объект HttpRequest ................................................................................................................... 621
Свойства класса HttpRequest ........................................................................................... 622
Методы класса HttpRequest ............................................................................................. 625
Выводы ........................................................................................................................................ 626
Только факты........................................................................................................................ 627
Глава 15. Управление состоянием ASP.NET ........................................................... 628
Состояние приложения .......................................................................................................... 629
Свойства класса HttpApplicationState ........................................................................... 630
Методы класса HttpApplicationState ............................................................................. 631
Синхронизация состояния .............................................................................................. 631
Варианты состояния приложения ................................................................................ 632
Одновременный доступ к данным ................................................................................ 633
Состояние сеанса ....................................................................................................................... 633
HTTP-модуль состояния сеанса .................................................................................... 634
Свойства класса HttpSessionState .................................................................................. 639
Работа с состоянием сеанса ................................................................................................... 640
Идентификация сеанса ..................................................................................................... 641
Генерирование ID сеанса .................................................................................................. 641
Данные cookies сеанса ....................................................................................................... 641
Сеансы без cookie ................................................................................................................ 642
Время жизни сеанса ........................................................................................................... 646
Сохранение данных сеанса на удаленных серверах ................................................ 648
Сохранение данных сеанса с помощью SQL Server ................................................ 652
Настройка управления состоянием сеанса ...................................................................... 657
Конструирование настраиваемого провайдера состояния сеанса ..................... 658
Генерирование настраиваемого ID сеанса .................................................................. 661
Информация о состоянии страницы .................................................................................. 663
Класс StateBag ...................................................................................................................... 664
Проблемы с ViewState ........................................................................................................ 665
Программирование Web Forms без данных ViewState ........................................... 668
Изменения компонента ViewState ................................................................................. 671
Хранение данных ViewState на сервере ....................................................................... 675
Выводы ........................................................................................................................................ 679
Только факты........................................................................................................................ 680
Глава 16. Кэширование в ASP.NET .............................................................................. 681
Кэширование данных приложений .................................................................................... 681
Класс Cache ........................................................................................................................... 682
Работа с объектом Cache ................................................................................................... 685
Практические вопросы ..................................................................................................... 693
Разработка дополнительной зависимости ................................................................. 698
Зависимость для данных XML ...................................................................................... 700
Зависимость от базы данных SQL Server ................................................................... 705
Кэширование страниц ASP.NET .......................................................................................... 711
Директива @OutputCache ................................................................................................. 712
Кэширование различных версий страницы .............................................................. 719
Кэширование отдельных частей страниц ASP.NET ............................................... 722
Дополнительные компоненты кэша ............................................................................. 727
Выводы ........................................................................................................................................ 729
Только факты........................................................................................................................ 730
Глава 17. Безопасность в ASP.NET ............................................................................. 731
Откуда исходит угроза ............................................................................................................ 731
Состояние безопасности в ASP.NET .................................................................................. 732
Где выполняется приложение ASP.NET ..................................................................... 733
Изменение идентичности ASP.NET-процесса .......................................................... 736
Степень доверия приложений ........................................................................................ 737
Методы аутентификации ................................................................................................. 740
XIV
Аутентификация форм ............................................................................................................ 742
Управляющий поток аутентификации форм ............................................................ 743
Класс FormsAuthentication ................................................................................................ 747
Настройка аутентификации форм ................................................................................ 748
Дополнительные компоненты аутентификации форм .......................................... 752
Аутентификация форм и защищенные сокеты ........................................................ 754
Интерфейс управления членством и ролями ........................................................... 756
Класс Membership ................................................................................................................ 756
Установка поддержки членства ..................................................................................... 758
Провайдер членства ........................................................................................................... 761
Управление ролями ............................................................................................................ 766
Элементы управления, связанные с безопасностью ..................................................... 770
Элемент управления Login............................................................................................... 770
Элемент управления LoginName .................................................................................... 773
Элемент управления LoginStatus ................................................................................... 773
Элемент управления LoginView ..................................................................................... 775
Элемент управления PasswordRecovery ....................................................................... 777
Элемент управления ChangePassword .......................................................................... 779
Элемент управления CreateUserWizard ....................................................................... 780
Выводы ........................................................................................................................................ 781
Только факты........................................................................................................................ 782
Глава 18. Обработчики и модули HTTP ..................................................................... 783
Краткий обзор интерфейса расширяемости IIS ............................................................. 784
Модель ISAPI ....................................................................................................................... 784
Изменения в IIS 7.0 ............................................................................................................ 787
Написание обработчиков HTTP .......................................................................................... 788
Интерфейс IHttpHandler ................................................................................................... 789
Обработчик HTTP для быстрого возвращения данных ....................................... 791
Регистрация обработчика ................................................................................................ 795
Обработчик для предварительного просмотра изображений ............................. 796
Более эффективная обработка изображений ............................................................ 800
Сложные технологии создания обработчиков HTTP ............................................ 808
Создание модулей HTTP ....................................................................................................... 814
Интерфейс IHttpModule .................................................................................................... 815
Пользовательский модуль HTTP ................................................................................. 816
Обновление страницы ....................................................................................................... 819
Выводы ........................................................................................................................................ 825
Только факты........................................................................................................................ 826
Часть IV Расширения ASP.NET AJAX
Глава 19. Частичный рендеринг: простой путь к AJAX..................................... 828
Инфраструктура ASP.NET AJAX ........................................................................................ 829
Скрытый механизм AJAX ................................................................................................ 830
Библиотека Microsoft AJAX JavaScript ....................................................................... 836
Элемент управления ScriptManager.............................................................................. 848
Выборочные обновления страницы с помощью частичного рендеринга .............. 858
Элемент управления UpdatePanel ................................................................................. 859
Оптимизация использования элемента управления UpdatePanel ..................... 865
Предоставление пользователю обратной связи ....................................................... 870
Преимущества и недостатки частичного рендеринга ............................................ 876
AJAX Control Toolkit ................................................................................................................ 880
Усовершенствование элементов управления
с помощью расширителей ................................................................................................ 880
Улучшение пользовательского интерфейса
с применением расширителей ввода данных ............................................................ 888
Добавление всплывающих сообщений на веб-страницах .................................... 900
Выводы ........................................................................................................................................ 907
Только факты........................................................................................................................ 908
Глава 20. AJAX-ориентированные веб-службы .................................................... 910
Реализация парадигмы AJAX ............................................................................................... 911
Отход от частичного рендеринга ................................................................................... 911
Проектирование клиентского уровня приложения ASP.NET AJAX ................ 912
Проектирование серверного уровня приложений ASP.NET AJAX ................... 914
Веб-службы для приложений ASP.NET AJAX................................................................ 917
Веб-службы как особые службы для приложения .................................................. 917
Удаленные вызовы посредством веб-служб .............................................................. 919
AJAX-ориентированные веб-службы ........................................................................... 929
Службы WCF для приложений ASP.NET AJAX ............................................................ 931
Построение простой службы WCF ............................................................................... 931
Построение более сложной службы ............................................................................. 935
Удаленные вызовы посредством методов страницы..................................................... 938
Представление методов страницы ................................................................................ 938
Использование методов страницы ............................................................................... 940
Выводы ........................................................................................................................................ 943
Только факты........................................................................................................................ 944
Глава 21. Silverlight и интернет-приложения
с богатым интерфейсом............................................................................... 945
Информация о программе Silverlight ................................................................................ 946
Версии Silverlight ................................................................................................................ 946
Silverlight и Flash ................................................................................................................ 948
Программируемость .......................................................................................................... 949
Расположение Silverlight на веб-страницах..................................................................... 950
Механизм Silverlight .......................................................................................................... 950
Определение содержимого XAML ............................................................................... 958
Синтаксис XAML в Silverlight ....................................................................................... 963
Объектная модель Silverlight ................................................................................................ 974
Основы программирования в Silverlight .................................................................... 974
Введение в Silverlight 2.0 .................................................................................................. 981
Выводы ........................................................................................................................................ 985
Только факты........................................................................................................................
Эта книга - подробное руководство для профессионалов-разработчиков приложений ASP.NET.
В ней описаны технологии создания эффективных, масштабируемых и надежных сайтов на платформе ASP.NET 2.0, обладающих разнообразным и согласованным пользовательским интерфейсом. Вы узнаете, как создавать эталонные страницы, персонализировать вывод сайта и адаптировать его к возможностям браузера, познакомитесь с широким ассортиментом средств ASP.NET для работы с данными, научитесь эффективно кэшировать информацию, аутентифицировать пользователя и авторизировать его доступ к серверным ресурсам.
Интернет все больше входит в нашу жизнь, которую уже сложно представить без существования WWW и электронной почты. Не за горами тот день, когда вы сможете выключать забытый утюг, находясь далеко от дома. Правда в СМИ очень много говорят об опасности, которую таят в себе хакеры. Это означает, что утюг может кто-то и включить без вашего участия...