Совершите увлекательное путешествие по вселенной .NET!
Освойте технологию разработки приложений .NET с помощью нового издания известного бестселлера. Охватывая как базовые, так и новейшие концепции платформы, эта книга призвана научить вас всем тонкостям технологии .NET.
Признанный эксперт мирового уровня, обучающий .NET с самой первой версии, поможет вам обрести глубокое понимание ключевых аспектов языка программирования C#, а также новых функциональных возможностей платформы, которые появились в версии .NET 4.5.
В этой книге рассматриваются следующие темы:
* Объектно-ориентированное программирование на языке C#
* Отношения между делегатами, событиями и лямбда-выражениями
* Программирование с использованием набора технологий LINQ
* Многопоточное, параллельное и асинхронное программирование
* Работа с реляционными базами данных через ADO.NET
* Создание распределенных систем с применением WCF
* Построение пользовательских интерфейсов для настольных и веб-приложений с помощью WPF и ASP.NET
Кем бы вы ни были — опытным программистом, впервые переходящим на .NET, или разработчиком приложений для предшествующих версий .NET — эта книга предоставит исчерпывающие основы технологии .NET и послужит полным справочником, которым вы будете пользоваться в повседневной работе.
Основная миссия книги заключается в том, чтобы служить исчерпывающим руководством по языку программирования C# и ключевым аспектам платформы .NET (сборкам, удаленному взаимодействию, Windows Forms, Web Forms, ADO.NET, веб-службам XML и т.д.). Книга изобилует многочисленными примерами реального кода и позволяет почти сразу применять полученные знания для создания высококачественного программного обеспечения для .NET.
Эта книга предназначена для опытных разработчиков программного обеспечения, заинтересованных в освоении новых средств .NET Framework 4.5 и языка C#. Она будет служить настольным справочником как для тех, кто впервые переходит на платформу .NET, так и для тех, кто ранее писал приложения для предшествующих версий .NET.
Author(s): Эндрю Троелсен
Series: Expert's Voice
Edition: 6
Publisher: Вильямс
Year: 2013
Language: Russian
Pages: 1312
Tags: Библиотека;Компьютерная литература;C#;
Оглавление ......Page 4
Благодарности ......Page 31
Автор и читатели — одна команда ......Page 32
Часть II. Основы программирования на C# ......Page 33
Часть III. Объектно-ориентированное программирование на C# ......Page 34
Часть IV. Дополнительные конструкции программирования на C# ......Page 35
Часть V. Программирование с использованием сборок .NET ......Page 36
Часть VI. Введение в библиотеки базовых классов .NET ......Page 37
Часть VII. Windows Presentation Foundation ......Page 39
Загружаемые приложения ......Page 40
От издательства ......Page 41
Часть I. Введение в C# и платформу .NET ......Page 42
Начальное знакомство с платформой .NET ......Page 43
Некоторые основные преимущества платформы .NET ......Page 44
Роль библиотек базовых классов ......Page 45
Что привносит язык C# ......Page 46
Другие языки программирования, ориентированные на .NET ......Page 48
Жизнь в многоязычном окружении ......Page 49
Обзор сборок .NET ......Page 50
Роль языка CIL ......Page 51
Роль метаданных типов .NET ......Page 54
Понятие общей системы типов (CTS) ......Page 55
Типы интерфейсов CTS ......Page 56
Типы перечислений CTS ......Page 57
Встроенные типы данных CTS ......Page 58
Понятие общеязыковой спецификации (CLS) ......Page 59
Понятие общеязыковой исполняющей среды (CLR) ......Page 61
Различия между сборками, пространствами имен и типами ......Page 63
Доступ к пространству имен программным образом ......Page 66
Ссылка на внешние сборки ......Page 67
Исследование сборки с помощью утилиты ildasm.exe ......Page 68
Просмотр метаданных типов ......Page 69
Независимая от платформы природа .NET ......Page 70
Несколько слов по поводу приложений Windows 8 ......Page 72
Построение приложений в стиле Metro ......Page 73
Роль .NET в среде Windows 8 ......Page 74
Резюме ......Page 76
Роль .NET Framework 4.5 SDK ......Page 77
Построение приложений C# с использованием csc.exe ......Page 78
Указание целевых входных и выходных параметров ......Page 79
Ссылка на внешние сборки ......Page 81
Компиляция нескольких файлов исходного кода ......Page 82
Работа с ответными файлами в C# ......Page 83
Построение приложений .NET с использованием Notepad++ ......Page 84
Построение приложений .NET с помощью SharpDevelop ......Page 85
Создание простого тестового проекта ......Page 86
Построение приложений .NET с помощью Visual Studio ......Page 88
Некоторые уникальные возможности Visual Studio ......Page 89
Использование утилиты Solution Explorer ......Page 90
Утилита Object Browser ......Page 92
Встроенная поддержка рефакторинга кода ......Page 93
Фрагменты кода и технология Surround With ......Page 95
Утилита Class Designer ......Page 97
Интегрированная система документации . NET Framework 4.5 SDK ......Page 99
Резюме ......Page 101
Часть II. Основы программирования на C# ......Page 102
Структура простой программы C# ......Page 103
Вариации метода Main() ......Page 105
Указание кода ошибки приложения ......Page 106
Обработка аргументов командной строки ......Page 107
Указание аргументов командной строки в Visual Studio ......Page 108
Интересное отступление от темы: некоторые дополнительные члены класса System.Environment ......Page 109
Knacc System.Console ......Page 110
Базовый ввод-вывод с помощью класса Console ......Page 111
Форматирование консольного вывода ......Page 112
Форматирование числовых данных ......Page 113
Системные типы данных и соответствующие ключевые слова C# ......Page 114
Объявление и инициализация переменных ......Page 116
Внутренние типы данных и операция new ......Page 117
Иерархия классов для типов данных ......Page 118
Члены числовых типов данных ......Page 119
Синтаксический разбор значений из строковых данных ......Page 120
Сборка System.Numerics.dll ......Page 121
Работа со строковыми данными ......Page 123
Конкатенация строк ......Page 124
Управляющие последовательности ......Page 125
Строки и равенство ......Page 126
Строки являются неизменяемыми ......Page 127
Тип System.Text.StringBuilder ......Page 128
Сужающие и расширяющие преобразования типов данных ......Page 129
Ключевое слово checked ......Page 132
Настройка проверки переполнения на уровне всего проекта ......Page 133
Ключевое слово unchecked ......Page 134
Понятие неявно типизированных локальных переменных ......Page 135
Ограничения неявно типизированных переменных ......Page 136
Польза от неявно типизированных локальных переменных ......Page 137
Итерационные конструкции С# ......Page 138
Цикл foreach ......Page 139
Циклы while и do/while ......Page 140
Операции равенства и сравнения ......Page 141
Оператор switch ......Page 142
Резюме ......Page 144
Методы и модификаторы параметров ......Page 145
Стандартное поведение передачи параметров по значению ......Page 146
Модификатор out ......Page 147
Модификатор ref ......Page 148
Модификатор params ......Page 149
Определение необязательных параметров ......Page 150
Вызов методов с использованием именованных параметров ......Page 151
Понятие перегрузки методов ......Page 153
Массивы в C# ......Page 155
Синтаксис инициализации массивов C# ......Page 156
Определение массива объектов ......Page 157
Работа с многомерными массивами ......Page 158
Использование массивов в качестве аргументов и возвращаемых значений ......Page 159
Базовый класс System.Array ......Page 160
Тип enum ......Page 161
Управление хранилищем, лежащим в основе перечисления ......Page 162
Объявление переменных типа перечисления ......Page 163
Тип System.Enum ......Page 164
Динамическое извлечение пар “имя/значение” перечисления ......Page 165
Типы структур ......Page 167
Создание переменных типа структур ......Page 168
Типы значений и ссылочные типы ......Page 169
Типы значений, ссылочные типы и операция присваивания ......Page 170
Типы значений, содержащие ссылочные типы ......Page 172
Передача ссылочных типов по значению ......Page 173
Передача ссылочных типов по ссылке ......Page 174
Заключительные детали относительно типов значений и ссылочных типов ......Page 175
Понятие типов, допускающих null, в C# ......Page 176
Работа с типами, допускающими null ......Page 177
Операция ?? ......Page 178
Резюме ......Page 179
Часть III. Объектно-ориентированное программирование на C# ......Page 180
Знакомство с типом класса C# ......Page 181
Размещение объектов с помощью ключевого слова new ......Page 183
Роль стандартного конструктора ......Page 184
Определение специальных конструкторов ......Page 185
Еще раз о стандартном конструкторе ......Page 186
Роль ключевого слова thi s ......Page 187
Построение цепочки вызовов конструкторов с использованием this ......Page 188
Обзор потока конструктора ......Page 191
Еще раз о необязательных аргументах ......Page 192
Понятие ключевого слова stаtiс ......Page 193
Определение статических полей данных ......Page 194
Определение статических методов ......Page 196
Определение статических конструкторов ......Page 197
Определение статических классов ......Page 199
Роль инкапсуляции ......Page 200
Роль наследования ......Page 201
Роль полиморфизма ......Page 202
Модификаторы доступа C# ......Page 203
Стандартные модификаторы доступа ......Page 204
Первый принцип: службы инкапсуляции C# ......Page 205
Инкапсуляция с использованием традиционных методов доступа и изменения 207 Инкапсуляция с использованием свойств .NET ......Page 208
Использование свойств внутри определения класса ......Page 211
Свойства, доступные только для чтения и только для записи ......Page 212
Еще раз о ключевом слове stаtiс: определение статических свойств ......Page 213
Понятие автоматических свойств ......Page 214
Взаимодействие с автоматическими свойствами ......Page 215
Замечания относительно автоматических свойств и стандартных значений ......Page 216
Понятие синтаксиса инициализации объектов ......Page 217
Вызов специальцых конструкторов с помощью синтаксиса инициализации ......Page 219
Инициализация вложенных типов ......Page 220
Работа с данными константных полей ......Page 221
Понятие полей, допускающих только чтение ......Page 222
Понятие частичных типов ......Page 223
Резюме ......Page 225
Базовый механизм наследования ......Page 226
Указание родительского класса для существующего класса ......Page 227
Ключевое слово seаled ......Page 229
Изменение диаграмм классов Visual Studio ......Page 230
Второй принцип ООП: подробности о наследовании ......Page 232
Управление созданием базового класса с помощью ключевого слова base ......Page 233
Хранение секретов семейства: ключевое слово protected ......Page 235
Реализация модели включения/делегации ......Page 236
Определения вложенных типов ......Page 238
Третий принцип ООП: поддержка полиморфизма в C# ......Page 239
Ключевые слова virtual и override ......Page 240
Переопределение виртуальных членов в IDE-среде Visual Studio ......Page 242
Абстрактные классы ......Page 243
Понятие полиморфного интерфейса ......Page 245
Сокрытие членов ......Page 248
Правила приведения к базовому и производному классу ......Page 250
Ключевое слово as ......Page 251
Главный родительский класс System.Object ......Page 252
Переопределение System.Object.ToString() ......Page 255
Переопределение System.Object.Equals() ......Page 256
Переопределение System.Object.GetHashCode() ......Page 257
Тестирование модифицированного класса Person ......Page 258
Резюме ......Page 259
Ода ошибкам и исключениям ......Page 260
Роль обработки исключений .NET ......Page 261
Строительные блоки обработки исключений в .NET ......Page 262
Базовый класс System. Exception ......Page 263
Простейший пример ......Page 264
Генерация общего исключения ......Page 266
Перехват исключений ......Page 267
Свойство TargetSite ......Page 268
Свойство StackTrace ......Page 269
Свойство Data ......Page 270
Исключенияуровня системы (System.SystemException) ......Page 272
Построение специальных исключений, способ первый ......Page 273
Построение специальных исключений, способ второй ......Page 275
Построение специальных исключений, способ третий ......Page 276
Обработка нескольких исключений ......Page 277
Общие операторы саtсh ......Page 279
Повторная генерация исключений ......Page 280
Внутренние исключения ......Page 281
Какие исключения могут генерировать методы? ......Page 282
Результат наличия необработанных исключений ......Page 283
Резюме ......Page 284
Понятие интерфейсных типов ......Page 286
Сравнение интерфейсных типов и абстрактных базовых классов ......Page 287
Определение специальных интерфейсов ......Page 289
Реализация интерфейса ......Page 291
Вызов членов интерфейса на уровне объектов ......Page 293
Получение ссьшок на интерфейсы: ключевое слово is ......Page 294
Использование интерфейсов в качестве параметров ......Page 295
Массивы интерфейсных типов ......Page 297
Реализация интерфейсов с использованием Visual Studio ......Page 298
Явная реализация интерфейсов ......Page 300
Проектирование иерархий интерфейсов ......Page 302
Множественное наследование посредством интерфейсных типов ......Page 303
Интерфейсы IEnumerable и IEnumerator ......Page 305
Построение методов итератора с применением ключевого слова yield ......Page 307
Построение именованного итератора ......Page 309
Интерфейс ICloneable ......Page 310
Более сложный пример клонирования ......Page 312
Интерфейс IComparable ......Page 314
Указание нескольких порядков сортировки посредством IComparer ......Page 317
Специальные свойства и специальные типы сортировки ......Page 318
Резюме ......Page 319
Часть IV. Дополнительные конструкции программирования на C# ......Page 320
Побудительные причины создания классов коллекций ......Page 321
Пространство имен System.Collections ......Page 323
Обзор пространстваимен System.Collections.Specialized ......Page 325
Проблема производительности ......Page 326
Проблемы с безопасностью типов ......Page 329
Первый взгляд на обобщенные коллекции ......Page 332
Роль параметров обобщенных типов ......Page 333
Указание параметров типа для обобщенных классов и структур ......Page 334
Указание параметров типов для обобщенных интерфейсов ......Page 335
Пространство имен System.Collections.Generic ......Page 337
Синтаксис инициализации коллекций ......Page 338
Работа с классом List ......Page 339
Работа с классом Queue ......Page 341
Работа с классом SortedSet ......Page 343
Работа с ObservableCollection ......Page 344
Создание специальных обобщенных методов ......Page 346
Выведение параметров типа ......Page 348
Создание специальных обобщенных структур и классов ......Page 350
Ключевое слово defаult в обобщенном коде ......Page 351
Примеры использования ключевого слова where ......Page 352
Недостаток ограничений операций ......Page 354
Резюме ......Page 355
Понятие типа делегата .NET ......Page 356
Определение типа делегата в C# ......Page 357
Базовые классы System.MulticastDelegate и System.Delegate ......Page 359
Пример простейшего делегата ......Page 361
Исследование объекта делегата ......Page 362
Отправка уведомлений о состоянии объекта с использованием делегатов ......Page 363
Включение группового вызова ......Page 366
Удаление целей из списка вызовов делегата ......Page 367
Синтаксис групповых преобразований методов ......Page 368
Понятие обобщенных делегатов ......Page 369
Обобщенные делегаты Action<> и Func<> ......Page 370
Понятие событий C# ......Page 372
Ключевое слово event ......Page 374
“За кулисами” событий ......Page 375
Прослушивание входящих событий ......Page 376
Упрощенная регистрация событий с использованием Visual Studio ......Page 377
Создание специальных аргументов событий ......Page 378
Понятие анонимных методов C# ......Page 380
Доступ к локальным переменным ......Page 382
Понятие лямбда-выражений ......Page 383
Анализ лямбда-выражения ......Page 385
Обработка аргументов внутри множества операторов ......Page 386
Лямбда-выражения с несколькими параметрами и без параметров ......Page 387
Усовершенствование примера PrimAndProperCarEvents за счет использования лямбда-выражений ......Page 388
Резюме ......Page 389
Понятие методов-индексаторов ......Page 390
Индексация данных с использованием строковых значений ......Page 392
Перегрузка методов-индексаторов ......Page 393
Многомерные индексаторы ......Page 394
Понятие перегрузки операций ......Page 395
Перегрузка бинарных операций ......Page 396
Перегрузка унарных операций ......Page 398
Перегрузка операций эквивалентности ......Page 399
Перегрузка операций сравнения ......Page 400
Числовые преобразования ......Page 401
Создание специальных процедур преобразования ......Page 402
Определение процедур неявного преобразования ......Page 405
Понятие расширяющих методов ......Page 407
Понятие анонимных типов ......Page 411
Определение анонимного типа ......Page 412
Работа с типами указателей ......Page 416
Ключевое слово unsafe ......Page 418
Небезопасная (и безопасная) функция обмена ......Page 420
Доступ к полям через указатели (операция ->) ......Page 421
Закрепление типа с помощью ключевого слова fixed ......Page 422
Ключевое слово sizeоf ......Page 423
Резюме ......Page 424
Программные конструкции, специфичные для LINQ ......Page 425
Синтаксис инициализации объектов и коллекций ......Page 426
Лямбда-выражения ......Page 427
Анонимные типы ......Page 428
Роль LINQ ......Page 429
Основные сборки LINQ ......Page 430
Применение запросов LINQ к элементарным массивам ......Page 431
Решение без использования LINQ ......Page 432
Рефлексия результирующего набора LINQ ......Page 433
LINQ и неявно типизированные локальные переменные ......Page 434
LINQ и расширяющие методы ......Page 435
Роль немедленного выполнения ......Page 436
Возврат результата запроса LINQ ......Page 437
Применение запросов LINQ к объектам коллекций ......Page 439
Доступ к содержащимся в контейнере подобъектам ......Page 440
Фильтрация данных с использованием OfType() ......Page 441
Исследование операций запросов LINQ ......Page 442
Базовый синтаксис выборки ......Page 443
Получение подмножества данных ......Page 444
Проецирование новых типов данных ......Page 445
Выражения сортировки ......Page 446
LINQ как лучшее средство построения диаграмм ......Page 447
Агрегатные операции LINQ ......Page 448
Внутреннее представление операторов запросов LINQ ......Page 449
Построение выражений запросов с использованием типа Enumerable и лямбда-выражений ......Page 450
Построение выражений запросов с использованием типа Enumerable и низкоуровневых делегатов ......Page 452
Резюме ......Page 453
Классы, объекты и ссылки ......Page 454
Базовые сведения о времени жизни объектов ......Page 455
Код CIL для ключевого слова new ......Page 456
Установка объектных ссылок в null ......Page 457
Роль корневых элементов приложения ......Page 458
Понятие поколений объектов ......Page 460
Фоновая сборка мусора в .NET 4.0 и последующих версиях ......Page 461
Тип System.GC ......Page 462
Принудительный запуск сборщика мусора ......Page 463
Построение финализируемых объектов ......Page 465
Переопределение System.Object.Finalize() ......Page 466
Описание процесса финализации ......Page 468
Создание освобождаемых объектов ......Page 469
Повторное использование ключевого слова using в С# ......Page 471
Создание финализируемых и освобождаемых типов ......Page 472
Формализованный шаблон освобождения ......Page 473
Ленивое создание объектов ......Page 475
Настройка процесса создания данных Lazу<> ......Page 478
Резюме ......Page 479
Часть V. Программирование с использованием сборок .NET ......Page 480
Определение специальных пространств имен ......Page 481
Устранение конфликтов между именами посредством полностью заданных имен 484 Устранение конфликтов между именами посредством псевдонимов ......Page 484
Создание вложенных пространств имен ......Page 486
Роль сборок .NET ......Page 487
Сборки являются единицами, поддерживающими версии ......Page 488
Заголовок файла Windows ......Page 489
Заголовок файла CLR ......Page 491
CIL-код, метаданные типов и манифест сборки ......Page 492
Построение и использование специальной библиотеки классов ......Page 493
Исследование манифеста ......Page 496
Исследование CIL-кода ......Page 498
Построение клиентского приложения на C# ......Page 499
Построение клиентского приложения на Visual Basic ......Page 501
Межъязыковое наследование в действии ......Page 502
Понятие процесса зондирования ......Page 503
Конфигурирование закрытых сборок ......Page 504
Роль файла Арр.Config ......Page 506
Понятие разделяемых сборок ......Page 507
Глобальный кеш сборок ......Page 508
Понятие строгих имен ......Page 509
Генерация строгих имен в командной строке ......Page 510
Гёнерация строгих имен в Visual Studio ......Page 512
Установка строго именованных сборок в GAC ......Page 513
Использование разделяемой сборки ......Page 514
Конфигурирование разделяемых сборок ......Page 516
Построение разделяемой сборки версии 2.0.0.0 ......Page 517
Динамическое перенаправление на специфичные версии разделяемой сборки ......Page 519
Понятие сборок политик издателя ......Page 521
Элeмeнт ......Page 522
Пространствоимен System.Configuration ......Page 524
Резюме ......Page 525
Потребность в метаданных типов ......Page 527
Просмотр (частичных) метаданных для перечисления EngineStаte ......Page 528
Просмотр (частичных) метаданных для типа Саr ......Page 529
Исследование блока TypeRef ......Page 530
Документирование строковых литералов ......Page 531
Понятие рефлексии ......Page 532
Получение информации о типе с помощью System. Object.GetType() ......Page 533
Получение информации о типе с помощью System.Type.GetType() ......Page 534
Рефлексия методов ......Page 535
Рефлексия реализованных интерфейсов ......Page 536
Реализация метода Main() ......Page 537
Рефлексия параметров и возвращаемых значений методов ......Page 539
Динамически загружаемые сборки ......Page 540
Рефлексия разделяемых сборок ......Page 542
Позднее связывание ......Page 544
Класс System.Activator ......Page 545
Вызов методов без параметров ......Page 546
Вызов методов с параметрами ......Page 547
Роль атрибутов .NET ......Page 548
Применение атрибутов в C# ......Page 549
Сокращенная нотация атрибутов C# ......Page 550
Атрибут [Obsolete] вдействии ......Page 551
Применение специальных атрибутов ......Page 552
Ограничение использования атрибутов ......Page 553
Атрибуты уровня сборки ......Page 554
Файл AssemblyInfo.cs, генерируемый Visual Studio ......Page 555
Рефлексия атрибутов с использованием раннего связывания ......Page 556
Рефлексия атрибутов с использованием позднего связывания ......Page 557
Возможное применение на практике рефлексии, позднего связывания и специальных атрибутов ......Page 558
Построение расширяемого приложения ......Page 559
Построение оснастки на C# ......Page 560
Построение оснастки на Visual Basic ......Page 561
Построение расширяемого приложения Windows Forms ......Page 562
Резюме ......Page 565
Роль ключевого слова dynamiс языка C# ......Page 566
Вызов членов на динамически объявленных данных ......Page 568
Роль сборки Microsoft.CSharp.dll ......Page 569
Область применения ключевого слова dynamic ......Page 570
Практическое применение ключевого слова dynamiс ......Page 571
Роль исполняющей среды динамического языка (DLR) ......Page 572
Роль пространства имен System. Dynamic ......Page 573
Упрощение вызовов с поздним связыванием посредством динамических типов ......Page 574
Использование ключевого слова dynami с для передачи аргументов ......Page 575
Упрощение взаимодействия с СОМ посредством динамических данных ......Page 577
Роль основных сборок взаимодействия ......Page 578
Встраивание метаданных взаимодействия ......Page 579
Общие сложности взаимодействия с СОМ ......Page 580
Взаимодействие с СОМ с использованием динамических данных C# ......Page 581
Взаимодействие с СОМ без использования динамических данных C# ......Page 584
Резюме ......Page 585
Роль процесса Windows ......Page 587
Роль потоков ......Page 588
Взаимодействие с процессами на платформе .NET ......Page 590
Перечисление выполняющихся процессов ......Page 592
Исследование набора потоков процесса ......Page 593
Исследование набора модулей процесса ......Page 595
Запуск и останов процессов программным образом ......Page 596
Управление запуском процесса с использованием класса ProcessStartInfo ......Page 597
Домены приложений .NET ......Page 598
Класс System.AppDomain ......Page 599
Взаимодействие со стандартным доменом приложения ......Page 600
Перечисление загруженных сборок ......Page 601
Создание новых доменов приложений ......Page 603
Загрузка сборок в специальные домены приложений ......Page 605
Выгрузка доменов приложений программным образом ......Page 606
Контекстные границы объектов ......Page 607
Исследование контекста объекта ......Page 608
Резюме ......Page 610
Причины для изучения грамматики языка CIL ......Page 611
Директивы, атрибуты и коды операций CIL ......Page 612
Роль кодов операций CIL ......Page 613
Основанная на стеке природа CIL ......Page 614
Возвратноепроектирование ......Page 616
Взаимодействие с CIL: модификация файла *.il ......Page 619
Компиляция CIL-кода с помощью ilasm.exe ......Page 621
Указание ссылок на внешние сборки в CIL ......Page 622
Определение пространств имен в CIL ......Page 623
Определение типов классов в CIL ......Page 624
Определение и реализация интерфейсов в CIL ......Page 625
Определение обобщений в CIL ......Page 626
Компиляция файла CILTypes . il ......Page 627
Определение членов типов в CIL ......Page 628
Определение конструкторов типа в CIL ......Page 629
Определение параметров членов ......Page 630
Исследование кодов операций CIL ......Page 631
Объявление локальных переменных в CIL ......Page 633
Отображение параметров на локальные переменные в CIL ......Page 634
Представление итерационных конструкций в CIL ......Page 635
Построение сборки CILCars.dll ......Page 636
Построение сборки CILCarClient.exe ......Page 638
Динамические сборки ......Page 640
Исследование пространства имен Sуstem.Refleсtiоn.Emit ......Page 641
Роль типа System.Reflection.Emit.ILGenerator ......Page 642
Выдача динамической сборки ......Page 643
Выдача сборки и набора модулей ......Page 644
Роль типа ModuleBuilder ......Page 645
Выдача типа HelloClass и строковой переменной-члена ......Page 646
Выдача конструкторов ......Page 647
Использование динамически сгенерированной сборки ......Page 648
Резюме ......Page 649
Часть VI. Введение в библиотеки базовых классов .NET ......Page 650
Глава 19. Многопоточное, параллельное и асинхронное программирование ......Page 651
Отношения между процессом, доменом приложения, контекстом и потоком ......Page 652
Роль синхронизации потоков ......Page 653
Краткий обзор делегатов .NET ......Page 654
Асинхронная природа делегатов ......Page 655
Интерфейс System.IAsyncResult ......Page 656
Синхронизация вызывающего потока ......Page 657
Роль делегата AsyncCallback ......Page 659
Роль класса AsyncResult ......Page 661
Передача и получение специальных данных состояния ......Page 662
Класс System.Threading.Thread ......Page 663
Свойство Name ......Page 665
Свойство Priority ......Page 666
Работа с делегатом ThreadStart ......Page 667
Работа с делегатом ParametrizedThreadStart ......Page 669
Класс AutoResetEvent ......Page 670
Потоки переднего плана и фоновые потоки ......Page 671
Проблемы параллелизма ......Page 672
Синхронизация с использованием ключевого слова lock языка C# ......Page 674
Синхронизация с использованием типа System.Threading.Monitor ......Page 676
Синхронизация с использованием типа System.Threading.Interlocked ......Page 677
Синхронизация с использованием атрибута [Synchronization] ......Page 678
Программирование с использованием обратных вызовов Timer ......Page 679
Пул потоков CLR ......Page 680
Роль класса Parallel ......Page 682
Обеспечение параллелизма данных с помощью класса Parallel ......Page 683
Доступ к элементам пользовательского интерфейса во вторичных потоках ......Page 685
Обработка запроса на отмену ......Page 687
Обеспечение параллелизма задач с помощью класса Parallel ......Page 688
Запросы Parallel LINQ (PLINQ) ......Page 691
Выполнение запроса PLINQ ......Page 692
Отмена запроса PLINQ ......Page 693
Знакомство с ключевыми словами async и await языка C# ......Page 694
Соглашения об именовании асинхронных методов ......Page 696
Асинхронные методы, возвращающие void ......Page 697
Модернизация примера AddWithThreads с использованием asycn/await ......Page 698
Резюме ......Page 700
Исследование пространства имен System. 10 ......Page 701
Классы Directory (DirectoryInfo) и File (FileInfo) ......Page 702
Абстрактный базовый класс FileSystemInfo ......Page 703
Работа с типом DirectoryInfo ......Page 704
Перечисление файлов с помощью типа DirectoryInfo ......Page 705
Создание подкаталогов с помощью типа DirectoryInfo ......Page 706
Работа с типом Directory ......Page 707
Работа с типом DriveInfo ......Page 708
Работа с классом FileInfo ......Page 709
Метод FileInfo.0pen() ......Page 710
Методы File0pen.0penRead() и FileInfo.OpenWrite() ......Page 711
Методы FileInfo.CreateText() и FileInfo.AppendText() ......Page 712
Дополнительные члены F i 1 e ......Page 713
Абстрактный класс Stream ......Page 714
Работа с классом FileStream ......Page 715
Работа с классами StreamWriter и StreamReader ......Page 716
Запись в текстовый файл ......Page 717
Чтение из текстового файла ......Page 718
Прямое создание экземпляров классов StreamWriter/StreamReader ......Page 719
Работа с классами StringWriter и StringReader ......Page 720
Работа с классами BinaryWriter и BinaryReader ......Page 721
Программное отслеживание файлов ......Page 722
Понятие сериализации объектов ......Page 724
Роль графов объектов ......Page 726
Определение сериализируемых типов ......Page 727
Открытые поля, закрытые поля и открытые свойства ......Page 728
Интерфейсы IFormatter и IRemotingFormatter ......Page 729
Точность типов среди форматеров ......Page 730
Сериализация объектов с использованием BinaryFormatter ......Page 731
Десериализация объектов с использованием BinaryFormatter ......Page 732
Сериализация объектов с использованием SoapFormatter ......Page 733
Сериализация объектов с использованием XmlSerializer ......Page 734
Управление генерацией данных XML ......Page 735
Сериализация коллекций объектов ......Page 736
Углубленный взгляд на сериализацию объектов ......Page 738
Настройка сериализации с использованием ISeriаlizable ......Page 739
Настройка сериализации с использованием атрибутов ......Page 742
Резюме ......Page 743
Высокоуровневое определение ADO.NET ......Page 744
Три грани ADO.NET ......Page 745
Поставщики данных ADO.NET ......Page 746
Поставщики данных ADO.NET от Microsoft ......Page 748
Дополнительные пространства имен ADO.NET ......Page 749
Типы из пространства имен System.Data ......Page 750
Роль интерфейса IDbTransaction ......Page 751
Роль интерфейсов IDbDataParameter и IDataParameter ......Page 752
Роль интерфейсов IDataReader и IDataRecord ......Page 753
Абстрагирование поставщиков данных с помощью интерфейсов ......Page 754
Повышение гибкости с помощью конфигурационных файлов приложения ......Page 756
Создание таблицы Inventory ......Page 757
Занесение тестовых записей в таблицу Inventory ......Page 759
Создание таблиц Customers и Orders ......Page 760
Визуальное создание отношений между таблицами ......Page 762
Модель фабрик поставщиков данных ADO.NET ......Page 763
Полный пример фабрики поставщиков данных ......Page 764
Потенциальный недостаток модели фабрик поставщиков данных ......Page 766
Элемент ......Page 767
Понятие подключенного уровня ADO.NET ......Page 768
Работа с объектами подключения ......Page 769
Работа с объектами ConnectionStringBuilder ......Page 771
Работа с объектами команд ......Page 772
Работа с объектами чтения данных ......Page 773
Создание многократно используемой библиотеки доступа к данным ......Page 775
Добавление логики вставки ......Page 777
Добавление логики удаления ......Page 778
Добавление логики выборки ......Page 779
Работа с параметризированными объектами команд ......Page 780
Выполнение хранимой процедуры ......Page 782
Реализация метода Main() ......Page 784
Реализация метода ListInventory() ......Page 786
Реализация метода InsertNewCar() ......Page 787
Реализация метода LookUpPetName() ......Page 788
Понятие транзакций базы данных ......Page 789
Основные члены объекта транзакции ADO.NET ......Page 790
Добавление метода транзакции в InventoryDAL ......Page 791
Тестирование транзакции базы данных ......Page 792
Резюме ......Page 793
Понятие автономного уровня ADO.NET ......Page 794
Основные методы класса DatаSet ......Page 796
Создание DataSet ......Page 797
Работа с объектами DataColumn ......Page 798
Построение объекта DataColumn ......Page 799
Добавление объектов DataColumn в DataTable ......Page 800
Работа с объектами DataRow ......Page 801
Свойство RowState ......Page 802
Свойство DataRowVersion ......Page 803
Работа с объектами DatаTable ......Page 804
Получение данных из объекта DataSet ......Page 805
Обработка данных из DataTable с использованием объектов DataTableReader 807 Сериализация объектов DataTable и DataSet в формате XML ......Page 807
Сериализация объектов DataTable и DataSet в двоичном формате ......Page 809
Привязка объектов DataTable к графическим пользовательским интерфейсам Windows Forms ......Page 810
Заполнение DataTable из обобщенного List ......Page 811
Удаление строк из DataTable ......Page 813
Выборка строк на основе критерия фильтрации ......Page 814
Обновление строк в DataTable ......Page 816
Работа с типом DataView ......Page 817
Работа с адаптерами данных ......Page 818
Простой пример адаптера данных ......Page 819
Отображение имен из базы данных на дружественные к пользователю имена ......Page 820
Определение начального класса ......Page 821
Конфигурирование адаптера данных с использованием SqlCommandBuilder ......Page 822
Реализация метода UpdateInventory() ......Page 823
Тестирование функциональности автономного уровня ......Page 824
Объекты DatаSet с несколькими таблицами и отношения между данными ......Page 825
Подготовка адаптеров данных ......Page 826
Построение отношений между таблицами ......Page 827
Навигация между связанными таблицами ......Page 828
Инструменты визуального конструирования баз данных Windows Forms ......Page 830
Визуальное проектирование элемента управления DataGridView ......Page 831
Исследование строго типизированного класса DatаSet ......Page 834
Исследование строго типизированного класса DataTable ......Page 835
Исследование строго типизированного адаптера данных ......Page 836
Завершение приложения Windows Forms ......Page 837
Изоляция строго типизированного кода работы с базой данных в библиотеке классов ......Page 838
Просмотр сгенерированного кода ......Page 839
Выборка данных с помощью сгенерированного кода ......Page 840
Вставка данных с помощью сгенерированного кода ......Page 841
Вызов хранимой процедуры с помощью сгенерированного кода ......Page 842
Программирование с помощью LINQ to DataSet ......Page 843
Получение объекта DataTable, совместимого с LINQ ......Page 845
Заполнение новых объектов DataTable из запросов LINQ ......Page 847
Резюме ......Page 848
Роль Entity Framework ......Page 849
Рольсущностей ......Page 851
Роль служб объектов ......Page 853
Роль клиента сущности ......Page 854
Роль файла *.edmx ......Page 855
Роль классов 0bjectContext и 0bjectSet ......Page 856
Собираем все вместе ......Page 857
Генерация файла * . edmx ......Page 858
Изменение формы сущностных данных ......Page 861
Просмотр отображений ......Page 863
Просмотр сгенерированного файла *.edmx ......Page 864
Просмотр сгенерированного исходного кода ......Page 866
Программирование с использованием концептуальной модели ......Page 868
Удаление записи ......Page 869
Обновление записи ......Page 870
Запросы с помощью LINQ to Entities ......Page 871
Запросы с помощью Entity SQL ......Page 872
Работа с объектом EntityDataReader ......Page 873
Роль навигационных свойств ......Page 874
Использование навигационных свойств внутри запросов LINQ to Entity ......Page 876
Вызов хранимой процедуры ......Page 877
Привязка данных сущностей к графическим пользовательским интерфейсам Windows Forms ......Page 878
Продолжение изучения API-интерфейсов доступа к данным в .NET ......Page 881
Резюме ......Page 882
История о двух API-интерфейсах XML ......Page 883
Синтаксис литералов Visual Basic как наилучший интерфейс LINQ to XML ......Page 885
Члены пространства имен System.Xml.Linq ......Page 886
Осевые методы LINQ to XML ......Page 888
Избыточность XName (и XNamespace) ......Page 889
Работа с XElement и XDocument ......Page 890
Генерация документов из массивов и контейнеров ......Page 892
Манипулирование XML-документом в памяти ......Page 893
Импорт файла Inventory.xml ......Page 894
Определение вспомогательного класса LINQ to XML ......Page 895
Связывание пользовательского интерфейса и вспомогательного класса ......Page 896
Резюме ......Page 897
Собрание API-интерфейсов распределенных вычислений ......Page 898
Роль DCOM ......Page 899
Роль служб COM+/Enterprise Services ......Page 900
Роль .NET Remoting ......Page 901
Роль веб-служб XML ......Page 902
Роль WCF ......Page 903
Обзор архитектуры, ориентированной на службы ......Page 904
WCF заключение ......Page 905
Исследование основных сборок WCF ......Page 906
Шаблоны проектов WCF в Visual Studio ......Page 907
Базовая структура приложения WCF ......Page 908
Понятие контрактов WCF ......Page 910
Понятие привязок WCF ......Page 911
Понятие адресов WCF ......Page 913
Построение службы WCF ......Page 915
Атрибут [ServiceContract] ......Page 916
Служебные типы как контракты операций ......Page 917
Хостинг службы WCF ......Page 918
Установка ABC внутри файла App. config ......Page 919
Указание базовых адресов ......Page 920
Подробный анализ типа ServiceHost ......Page 921
Включение обмена метаданными ......Page 923
Генерация кода прокси с использованием svcutil.exe ......Page 926
Генерация кода прокси с использованием Visual Studio ......Page 927
Конфигурирование привязки на основе TCP ......Page 929
Использование стандартных конечных точек ......Page 930
Открытие одной службы WCF, использующей множество привязок ......Page 931
Изменение параметров привязки WCF ......Page 933
Использование конфигурации стандартного поведения МЕХ ......Page 934
Обновление клиентского прокси и выбор привязки ......Page 935
Использование шаблона проекта WCF Service Library ......Page 936
Тестирование службы WCF с помощью WcfTestClient.exe ......Page 937
Изменение конфигурационных файлов с помощью SvcConfigEditor.exe ......Page 938
Хостинг службы WCF внутри Windows-службы ......Page 939
Указание ABC в коде ......Page 940
Создание программы установки для Windows-службы ......Page 942
Установка Windows-службы ......Page 943
Асинхронный вызов службы из клиента ......Page 944
Проектирование контрактов данных WCF ......Page 946
Использование веб-ориентированного шаблона проекта WCF Service ......Page 947
Реализация контракта службы ......Page 948
Тестирование службы ......Page 950
Резюме ......Page 951
Определение бизнес-процесса ......Page 952
Построение простого рабочего потока ......Page 953
Хостинг рабочего потока с использованием класса WorkflowInvoker ......Page 956
Хостинг рабочего потока с использованием класса WorkflowApplication ......Page 959
Знакомство с действиями рабочих потоков ......Page 960
Действия блок-схемы ......Page 961
Действия конечного автомата ......Page 962
Действия транзакций ......Page 963
Построение рабочего потока в виде блок-схемы ......Page 964
Подключение действий к блок-схеме ......Page 965
Работа с действием InvokeMethod ......Page 966
Определение переменных уровня рабочего потока ......Page 967
Работа с действием FlowDecision ......Page 968
Построение условия True ......Page 969
Работа с действием ForEach ......Page 970
Завершение приложения ......Page 972
Промежуточные итоги ......Page 973
Определение начального проекта ......Page 974
Импорт сборок и пространств имен ......Page 975
Определение аргументов рабочего потока ......Page 976
Определение переменных рабочего потока ......Page 977
Работа с действием Assign ......Page 978
Работа с действиями If и Switch ......Page 979
Построение специального действия кода ......Page 981
Использование библиотеки рабочего потока ......Page 983
Извлечение выходного аргумента рабочего потока ......Page 984
Резюме ......Page 985
Часть VII. Windows Presentation Foundation ......Page 986
Мотивация, лежащая в основе WPF ......Page 987
Унификация различных API-интерфейсов ......Page 988
Обеспечение оптимизированной модели визуализации ......Page 989
Упрощение программирования сложных пользовательских интерфейсов ......Page 990
Традиционные настольные приложения ......Page 991
Приложения XBAP ......Page 993
Отношения между WPF и SilverLight ......Page 994
Исследование сборок WPF ......Page 995
Роль класса Applicationп ......Page 997
Роль класса System.Windows.Controls.ContentControl ......Page 998
Роль класса System.Windows.Controls.Control ......Page 1000
Роль класса System.Windows.UIElement ......Page 1001
Построение приложения WPF без XAML ......Page 1002
Создание строго типизированного окна ......Page 1004
Создание простого пользовательского интерфейса ......Page 1005
Взаимодействие с данными уровня приложения ......Page 1006
Обработка закрытия объекта Window ......Page 1007
Перехват событий мыши ......Page 1008
Перехват клавиатурных событий ......Page 1009
Построение приложения WPF с использованием только XAML ......Page 1010
Определение объекта Window в XAML ......Page 1011
Обработка файлов XAML с помощью msbuild.exe ......Page 1013
Отображение XAML-разметки окна на код C# ......Page 1015
Роль BAML ......Page 1017
Отображение XAML-разметки приложения на код C# ......Page 1018
Введение в Kaxaml ......Page 1019
Пространства имен XAML XML и “ключевые слова” XAML ......Page 1021
Элементы XAML, атрибуты XAML и преобразователи типов ......Page 1023
Понятие присоединяемых свойств XAML ......Page 1025
Понятие расширений разметки XAML ......Page 1026
Добавление файла кода для класса MainWindow ......Page 1028
Добавление файла кода для класса MyApp ......Page 1029
Построение приложений WPF с использованием Visual Studio ......Page 1030
Панель инструментов и визуальный конструктор/редактор XAML ......Page 1031
Обработка событий с использованием окна Properties ......Page 1033
Обработка событий в редакторе XAML ......Page 1034
Построение специального редактора XAML с помощью Visual Studio ......Page 1035
Проектирование графического пользовательского интерфейса окна ......Page 1036
Реализация события Loaded ......Page 1037
Реализация события Сliсk объекта Buttоn ......Page 1038
Тестированиеприложения ......Page 1039
Изучение документации WPF ......Page 1040
Резюме ......Page 1041
Обзор основных элементов управления WPF ......Page 1042
Элементы управления InkAPI ......Page 1043
Подробные сведения находятся в документации ......Page 1044
Краткий обзор визуального конструктора WPF в Visual Studio ......Page 1045
Работа с редактором Document Outline ......Page 1046
Управление компоновкой содержимого с использованием панелей ......Page 1047
Позиционирование содержимого внутри панелей Canvas ......Page 1050
Позиционирование содержимого внутри панелей WrарPаnel ......Page 1051
Позиционирование содержимого внутри панелей StackPanel ......Page 1052
Позиционирование содержимого внутри панелей Grid ......Page 1053
Позиционирование содержимого внутри панелей DockPanel ......Page 1056
Конфигурирование панелей с использованием визуальных конструкторов VisuadStudio ......Page 1057
Построение окна с использованием вложенных панелей ......Page 1060
Построение системы меню ......Page 1061
Построениепанелиинструментов ......Page 1064
Завершение проектирования пользовательского интерфейса ......Page 1065
Реализация логики проверки правописания ......Page 1066
Объекты внутренних команд ......Page 1067
Подключение команд к свойству Command ......Page 1068
Подключение команд к произвольным действиям ......Page 1069
Работа с командами Open и Save ......Page 1070
Более глубокий взгляд на API-интерфейсы и элементы управления WPF ......Page 1072
Работа с элементом управления TabControl ......Page 1073
Построение вкладки Ink API ......Page 1074
Проектирование панели инструментов ......Page 1075
Обработка событий для вкладки InkАРI ......Page 1077
Элeмeнт yпpaвлeния InkCanvas ......Page 1079
Элемент управления ComboBox ......Page 1081
Сохранение, загрузка и очистка данных InkCanvas ......Page 1083
Диспетчеры компоновки документа ......Page 1084
Построение вкладки Documents ......Page 1085
Наполнение FlowDocument с помощью кода ......Page 1086
Включение аннотаций и “клейких” заметок ......Page 1087
Сохранение и загрузка потокового документа ......Page 1088
Построение вкладки Data Binding ......Page 1090
Установка привязки данных с использованием Visual Studio ......Page 1091
Свойство DataContext ......Page 1092
Преобразование данных с использованием IValueConverter ......Page 1093
Установка привязок данных в коде ......Page 1094
Построение вкладки DataGrid ......Page 1095
Резюме ......Page 1096
Службы графической визуализации WPF ......Page 1097
Варианты графической визуализации WPF ......Page 1098
Визуализация графических данных с использованием фигур ......Page 1099
Добавление прямоугольников, эллипсов и линий на поверхность Canvas ......Page 1101
Удаление прямоугольников, эллипсов и линий с поверхности Canvas ......Page 1104
Работа с элементами Polyline и Polygon ......Page 1105
Работа с элементом Path ......Page 1106
Кисти и перья WPF ......Page 1109
Конфигурирование кистей с использованием Visual Studio ......Page 1110
Конфигурирование кистей в коде ......Page 1111
Конфигурированйеперьев ......Page 1112
Применение графических трансформаций ......Page 1113
Трансформация данных Canvas ......Page 1114
Построение начальной компоновки ......Page 1117
Применение трансформаций на этапе проектирования ......Page 1118
Трансформация холста в коде ......Page 1119
Визуализация графических данных с использованием рисунков и геометрий ......Page 1120
Построение кисти DrawingBrush с использованием геометрий ......Page 1121
Рисование с помощью DrawingBrush ......Page 1122
Включение типов Drawing в DrawingImage ......Page 1123
Экспорт файла с примером графики в виде XAML ......Page 1124
Импорт графических данных в проект WPF ......Page 1126
Взаимодействие с объектами изображения ......Page 1127
Базовый класс Visual и производные дочерние классы ......Page 1128
Первый взгляднакласс DrawingVisual ......Page 1129
Визуализация графических данных в специальном диспетчере компоновки ......Page 1131
Реагирование на операции проверки попадания ......Page 1132
Резюме ......Page 1134
Система ресурсов WPF ......Page 1135
Работа с двоичными ресурсами ......Page 1136
Программная загрузка изображения ......Page 1138
Определение ресурсов уровня окна ......Page 1141
Расширение разметки {DynamicResource} ......Page 1144
Ресурсы уровня приложения ......Page 1145
Определение объединенных словарей ресурсов ......Page 1146
Определение сборки, включающей только ресурсы ......Page 1147
Роль классов анимации ......Page 1149
Свойства To, From и By ......Page 1150
Реализация анимации в коде C# ......Page 1151
Управление темпом анимации ......Page 1152
Запуск в обратном порядке и циклическое выполнение анимации ......Page 1153
Реализация анимации в разметке XAML ......Page 1154
Роль триггеров событий ......Page 1155
Анимация с использованием дискретных ключевых кадров ......Page 1156
Определение и применение стиля ......Page 1157
Автоматическое применение стиля с помощью TargetType ......Page 1158
Роль неименованных стилей ......Page 1159
Определение стилей с триггерами ......Page 1160
Анимированные стили ......Page 1161
Применениестилейвкоде ......Page 1162
Резюме ......Page 1163
Роль свойств зависимости ......Page 1164
Знакомство с существующим свойством зависимости ......Page 1166
Построение специального свойства зависимости ......Page 1169
Добавление процедуры проверки достоверности данных ......Page 1173
Реагирование на изменение свойства ......Page 1174
Маршрутизируемые события ......Page 1175
Продолжение или прекращение пузырькового распространения ......Page 1176
Роль маршрутизируемых туннельных событий ......Page 1177
Программный просмотр логического дерева ......Page 1179
Программный просмотр визуального дерева ......Page 1180
Программный просмотр стандартного шаблона элемента управления ......Page 1182
Построение специального шаблона элемента управления с помощью инфраструктуры триггеров ......Page 1185
Шаблоны как ресурсы ......Page 1186
Встраивание визуальных подсказок с использованием триггеров ......Page 1187
Роль расширения разметки {TemplateBinding} ......Page 1188
Роль класса ContentPresenter ......Page 1189
Включение шаблонов в стили ......Page 1190
Резюме ......Page 1191
Часть VIII. ASP.NET Web Forms ......Page 1192
Роль протокола HTTP ......Page 1193
Веб-приложенияивеб-серверы ......Page 1194
Роль виртуальных каталогов IIS ......Page 1195
Роль языка HTML ......Page 1196
Структура HTML-документа ......Page 1197
Инструменты визуального конструктора HTML в Visual Studio ......Page 1198
Построение HTML-формы ......Page 1199
Роль сценариев клиентской стороны ......Page 1201
Пример сценария клиентской стороны ......Page 1202
Обратная отправка веб-серверу ......Page 1203
Обзор API-интерфейса ASP.NET ......Page 1204
Основные функциональные возможности ASP.NET 2.0 и последующих версий ......Page 1205
Основные функциональные возможности ASP.NET 3.5 (и .NET 3.5 SP1) и последующих версий ......Page 1206
Построение однофайловой веб-страницы ASP. NET ......Page 1207
Проектирование пользовательского интерфейса ......Page 1209
Добавление логики доступа к данным ......Page 1210
Роль директив ASP.NET ......Page 1212
Aнaлиз блoкa script ......Page 1213
Анализ объявлений элементов управления ASP. NET ......Page 1214
Построение веб-страницы ASP NET с использованием файлов кода ......Page 1215
Изменение файла кода ......Page 1217
Отладка и трассировка страниц ASP.NET ......Page 1218
Сравнение веб-сайтов и веб-приложений ASP.NET ......Page 1219
Ссылка на сборки ......Page 1221
Цепочка наследования для типа Page ......Page 1222
Взаимодействие с входящим HTTP-запросом ......Page 1224
Получение статистики о браузере ......Page 1225
Свойство IsPostBack ......Page 1226
Взаимодействие с исходящим НТТР-ответом ......Page 1227
Перенаправление пользователей ......Page 1228
Жизненный цикл веб-страницы ASP.NET ......Page 1229
Событие Errоr ......Page 1230
Poльфaйлaweb.config ......Page 1232
Резюме ......Page 1233
Природа веб-элементов управления ......Page 1234
Обработка событий серверной стороны ......Page 1235
Свойство AutoPostBack ......Page 1236
Перечисление содержащихся элементов управления ......Page 1237
Динамическое добавление и удаление элементов управления ......Page 1240
Взаимодействие с динамически созданными элементами управления ......Page 1241
Основные категории веб-элементов управления ASP.NET ......Page 1242
Построение примера веб-сайта ASP. NET ......Page 1244
Работа с мастер-страницами ......Page 1245
Определение стандартной страницы содержимого Default.aspx ......Page 1251
Проектирование страницы содержимого Inventory.aspx ......Page 1253
Проектирование страницы содержимого BuildCar.aspx ......Page 1257
Роль элементов управления проверкой достоверности ......Page 1260
Элемент управления RequiredFieldValidator ......Page 1262
Элемент управления CompareValidator ......Page 1263
Создание итоговой панели проверки достоверности ......Page 1264
Определение групп проверки достоверности ......Page 1265
Работа с темами ......Page 1267
Файлы *.skin ......Page 1268
Свойство SkinID ......Page 1270
Программное назначение тем ......Page 1271
Резюме ......Page 1272
Проблема поддержки состояния ......Page 1273
Приемы управления состоянием ASP.NET ......Page 1275
Демонстрация работы с состоянием представления ......Page 1276
Рольфайла Global.asax ......Page 1278
Глобальный обработчик исключений “последнего шанса” ......Page 1280
Поддержка данных состояния уровня приложения ......Page 1281
Модификация данных приложения ......Page 1284
Работа с кешем приложения ......Page 1285
Использование кеширования данных ......Page 1286
Модификация файла *.aspx ......Page 1288
Поддержка данных сеанса ......Page 1290
Дополнительные члены класса HttpSessionState ......Page 1292
Cookie-наборы ......Page 1293
Создание соокiе-наборов ......Page 1294
Чтение входящих cookie-данных ......Page 1295
Хранение данных сеанса на сервере состояния сеансов ASP. NET ......Page 1296
Хранение информации о сеансах в выделенной базе данных ......Page 1297
База данных ASPNETDB.mdf ......Page 1298
Определение пользовательского профиля в web.config ......Page 1299
Программный доступ к данным профиля ......Page 1300
Группирование данных профиля и сохранение специальных объектов ......Page 1302
Резюме ......Page 1304
Предметный указатель ......Page 1305