Оглавление

Оглавление

ОГЛАВЛЕНИЕ...........................................................................................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 г.