Оглавление
ОГЛАВЛЕНИЕ...........................................................................................V(678)
Благодарности………………………………………………………….. XIII(686)
Введение………………………………………………………………… XIV(687)
Предстоящий путь...............................................................................XIV(687)
О языках программирования...........................................................XV(688)
Системные требования...............................................................XVI(689)
Содержимое компакт-диска.........................................................XVII(690)
Поддержка..............................................................................XVII(690)
Блоги и другие чудовища............................................................XVII(690)
ЧАСТЬ 1
ОСНОВНЫЕ ПОНЯТИЯ 1
Глава 1 Hello, NET 2
Инициатива Microsoft NET...............................................................3
Microsoft NET Framework................................................................4
Общеязыковая исполняющая среда (CLR).......................................5
Языки программирования.........................................................6
Управляемые модули...............................................................7
Метаданные.........................................................................8
Общий промежуточный язык...................................................9
Сборки..............................................................................12
Библиотека классов .NET Framework...........................................14
Первое приложение для .NET Framework..............................................16
Hello, World........................................................................16
Внутри Hello.cs....................................................................17
Еще о методе Main..................................................................19
Внутри Hello.exe....................................................................19
Общая картина...........................................................................21
Глава 2 Типы и исключения 22
Типы данных .NET Framework...........................................................23
Классы.............................................................................23
Структуры.........................................................................25
Интерфейсы......................................................................26
Перечисления.....................................................................27
Делегаты............................................................................28
Упаковка и распаковка...........................................................29
Ссылочные и размерные типы...................................................31
Недетерминированное уничтожение...........................................32
Динамическая компоновка.............................................................36
Создание многофайловой сборки.............................................36
Динамическое связывание со сборкой........................................38
Управление версиями сборки...................................................40
Совместное использование сборки; глобальный кэш сборок...............42
Формирование строгих имен при помощи атрибутов........................43
Отложенное подписание.........................................................44
Обработка исключений...................................................................45
Перехват исключений............................................................45
Гарантированное исполнение...................................................47
Генерация исключений............................................................48
Дальше: библиотека классов ЛЕТ Framework..........................................49
Глава 3 Библиотека классов NET Framework 50
Файловый и потоковый ввод-вывод....................................................51
Ввод-вывод текстовых файлов...................................................52
Ввод-вывод двоичных данных...................................................54
Наборы.....................................................................................56
Хэш-таблицы.....................................................................51
Массивы переменного размера.................................................59
Приложение WordCount.........................................................61
Регулярные выражения..................................................................64
Разбиение строк...................................................................65
Поиск в строках....................................................................66
Замена строк........................................................................69
Классы для Интернета....................................................................70
HttpWebRequest и HttpWebResponse............................................70
Пространство имен System.Web.Mail.............................................72
Доступ к данным..........................................................................74
Классы DataReader................................................................75
Вставка, обновление и удаление..................................................76
DataSet и DataAdapter.............................................................77
Отражение.................................................................................77
Получение информации о сборках, модулях и типах........................78
Специализированные атрибуты................................................81
Динамическая загрузка типов (позднее связывание)..........................83
Обзор FCL.................................................................................84
Глава 4 Windows Forms 85
Программная модель Windows Forms..................................................86
Ваша первая Windows-форма...................................................£6
Рисование внутри формы: GDI+..................................................89
Меню...............................................................................99
Приложение Image View.........................................................103
Мышь и клавиатура.............................................................107
Элементы управления...................................................................116
Приложение ControlDemo......................................................118
Привязки..........................................................................122
Диалоговые окна........................................................................123
Приложение DialogDemo.......................................................124
Windows Forms и Visual Studio НЕТ...................................................131
Шаг I Создание проекта.......................................................133
Шаг 2: Разработка формы......................................................133
Шаг 3: Добавление полей.............................135
Шаг 4: Изменение конструктора класса формы.............................136
Шаг 5: Добавление вспомогательных методов................................136
Шаг 6: Добавление обработчиков событий Click............................137
Шаг 7: Добавление обработчиков для клавиатуры..........................137
Шаг 8: Переопределение ProcessDialogKey....................................137
Шаг 9: Компоновка и запуск приложения....................................138
Исходный текст NetCalc........................................................138
Заключение...............................................................................155
ЧАСТЬ 2
ASP.NET 157
Глава 5 Web Forms 158
Азбука Web-приложений...............................................................159
Протокол HTTP...................................................................159
HTML-формы....................................................................161
Обработка на сервере...........................................................163
Вариант на основе ASP..........................................................166
Ваша первая Web-форма.......................................................168
Модель программирования Web Forms...............................................172
Web-элементы управления......................................................173
HTML-элементы управления...................................................174
Страничные события............................................................176
Страничные директивы........................................................179
Web-форма для пересчета валют..............................................183
Фоновый код............................................................................187
Приложение Lander.............................................................188
Как работает фоновый код.....................................................192
Использование фонового кода без ирекомпиляции: атрибут Src..........193
Использование не-ASP.NET языков в Web Forms.............................194
Web Forms и Visual Studio NKT..........................................................197
Шаг 1: Создание виртуального каталога......................................197
Шаг 2: Создание проекта Web-приложения..................................198
Шаг 3: Переход в поточный режим разметки.................................198
Шаг 4: Добавление таблицы....................................................199
Шаг 5: Добавление текста......................................................199
Шаг 6: Добавление элементов управления TextBox........................200
Шаг 7: Добавление элемента управления Button...........................201
Шаг 8: Добавление элемента управления Label.............................202
Шаг 9: Редактирование HTML.................................................202
Шаг 10: Добавление обработчика Click......................................203
Шаг 11: Компоновка и тестирование..........................................204
Текст программы LoanCalc.....................................................204
Прообраз будущего......................................................................207
Глава 6 Web-элементы управления 208
Простые элементы управления......................................................209
Элементы управления TextBox...............................................209
Элементы управления Label....................................................211
Элементы управления Hyperlink..............................................212
Элементы управления Image....................................................213
Элементы управления CheckBox.............................................213
Элементы управления RadioButton...........................................214
Элементы управления Table.....................................................214
Элементы управления Panel...................................................216
Кнопки....................................................................................217
Списки....................................................................................218
Элементы управления DropDownList........................................219
Элементы управления ListBox................................................220
Элементы управления CheckBoxList.........................................221
Элементы управления RadioButtonList.......................................222
Списки, связанные с данными..................................................223
Элементы управления, связанные с данными.......................................226
Элементы управления Repeater................................................227
Страница MyComicsRepeater...................................................232
Элементы управления DataList.................................................236
Страница MyComicsDataList...................................................237
Элементы управления DataGrid...............................................240
Страница MyComicsDataGrid.................................................. 248
Элементы управления Calendar........................................................251
Тонкая настройка: событие DayRender.......................................255
Пример Showtime...............................................................256
Проверяющие элементы управления.................................................259
Использование проверяющих элементов управления.....................260
RequiredFieldValidator............................................................262
RangeValidator....................................................................263
CompareValidator...............................................................264
RegularExpressionValidator......................................................265
CustomValidator...................................................................266
ValidationSummary...............................................................267
Spammers, Incorporated.........................................................268
Условные проверки.............................................................277
Заключение: базовый класс WebControl.............................................280
Глава 7 Пользовательские элементы управления 282
Общее представление о пользовательских элементах управления..............283
Директива @ Control...........................................................284
Ваш первый пользовательский элемент управления.......................284
Добавление свойств.............................................................286
Добавление событий...........................................................289
Применение фонового кода в пользовательских элементах управления . 291
Элемент управления XmlNavBar.......................................................294
Динамическая загрузка (и, конечно, «cookie»!).....................................301
Файлы «cookie»...................................................................302
«Cookie» и ASP.NET................................................................304
Страница MyQuotes............................................................306
Кэширование фрагментов..............................................................311
Следующий шаг: специализированные элементы управления.....................313
Глава 8 Специализированные элементы управления 314
Общее представление о специализированных элементах управления...........315
Ваш первый специализированный элемент управления...................315
Проверка элемента управления Hello..........................................316
Улучшение элемента управления Hello добавление свойств...............317
Дополнительная информация о HtmlTextWriter............................319
Возврат формы и возвращаемые формой данные..................................320
Интерфейс IPostBackDataHandler..............................................321
Состояние отображения......................................................324
События, сообщающие об изменении.......................................325
Как работает состояние отображения.......................................328
Генерации возврата форм:......................................................330
Интерфейс IPostBackEventHandler.............................................333
Элемент управления AutoCounter..............................................336
Составные элементы управления.....................................................340
Декларативные составные элементы..........................................341
Элемент управления GroupBox................................................341
Программные составные элементы управления.............................344
LoginControl.....................................................................345
Серверные элементы управления и клиентские сценарии........................?47
Возврат JavaScript клиенту.....................................................348
Метод RegisterClientScriptBIock...............................................349
Хранение кода на сервере......................................................352
Элемент управления RolloverlmageLink......................................354
Элемент управления NumTextBox.............................................356
Графические элементы управления...................................................360
Обработчики HTTP-запросов..................................................361
Элемент управления Odometer.................................................362
Как работает элемент управления Odometer.................................364
Итоги.....................................................................................370
Глава 9 Web-приложения 372
Структура приложения ASP.NET.......................................................372
Файл Web.config.........................................................................'74
<appSettings>.....................................................................374
<system.web>......................................................................375
Наследование конфигурации................................................378
Файл Global.asax.........................................................................379
Глобальные директивы..........................................................379
Обработчики глобальных событий............................................382
Теги глобальных объектов......................................................385
Состояние приложения.................................................................386
Использование состояния приложения......................................3S6
Блокирование и разблокирование............................................387
Приложение AppCounter.......................................................388
Кэш приложения........................................................................390
Добавление и удаление элементов.............................................390
Блокирование и разблокирование...........................................391
Правила устаревания...........................................................392
Обратные вызовы при удалении из кэша...................................393
Метод Cache.Add..................................................................394
Приложение SmartQuotes......................................................395
Состояние сеанса.......................................................................399
Работа с состоянием сеанса....................................................400
Страница SessionSpy.............................................................401
Состояние сеанса без «cookie»..................................................402
Модели хранения состояния сеанса..........................................403
Время жизни сеанса............................................................409
Отключение состояния сеанса................................................410
Web-формы......................................................................410
Приложение Congo.com...............................................................411
Congo.com изнутри.............................................................412
Самостоятельная работа.......................................................419
Глава 10 Безопасность в ASP.NET 422
Понятия Web-защиты..................................................................423
Аутентификация.................................................................423
Авторизация.....................................................................425
Средства защиты IIS.............................................................426
Защита ASP.NET...................................................................428
Windows-аутентификация.............................................................431
Обычная аутентификация.....................................................431
Краткая аутентификация........................................................432
Встроенная Windows-аутентификация.......................................433
Получение информации об аутентифицированных пользователях.....434
Windows-аутентификация в работе............................................435
Windows-аутентификация и URL-авторизация..............................441
Windows-аутентификация и защита на основе ролей.......................442
Forms-аутентификации................................................................442
Первый пример Forms-аутентификации.....................................443
Реальный пример Forms-аутентификации...................................448
Время жизни аутентификационного «cookie»................................452
Forms-аутентификация и защита на основе ролей.........................453
Отключение......................................................................461
Защита идентификационных «cookie»........................................462
Предостережение........................................................................463
Глава 11 Web-сервисы 464
Web-сервисы.............................................................................465
Ваш первый Web-сервис........................................................467
Тестирование Web-сервиса....................................................468
Web-сервисы и фоновый код..................................................470
Базовый класс WebService......................................................471
Атрибут WebMethod.............................................................472
Язык описания Web-служб......................................................473
Web-сервисы и сложные типы данных.......................................474
Поиск Web-сервисов — DISCO.................................................478
Поиск Web-сервисов - UDDI...................480
Клиенты Web-сервисов.................................................................480
Прокси Web-сервисов..........................................................481
Простой клиент Web-сервиса.................................................482
Параметризация URL сервиса.................................................483
Асинхронные вызовы методов................................................484
Клиенты Web-сервисов и прокси-серверы...................................485
Приложение CityView..................................................................486
Как работает CityView............................................................487
Платные Web-сервисы..................................................................496
Начало новой эры......................................................................498
ЧАСТЬ 3
НА ПЕРЕДНЕМ КРАЕ 499
Глава 12 ADO.NET 500
Повесть о двух провайдерах............................................................501
Пространства имен System.Data.Sql.Client и System.Data.OleDb............502
Соединения, команды и DataReader..................................................503
Класс SqlConnection..............................................................504
Класс OleDbConnection.........................................................505
Открытие и закрытие соединений............................................506
Классы команд....................................................................507
Метод ExecuteNonQuery.......................................................508
Метод ExecuteScalar.............................................................510
Метод RxecuteReader............................................................512
Транзакционныс команды.....................................................515
Параметризованные команды.................................................518
Хранимые процедуры..........................................................520
DataSet и DataAdapter...................................................................523
Класс DataSet.....................................................................524
Классы DataAdapter.............................................................525
Инициализация объекта DataSet из БД: DataAdapter.Fill...................526
DataTable и другие................................................................527
Запись изменений в базу данных: DataAdapter.Update.....................530
Классы CommandBuilder........................................................531
Класс DataView...................................................................532
Несколько слов о XML..................................................................533
Глава 13 XML 535
Основы XML............................................................................536
Элементы........................................................................537
Атрибуты..........................................................................538
CDATA, PCDATA и ссылки на сущности........................................539
Пространства имен.............................................................540
Допустимость документа и схемы.............................................542
XML-анализаторы..............................................................545
Чтение и генерация XML...............................................................552
Класс XmlDocument............................................................552
Класс XmlTextReader.... 560
Класс XmlValidatingReader......................................................563
Класс XmlText Writer..............................................................566
XPath.....................................................................................567
Основы XPath....................................................................567
XPathNavigator и другие.........................................................570
Самодельный XPath-процессор................................................573
XSL-преобразования (XSLT)...........................................................578
Преобразование XML в HTML на клиенте.....................................579
Преобразование XML в HTML на сервере...................................582
Преобразование форматов XML-документов...............................585
Резюме...................................................................................586
Глава 14 Многопоточность 587
Потоки...................................................................................588
Запуск потоков..................................................................589
Основные и фоновые потоки.................................................590
Приоритеты потоков............................................................591
Приостановка и возобновление потока......................................592
Завершение потоков............................................................593
Приложения Sieve и MultiSieve................................................595
Таймерные потоки..............................................................602
Синхронизация потоков................................................................603
Класс Interlocked................................................................605
Мониторы........................................................................605
Внутреннее устройство мониторов...........................................614
Блокировки чтения/записи....................................................617
Мьютексы.........................................................................621
События...........................................................................622
Ожидание нескольких синхронизационных объектов.....................625
Упорядочение доступа к наборам.............................................626
Синхронизация потоков с помощью атрибута MethodImpl...............627
Пулы потоков.............................................................................628
Глава 15 Удаленное взаимодействие 630
Основы удаленного взаимодействия..................................................631
Первое приложение с удаленным взаимодействием.......................634
Программная и декларативная конфигурация...............................636
Серверная и клиентская активизация.........................................638
Методы Activator.GetObject и Activator.CreateInstance.......................642
Время жизни и срок применения объекта...................................643
Продвинутые возможности...........................................................646
Использование IIS как агента активизации..................................647
Каналы HTTP и двоичные форматировщики................................649
Делегаты и события..............................................................651
Асинхронные вызовы методов.................................................652
Все вместе: приложение NetDraw..............................................654
Microsoft NET: игра по новым правилам.............................................662
Предметный указатель 663
Об авторе 692
Джеф Просиз "Программирование для Microsoft.NET" 2003 г.