Язык программирования С# 2008 и платформа .NET 3.5
Эндрю Троелсен
Версия .NET 3.5 привнесла с собой как десятки новых языковых средств C#, так и множество новых API-интерфейсов .NET. В этой книге вы найдете полное описание всех нововведений в характерной для автора дружественной к читателю манере. Помимо прочего, подробно рассматривается язык LINQ, изменения, появившиеся в новой версии языка C# 2008 (автоматические свойства, методы расширений, анонимные типы и т.д.), а также множество функциональных средств среды Visual Studio 2008.
Благодаря этой книге, вы изучите:
- все, что необходимо для быстрого и эффективного перехода на новую версию языка C# 2008;
- все новые возможности и средства .NET 3.5 - LINQ, анонимные типы, методы расширений, автоматические свойства и т.п.;
- все, что требуется для построения приложений профессионального уровня;
- все, что позволит стать экспертом во всех аспектах .NET 3.5, включая сборки, удаленное выполнение, Windows Forms, Web Forms, WPF, WCF, WF, ADO.NET, веб-службы XML и многое другое.
Издательство: Вильямс, 2010 г.
Смотрите также более новое издание книги: Язык программирования C# 2010 и платформа .NET 4
ISBN 978-5-8459-1589-4, 978-1-59-059884-9
Количество страниц: 1344.
Содержание книги «Язык программирования С# 2008 и платформа .NET 3.5»:
- 31 Об авторе
- 31 О техническом редакторе
- 31 Благодарности
- 32 Введение
- 32 Автор и читатель — одна команда
- 33 Краткий обзор содержания
- 33 Часть I. Общие сведения о языке C# и платформе .NET
- 34 Часть II. Главные конструкции программирования на C#
- 35 Часть III. Дополнительные конструкции программирования на C#
- 36 Часть IV. Программирование с использованием сборок .NET
- 38 Часть V. Введение в библиотеки базовых классов .NET
- 39 Часть VI. Настольные пользовательские интерфейсы
- 40 Часть VII. Построение веб-приложений с использованием ASP.NET
- 41 Часть VIII. Приложения
- 42 Исходный код примеров
- 42 От издательства
- 43 ЧАСТЬ I. Общие сведения о языке C# и платформе .NET
- 44 Глава 1. Философия .NET
- 44 Предыдущее состояние дел
- 45 Подход C/Win32 API
- 45 Подход C++/MFC
- 45 Подход Visual Basic 6.0
- 46 Подход Java/J2EE
- 46 Подход COM
- 47 Подход Windows DNA
- 48 Решение .NET
- 48 Знакомство с главными компонентами платформы .NET (CLR, CTS и CLS)
- 49 Роль библиотек базовых классов
- 49 Что привносит язык C#
- 51 Другие языки программирования с поддержкой .NET
- 53 Жизнь в многоязычном окружении
- 53 Что собой представляют сборки в .NET
- 55 Однофайловые и многофайловые сборки
- 55 Роль CIL
- 57 Преимущества CIL
- 58 Компиляция CIL-кода в инструкции, ориентированные на конкретную платформу
- 58 Роль метаданных типов .NET
- 59 Роль манифеста сборки
- 60 Что собой представляет общая система типов (CTS)
- 60 Типы классов
- 61 Типы интерфейсов
- 61 Типы структур
- 62 Типы перечислений
- 62 Типы делегатов
- 62 Члены типов
- 63 Встроенные типы данных CTS
- 64 Что собой представляет общеязыковая спецификация (CLS)
- 6 Обеспечение гарантии соответствия CLS
- 66 Что собой представляет общеязыковая исполняющая среда (CLR)
- 67 Различия между сборками, пространствами имен и типами
- 70 Роль, которую исполняют пространства имен Microsoft
- 71 Получение доступа к пространствам имен программным образом
- 72 Добавление ссылок на внешние сборки
- 73 Изучение сборки с помощью утилиты ildasm.exe
- 74 Просмотр CIL-кода
- 74 Просмотр метаданных типов
- 74 Просмотр метаданных сборки (т.е. манифеста)
- 75 Изучение сборки с помощью утилиты Reflector
- 76 Развертывание исполняющей среды .NET
- 76 Не зависимая от платформы природа .NET
- 78 Резюме
- 44 Предыдущее состояние дел
- 79 Глава 2. Создание приложений на языке C#
- 79 Роль, которую исполняет .NET Framework 3.5 SDK
- 80 Окно командной строки Visual Studio
- 81 Построение приложений на C# с использованием csc.exe
- 82 Указание целевых входных и выходных параметров
- 83 Добавление ссылок на внешние сборки
- 84 Добавление ссылок на несколько внешних сборок
- 84 Компиляция нескольких файлов исходного кода
- 85 Работа с ответными файлами в C#
- 87 Создание .NET-приложений с использованием TextPad
- 87 Активизация функции выделения ключевых слов C# цветом
- 87 Настройка фильтра файлов *.cs
- 89 Подключение к csc.exe
- 90 Ассоциирование команд выполнения с пунктами меню
- 91 Создание приложений .NET с использованием Notepad++
- 92 Настройка списка вариантов для автоматического завершения кода
- 92 Создание .NET-приложений с использованием SharpDevelop
- 93 Построение простого тестового проекта
- 95 Создание .NET-приложений с использованием Visual C# 2008 Express
- 95 Некоторые уникальные функциональные возможности Visual C# Express
- 96 Создание .NET-приложений с использованием Visual Studio 2008
- 97 Некоторые уникальные функциональные возможности Visual Studio 2008
- 97 Ориентирование на .NET Framework с использованием диалогового окна New Project
- 98 Использование утилиты Solution Explorer
- 100 Утилита Class View
- 100 Утилита Object Browser
- 101 Встроенная поддержка для рефакторинга программного кода
- 103 Возможности для расширения и завертывания кода в определенный контекст
- 104 Утилита Class Designer
- 107 Инструмент Object Test Bench
- 108 Интегрированная система документации .NET Framework 3.5
- 109 Дополнительные средства разработки .NET-приложений
- 109 Резюме
- 79 Роль, которую исполняет .NET Framework 3.5 SDK
- 111 ЧАСТЬ II. Главные конструкции программирования на C#
- 112 Глава 3. Главные конструкции программирования на C#: часть I
- 112 Разбор простой программы на C#
- 114 Варианты метода Main()
- 114 Спецификация кода ошибки в приложении
- 116 Обработка аргументов командной строки
- 118 Указание аргументов командной строки в Visual Studio 2008
- 118 Интересное отклонение от темы: некоторые дополнительные члены класса System.Environment
- 119 Класс System.Console
- 120 Базовый ввод и вывод с помощью Console
- 121 Форматирование консольного вывода
- 122 Форматирование числовых данных
- 123 Форматирование числовых данных за пределами консольных приложений
- 124 Системные типы данных и их сокращенное обозначение в C#
- 125 Объявление и инициализация переменных
- 127 Применение ключевого слова new для внутренних типов данных
- 127 Иерархия классов типов данных
- 129 Члены числовых типов данных
- 130 Члены System.Boolean
- 130 Члены System.Char
- 131 Выполнение синтаксического анализа значений из строковых данных
- 131 Тип System.String
- 132 Базовые операции манипулирования строками
- 133 Конкатенация строк
- 134 Управляющие последовательности символов
- 135 Определение дословных строк
- 135 Строки и равенство
- 136 Неизменная природа строк
- 138 Тип System.Text.StringBuilder
- 139 Типы System.DateTime и System.TimeSpan
- 140 Сужающие и расширяющие преобразования типов данных
- 142 Перехват сужающих преобразований данных
- 144 Настройка проверки переполнения в масштабах всего проекта
- 145 Ключевое слово unchecked
- 145 Роль System.Convert
- 145 Итерационные конструкции в С#
- 146 Цикл for
- 146 Цикл foreach
- 147 Конструкции while и do/while
- 147 Конструкции принятия решений и операции отношения и равенства
- 148 Оператор if/else
- 149 Оператор switch
- 150 Резюме
- 112 Разбор простой программы на C#
- 151 Глава 4. Главные конструкции программирования на C#: часть II
- 151 Методы и модификаторы параметров
- 152 Используемое по умолчанию поведение для передачи параметров
- 153 Модификатор out
- 154 Модификатор ref
- 155 Модификатор params
- 157 Перегрузка методов
- 159 Манипулирование массивами в C#
- 160 Синтаксис инициализации массивов в C#
- 161 Определение массива объектов
- 162 Работа с многомерными массивами
- 163 Использование массивов в качестве параметров (и возвращаемых значений)
- 164 Базовый класс System.Array
- 165 Тип enum
- 166 Управление базовым типом, используемым для хранения значений перечислений
- 167 Объявление и использование перечислений
- 168 Тип System.Enum
- 168 Динамическое обнаружение пар имя/значение перечисления
- 171 Типы структур
- 172 Создание переменных структур
- 173 Типы-значения и ссылочные типы
- 174 Типы-значения, ссылочные типы и операция присваивания
- 176 Типы-значения, содержащие ссылочные типы
- 178 Передача ссылочных типов по значению
- 179 Передача ссылочных типов по ссылке
- 180 Типы-значения и ссылочные типы: заключительные детали
- 181 Нулевые типы в C#
- 183 Работа с нулевыми типами
- 183 Операция ??
- 184 Резюме
- 151 Методы и модификаторы параметров
- 185 Глава 5. Определение инкапсулированных типов классов
- 185 Знакомство с типом класса C#
- 187 Размещение объектов с помощью ключевого слова new
- 188 Понятие конструктора класса
- 189 Роль конструктора по умолчанию
- 189 Определение специальных конструкторов
- 190 Еще раз о конструкторе по умолчанию
- 191 Роль ключевого слова this
- 193 Построение цепочки вызовов конструкторов с использованием this
- 195 Обзор потока конструктора
- 196 Понятие ключевого слова static
- 197 Определение статических методов (и полей)
- 197 Определение статических данных
- 200 Определение статических конструкторов
- 201 Определение статических классов
- 203 Основы объектно-ориентированного программирования
- 203 Роль инкапсуляции
- 204 Роль наследования
- 205 Роль полиморфизма
- 206 Модификаторы доступа C#
- 207 Модификаторы доступа по умолчанию
- 208 Модификаторы доступа и вложенные типы
- 208 Первый принцип: службы инкапсуляции C#
- 209 Инкапсуляция с использованием традиционных методов доступа и изменения
- 210 Инкапсуляция с использованием свойств типа
- 212 Внутреннее представление свойств
- 214 Управление уровнями видимости операторов get/set свойств
- 214 Свойства, доступные только для чтения и только для записи
- 215 Статические свойства
- 216 Понятие константных данных
- 217 Понятие полей только для чтения
- 218 Статические поля только для чтения
- 218 Понятие частичных типов
- 219 Документирование исходного кода C# посредством XML
- 221 Генерация файла XML
- 223 Трансформация XML-комментариев кода посредством NDoc
- 224 Визуализация плодов нашего труда
- 225 Резюме
- 185 Знакомство с типом класса C#
- 226 Глава 6. Понятия наследования и полиморфизма
- 226 Базовый механизм наследования
- 227 Спецификация родительского класса
- 228 О множественном наследовании
- 229 Ключевое слово sealed
- 230 Изменение диаграмм классов Visual Studio
- 231 Второй принцип: подробности о наследовании
- 233 Управление созданием базового класса с помощью ключевого слова base
- 235 Хранение фамильных тайн: ключевое слово protected
- 235 Добавление герметизированного класса
- 236 Реализация модели включения/делегации
- 238 Понятие определения вложенных типов
- 239 Третий принцип: поддержка полиморфизма в C#
- 240 Ключевые слова virtual и override
- 242 Переопределение виртуальных членов в Visual Studio 2008
- 243 Герметизированные виртуальные члены
- 243 Понятие абстрактных классов
- 245 Построение полиморфного интерфейса
- 248 Понятие сокрытия членов
- 250 Понятие правил приведения к базовому и производному классу
- 251 Ключевое слово as
- 252 Ключевое слово is
- 252 Родительский главный класс System.Object
- 255 Переопределение System.Object.ToString()
- 256 Переопределение System.Object.Equals()
- 257 Переопределение System.Object.GetHashCode()
- 257 Тестирование модифицированного класса Person
- 258 Статические члены System.Object
- 258 Резюме
- 226 Базовый механизм наследования
- 259 Глава 7. Структурированная обработка исключений
- 259 Ода ошибкам и исключениям
- 260 Роль обработки исключений в .NET
- 261 Элементы обработки исключений в .NET
- 262 Базовый класс System.Exception
- 263 Простейший пример
- 265 Выдача обобщенного исключения
- 266 Перехват исключений
- 267 Конфигурирование состояния исключения
- 267 Свойство TargetSite
- 268 Свойство StackTrace
- 269 Свойство HelpLink
- 270 Свойство Data
- 271 Исключения системного уровня (System.SystemException)
- 272 Исключения уровня приложения (System.ApplicationException)
- 273 Создание специальных исключений, способ первый
- 275 Создание специальных исключений, способ второй
- 276 Создание специальных исключений, способ третий
- 277 Обработка множества исключений
- 279 Обобщенные операторы catch
- 279 Передача исключений
- 280 Внутренние исключения
- 281 Блок finally
- 282 Какие исключения могут выдавать методы
- 283 К чему приводят необработанные исключения
- 283 Отладка необработанных исключений в Visual Studio
- 284 Резюме
- 285 Глава 8. Время жизни объектов
- 285 Классы, объекты и ссылки
- 286 Базовые сведения о времени жизни объектов
- 287 CIL-код для new
- 288 Установка для объектных ссылок значения null
- 289 Роль, которую исполняют корневые элементы приложения
- 291 Поколения объектов
- 292 Тип System.GC
- 293 Принудительная активизация процесса сборки мусора
- 296 Создание финализируемых объектов
- 297 Переопределение System.Object.Finalize()
- 299 Детали процесса финализации
- 299 Создание самоочищаемых объектов
- 302 Повторное использование ключевого слова using в C#
- 303 Создание финализируемых и самоочищаемых типов
- 304 Формализованный шаблон очистки
- 306 Резюме
- 307 ЧАСТЬ III. Дополнительные конструкции программирования на C#
- 308 Глава 9. Работа с интерфейсами
- 308 Что собой представляют типы интерфейсов
- 310 Сравнение типов интерфейсов с абстрактными базовыми классами
- 312 Определение специальных интерфейсов
- 314 Реализация интерфейса
- 316 Вызов членов интерфейса на уровне объектов
- 317 Получение ссылок на интерфейсы с помощью ключевого слова as
- 317 Получение ссылок на интерфейсы с помощью ключевого слова is
- 318 Использование интерфейсов в качестве параметров
- 319 Использование интерфейсов в качестве возвращаемых значений
- 320 Массивы типов интерфейсов
- 321 Реализация интерфейсов в Visual Studio 2008
- 322 Устранение конфликтов на уровне имен за счет явной реализации интерфейсов
- 325 Проектирование иерархий интерфейсов
- 326 Множественное наследование в случае типов интерфейсов
- 328 Создание перечислимых типов (IEnumerable и IEnumerator)
- 331 Создание методов итераторов с использованием ключевого слова yield
- 332 Создание именованного итератора
- 333 Внутреннее представление метода итератора
- 334 Создание клонируемых объектов (ICloneable)
- 336 Более сложный пример клонирования
- 339 Создание сравнимых объектов (IComparable)
- 341 Указание нескольких критериев для сортировки (IComparer)
- 343 Использование специальных свойств и специальных типов для сортировки
- 343 Интерфейсы обратного вызова
- 347 Резюме
- 308 Что собой представляют типы интерфейсов
- 348 Глава 10. Коллекции и обобщения
- 348 Интерфейсы пространства имен System.Collections
- 349 Роль ICollection
- 350 Роль IDictionary
- 350 Роль IDictionaryEnumerator
- 351 Роль IList
- 351 Типы классов System.Collections
- 352 Работа с типом ArrayList
- 353 Работа с типом Queue
- 354 Работа с типом Stack
- 355 Пространство имен System.Collections.Specialized
- 356 Связь между упаковкой, распаковкой и System.Object
- 358 Проблема с операциями упаковки/распаковки
- 359 Проблема безопасности типов и строго типизированные коллекции
- 359 Построение специальной коллекции
- 361 Проблемы упаковки и строго типизированные коллекции
- 363 Пространство имен System.Collections.Generic
- 364 Исследование типа List<T>
- 366 Создание специальных обобщенных методов
- 367 Выведение параметра-типа
- 369 Создание обобщенных структур и классов
- 369 Ключевое слово default в обобщенном коде
- 371 Создание специальной обобщенной коллекции
- 372 Ограничения специальных обобщенных коллекций
- 373 Ограничение параметров-типов с помощью ключевого слова where
- 375 Недостаток ограничений операций
- 375 Создание обобщенных базовых классов
- 376 Создание обобщенных интерфейсов
- 378 Резюме
- 348 Интерфейсы пространства имен System.Collections
- 379 Глава 11. Делегаты, события и лямбда-выражения
- 379 Понятие типа делегата .NET
- 380 Определение делегата на C#
- 382 Базовые классы System.MulticastDelegate и System.Delegate
- 384 Простейший из возможных пример делегата
- 385 Исследование объекта делегата
- 386 Усовершенствование типа Car с помощью делегатов
- 389 Включение группового вызова
- 390 Удаление цели из списка вызовов делегата
- 391 Более сложный пример делегата
- 392 Делегаты как параметры
- 394 Анализ кода делегата
- 395 Понятие ковариантности делегатов
- 397 Создание обобщенных делегатов
- 398 Эмуляция обобщенных делегатов без обобщений
- 399 Понятие событий C#
- 400 Ключевое слово event
- 401 «За кулисами» событий
- 402 Прослушивание входящих событий
- 403 Упрощенная регистрация событий с использованием Visual Studio 2008
- 404 Аккуратное и правильное событие
- 406 Обобщенный делегат EventHandler<T>
- 406 Понятие анонимных методов C#
- 408 Доступ к «внешним» переменным
- 408 Понятие групповых преобразований методов
- 410 Лямбда-операция C# 2008
- 412 Анализ лямбда-выражения
- 413 Обработка аргументов внутри множественных операторов
- 414 Усовершенствование примера CarDelegate с использованием лямбда-выражений
- 415 Лямбда-выражения с несколькими (или нулем) параметров
- 417 Резюме
- 418 Глава 12. Индексаторы, операции и указатели
- 418 Понятие методов-индексаторов
- 420 Индексация объектов с использованием строковых значений
- 421 Перегруженные методы-индексаторы
- 422 Внутреннее представление методов-индексаторов
- 422 Многомерные индексаторы
- 423 Определения индексаторов в интерфейсных типах
- 423 Понятие перегрузки операций
- 424 Перегрузка бинарных операций
- 426 А как насчет операций += и -=?
- 427 Перегрузка унарных операций
- 428 Перегрузка операций эквивалентности
- 428 Перегрузка операций сравнения
- 429 Внутреннее представление перегруженных операций
- 431 Финальные соображения относительно перегрузки операций
- 432 Понятие преобразований пользовательских типов
- 432 Числовые преобразования
- 432 Преобразования между связанными типами классов
- 433 Создание специальных процедур преобразования
- 435 Дополнительные явные преобразования типа Square
- 436 Определение процедур неявного преобразования
- 437 Внутреннее представление процедур пользовательских преобразований
- 438 Работа с типами указателей
- 440 Ключевое слово unsafe
- 441 Работа с операциями * и &
- 441 Небезопасная и безопасная функции Swap
- 442 Доступ к полям через указатели (операция ->)
- 443 Ключевое слово stackalloc
- 443 Закрепление типа ключевым словом fixed
- 444 Ключевое слово sizeof
- 445 Директивы препроцессора C#
- 445 Указание областей кода
- 446 Условная компиляция кода
- 448 Резюме
- 418 Понятие методов-индексаторов
- 449 Глава 13. Средства языка C# 2008
- 449 Понятие неявно типизированных локальных переменных
- 450 Использование var внутри конструкций foreach
- 451 Ограничения неявно типизированных переменных
- 452 Неявно типизированные локальные массивы
- 453 Неявно типизированные данные — это строго типизированные данные
- 453 Удобство неявно типизированных локальных переменных
- 454 Понятие автоматических свойств
- 455 Взаимодействие с автоматическими свойствами
- 456 Ограничение доступа к автоматическим свойствам
- 456 Автоматические свойства и значения по умолчанию
- 457 Понятие расширяющих методов
- 458 Определение расширяющих методов
- 459 Вызов расширяющих методов на уровне экземпляра
- 460 Статический вызов расширяющих методов
- 460 Область действия расширяющего метода
- 461 Импорт типов, определяющих расширяющие методы
- 462 Расширяющие методы в IntelliSense
- 463 Построение и использование расширяющих библиотек
- 464 Расширение интерфейсных типов посредством расширяющих методов
- 466 Понятие частичных методов
- 466 Первый взгляд на частичные методы
- 468 Применение частичных методов
- 468 Синтаксис инициализаторов объектов
- 470 Вызов специальных конструкторов с синтаксисом инициализации
- 471 Инициализация вложенных типов
- 472 Понятие инициализации коллекций
- 472 Понятие анонимных типов
- 473 Внутреннее представление анонимных типов
- 475 Реализация ToString() и GetHashCode()
- 475 Семантика эквивалентности анонимных типов
- 477 Анонимные типы, содержащие в себе анонимные типы
- 477 Резюме
- 449 Понятие неявно типизированных локальных переменных
- 478 Глава 14. Введение в LINQ
- 478 Роль LINQ
- 479 Выражения LINQ — строго типизированы и расширяемы
- 480 Основные сборки LINQ
- 481 Первый взгляд на выражения запросов LINQ
- 483 LINQ и неявно типизированные локальные переменные
- 484 LINQ и расширяющие методы
- 485 Роль отложенного выполнения
- 486 Роль немедленного выполнения
- 487 LINQ и обобщенные коллекции
- 487 Применение выражения LINQ
- 488 LINQ и необобщенные коллекции
- 489 Фильтрация данных с использованием OfTyle<T>()
- 489 Внутреннее представление операций запросов LINQ
- 490 Построение выражений запросов из операций запросов
- 491 Построение выражений запросов с использованием типа Enumerable и лямбда-выражений
- 492 Построение выражений запросов с использованием перечислимого типа и анонимных методов
- 492 Построение выражений запросов с использованием перечислимого типа и «сырых» делегатов
- 493 Исследование операций запросов C# LINQ
- 494 Получение счетчиков с использованием Enumerable
- 495 Построение нового тестового проекта
- 500 Запросы LINQ: вещь в себе?
- 501 Трансформация результатов запроса в типы массивов
- 502 Резюме
- 478 Роль LINQ
- 503 ЧАСТЬ IV. Программирование с использованием сборок .NET
- 504 Глава 15. Сборки .NET
- 504 Определение специальных пространств имен
- 506 Полностью квалифицированное имя типа
- 507 Определение псевдонимов с помощью ключевого слова using
- 508 Создание вложенных пространств имен
- 509 Пространство имен, используемое в Visual Studio 2008 по умолчанию
- 510 Роль сборок .NET
- 510 Сборки повышают возможность повторного использования кода
- 511 Сборки определяют границы типов
- 511 Сборки являются единицами, поддерживающими версии
- 511 Сборки являются самоописываемыми
- 511 Сборки поддаются конфигурированию
- 512 Формат сборки .NET
- 512 Заголовок файла Win32
- 513 Заголовок файла CLR
- 513 CIL-код, метаданные типов и манифест сборки
- 514 Необязательные ресурсы сборки
- 514 Однофайловые и многофайловые сборки
- 515 Создание и использование однофайловой сборки
- 519 Изучение манифеста
- 520 Исследование CIL-кода
- 521 Исследование метаданных типов
- 521 Создание клиентского приложения на C#
- 523 Создание клиентского приложения на Visual Basic
- 524 Межъязыковое наследование в действии
- 524 Создание и использование многофайловой сборки
- 526 Исследование файла ufo.netmodule
- 526 Исследование файла airvehicles.dll
- 526 Использование многофайловой сборки
- 527 Приватные сборки
- 528 Идентичность приватной сборки
- 528 Процесс зондирования
- 529 Конфигурирование приватных сборок
- 531 Конфигурационные файлы и Visual Studio 2008
- 531 Утилита .NET Framework Configuration
- 533 Разделяемые сборки
- 534 Строгие имена
- 535 Назначение строгого имени сборке CarLibrary.dll
- 537 Назначение строгих имен в Visual Studio 2008
- 537 Установка и удаление разделяемых сборок из GAC
- 538 Использование разделяемой сборки
- 539 Изучение манифеста SharedCarLibClient
- 540 Конфигурирование разделяемых сборок
- 541 Фиксация текущей версии разделяемой сборки
- 541 Создание разделяемой сборки версии 2.0.0.0
- 543 Динамическое перенаправление к конкретным версиям разделяемой сборки
- 544 Использование утилиты .NET Framework Configuration
- 545 Изучение внутреннего устройства GAC
- 546 Сборки политик издателя
- 547 Отключение политик издателя
- 548 Элемент <codeBase>
- 549 Пространство имен System.Configuration
- 550 Конфигурационный файл машины
- 551 Резюме
- 504 Определение специальных пространств имен
- 552 Глава 16. Рефлексия типов, позднее связывание и программирование с использованием атрибутов
- 552 Необходимость в метаданных типов
- 553 Просмотр части метаданных перечисления EngineState
- 554 Просмотр части метаданных типа Car
- 555 Изучение блока TypeRef
- 555 Просмотр метаданных самой сборки
- 556 Просмотр метаданных внешних сборок, на которые ссылается текущая сборка
- 556 Просмотр метаданных строковых литералов
- 557 Рефлексия
- 557 Класс System.Type
- 558 Получение информации о типе с помощью System.Object.GetType()
- 559 Получение информации о типе с помощью System.Type.GetType()
- 559 Получение информации о типе с помощью typeof()
- 560 Создание специальной программы для просмотра метаданных
- 560 Рефлексия методов
- 560 Рефлексия полей и свойств
- 561 Рефлексия реализуемых интерфейсов
- 561 Отображение различных дополнительных деталей
- 562 Реализация Main()
- 563 Рефлексия обобщенных типов
- 563 Рефлексия параметров и возвращаемых значений методов
- 565 Динамически загружаемые сборки
- 567 Рефлексия разделяемых сборок
- 568 Позднее связывание
- 569 Класс System.Activator
- 570 Вызов методов без параметров
- 570 Вызов методов с параметрами
- 571 Программирование с использованием атрибутов
- 572 Потребители атрибутов
- 572 Применение предопределенных атрибутов в C#
- 574 Указание параметров конструктора для атрибутов
- 575 Атрибут [Obsolete] в действии
- 575 Сокращенное обозначение атрибутов в C#
- 576 Создание специальных атрибутов
- 576 Применение специальных атрибутов
- 577 Синтаксис именованных свойств
- 577 Ограничение использования атрибутов
- 578 Атрибуты уровня сборки (и уровня модуля)
- 579 Файл AssemblyInfo.cs в Visual Studio 2008
- 580 Рефлексия атрибутов с использованием раннего связывания
- 581 Рефлексия атрибутов с использование позднего связывания
- 582 Возможное применение рефлексии, позднего связывания и специальных атрибутов на практике
- 583 Создание расширяемого приложения
- 583 Создание CommonSnappableTypes.dll
- 584 Создание оснастки на C#
- 585 Создание подключаемого компонента в Visual Basic .NET
- 585 Создание расширяемого приложения Windows Forms
- 588 Резюме
- 552 Необходимость в метаданных типов
- 589 Глава 17. Процессы, домены приложений и контексты объектов
- 589 Повторный обзор традиционных процессов Win32
- 590 Общая информация о потоках
- 592 Взаимодействие с процессами в рамках платформы .NET
- 594 Перечисление выполняющихся процессов
- 595 Изучение конкретного процесса
- 595 Изучение ряда потоков внутри процесса
- 597 Изучение модулей внутри процесса
- 598 Запуск и остановка процессов программным образом
- 599 Домены приложений .NET
- 601 Перечисление доменов приложений процесса
- 602 Создание новых доменов приложений программным образом
- 604 Выгрузка доменов приложений программным образом
- 605 Границы контекстов объектов
- 605 Контекстно-свободные и контекстно-зависимые типы
- 607 Определение контекстно-зависимых объектов
- 607 Инспектирование контекста объекта
- 609 Подведение итогов по процессам доменам приложений и контекстам
- 609 Резюме
- 589 Повторный обзор традиционных процессов Win32
- 610 Глава 18. Создание многопоточных приложений
- 610 Отношение между процессами, доменами приложений, контекстами и потоками
- 612 Проблемы параллелизма
- 612 Роль синхронизации потоков
- 613 Краткое описание делегатов .NET
- 615 Асинхронная природа делегатов
- 615 Методы BeginInvoke() и EndInvoke()
- 616 Интерфейс System.IAsyncResult
- 616 Вызов метода асинхронным образом
- 617 Синхронизация вызывающего потока
- 618 Роль делегата AsyncCallback
- 620 Роль класса AsyncResult
- 620 Передача и получение специальных данных о состоянии
- 621 Пространство имен System.Threading
- 622 Класс System.Threading.Thread
- 623 Получение статистических данных о текущем потоке
- 624 Свойство Name
- 625 Свойство Priority
- 625 Создание вторичных потоков программным образом
- 626 Работа с делегатом ThreadStart
- 628 Работа с делегатом ParameterizedThreadStart
- 629 Приоритетные и фоновые потоки
- 630 Проблемы, связанные с одновременным доступом
- 632 Синхронизация с помощью ключевого слова lock в C#
- 634 Синхронизация с помощью типа System.Threading.Monitor
- 635 Синхронизация с помощью типа System.Threading.Interlocked
- 636 Синхронизация с помощью атрибута [Synchronization]
- 637 Программирование с использованием обратных вызовов таймеров
- 639 Пул потоков CLR
- 641 Роль компонента BackgroundWorker
- 641 Работа с типом BackgroundWorker
- 643 Обработка данных с помощью типа BackgroundWorker
- 644 Резюме
- 610 Отношение между процессами, доменами приложений, контекстами и потоками
- 645 Глава 19. Язык CIL и роль динамических сборок
- 645 Природа программирования в терминах CIL
- 646 Директивы, атрибуты и коды операций в CIL
- 647 Роль директив CIL
- 647 Роль атрибутов CIL
- 647 Роль кодов операций CIL
- 647 Разница между кодами операций и их мнемоническими эквивалентами в CIL
- 648 Помещение и извлечение данных из стека в CIL
- 650 Двунаправленное проектирование
- 653 Роль меток в коде CIL
- 653 Взаимодействие с CIL: модификация файла *.il
- 654 Компиляция CIL-кода с помощью ilasm.exe
- 656 Компиляция CIL-кода с помощью SharpDevelop
- 656 Роль peverify.exe
- 657 Директивы и атрибуты CIL
- 657 Добавление ссылок на внешние сборки в CIL
- 658 Определение текущей сборки в CIL
- 659 Определение пространств имен в CIL
- 659 Определение типов классов в CIL
- 660 Определение и реализация интерфейсов
- 661 Определение структур в CIL
- 661 Определение перечислений
- 662 Определение обобщений в CIL
- 662 Компиляция файла CILTypes.il
- 663 Соответствия между типами данных в библиотеке базовых классов .NET, C# и CIL
- 664 Определение членов типов в CIL
- 664 Определение полей данных
- 665 Определение конструкторов для типов в CIL
- 665 Определение свойств
- 666 Определение параметров членов
- 667 Изучение кодов операций в CIL
- 669 Директива .maxstack
- 670 Объявление локальных переменных в CIL
- 671 Отображение параметров на локальные переменные в CIL
- 671 Скрытая ссылка this
- 672 Представление итерационных конструкций в CIL
- 672 Создание сборки .NET на CIL
- 673 Создание CILCars.dll
- 675 Создание CILCarClient.exe
- 677 Динамические сборки
- 678 Пространство имен System.Reflection.Emit
- 678 Роль System.Reflection.Emit.ILGenerator
- 679 Создание динамической сборки
- 681 Генерация сборки и набора модулей
- 682 Роль типа ModuleBuilder
- 683 Генерация типа HelloClass и принадлежащей ему строковой переменной
- 684 Генерация конструкторов
- 685 Генерация метода SayHello()
- 685 Использование динамически сгенерированной сборки
- 686 Резюме
- 687 ЧАСТЬ V. Введение в библиотеки базовых классов .NET
- 688 Глава 20. Файловый ввод-вывод и изолированное хранилище
- 688 Исследование пространства имен System.IO
- 689 Типы Directory (DirectoryInfo) и File (FileInfo)
- 690 Абстрактный базовый класс FileSystemInfo
- 691 Работа с типом DirectoryInfo
- 692 Перечисление файлов с помощью типа DirectoryInfo
- 693 Создание подкаталогов с помощью типа DirectoryInfo
- 694 Работа с типом Directory
- 695 Работа с типом DriveInfo
- 696 Работа с классом FileInfo
- 697 Метод FileInfo.Create()
- 697 Метод FileInfo.Open()
- 698 Методы FileOpen.OpenRead() и FileInfo.OpenWrite()
- 699 Метод FileInfo.OpenText()
- 699 Методы FileInfo.CreateText() и FileInfo.AppendText()
- 700 Работа с типом File
- 700 Дополнительные члены File
- 701 Абстрактный класс Stream
- 703 Работа с классом FileStream
- 704 Работа с StreamWriter и StreamReader
- 705 Запись в текстовый файл
- 706 Чтение из текстового файла
- 707 Прямое создание экземпляров типов StreamWriter/StreamReader
- 707 Работа с типами StreamWriter и StreamReader
- 708 Работа с BinaryWriter и BinaryReader
- 710 Программное «слежение» за файлами
- 712 Выполнение асинхронного файлового ввода-вывода
- 713 Роль изолированного хранилища
- 713 Вопрос доверия
- 714 Другие применения программного интерфейса изолированного хранилища
- 715 Пример использования Code Access Security
- 716 Роль признаков
- 718 Роль групп кода
- 721 Роль наборов привилегий
- 723 Наблюдение CAS в действии
- 724 Обзор изолированного хранилища
- 725 Область изолированного хранилища
- 726 Нахождение изолированного хранилища
- 727 Взаимодействие с изолированным хранилищем с помощью storeadm.exe
- 728 Типы System.IO.IsolatedStorage
- 729 Получение хранилища посредством IsolatedStorageFile
- 730 Запись данных в хранилище
- 731 Чтение данных из хранилища
- 731 Удаление пользовательских данных из хранилища
- 732 Создание специальной структуры каталогов
- 733 Изолированное хранилище в действии: развертывание ClickOnce
- 733 Атрибут IsolatedStorageFilePermission
- 734 Ограничение зоны безопасности
- 734 Публикация приложения на веб-сервере
- 735 Просмотр результатов
- 736 Резюме
- 737 Глава 21. Введение в сериализацию объектов
- 737 Понятие сериализации объектов
- 739 Роль графов объектов
- 740 Конфигурирование объектов для сериализации
- 740 Определение сериализуемых типов
- 741 Общедоступные поля, приватные поля и общедоступные свойства
- 742 Выбор форматера сериализации
- 742 Интерфейсы IFormatter и IRemotingFormatter
- 743 Точность типов среди форматеров
- 744 Сериализация объектов с использованием BinaryFormatter
- 745 Десериализация объектов с использованием BinaryFormatter
- 746 Сериализация объектов с использованием SoapFormatter
- 747 Сериализация объектов с использованием XmlSerializer
- 748 Контроль сгенерированных данных XML
- 749 Сериализация коллекций объектов
- 750 Настройка процесса сериализации
- 751 Углубленный взгляд на сериализацию объектов
- 752 Настройка сериализации с использованием ISerializable
- 754 Настройка сериализации с использованием атрибутов
- 755 Резюме
- 737 Понятие сериализации объектов
- 756 Глава 22. ADO.NET, часть I: подключенный уровень
- 756 Высокоуровневое определение ADO.NET
- 758 Две стороны ADO.NET
- 758 Поставщики данных ADO.NET
- 759 Поставщики данных ADO.NET от Microsoft
- 761 Получение сторонних поставщиков данных ADO.NET
- 761 Дополнительные пространства имен ADO.NET
- 762 Типы из пространства имен System.Data
- 763 Роль интерфейса IDbConnection
- 764 Роль интерфейса IDbTransaction
- 764 Роль интерфейса IDbCommand
- 764 Роль интерфейсов IDbDataParameter и IDataParameter
- 765 Роль интерфейсов IDbDataAdapter и IDataAdapter
- 765 Роль интерфейсов IDataReader и IDataRecord
- 766 Абстрагирование поставщиков данных с помощью интерфейсов
- 768 Повышение гибкости с помощью конфигурационных файлов приложения
- 769 Создание базы данных AutoLot
- 770 Создание таблицы Inventory
- 772 Создание хранимой процедуры GetPetName()
- 772 Создание таблиц Customers и Orders
- 774 Визуальное создание отношений между таблицами
- 775 Модель фабрики поставщиков данных ADO.NET
- 776 Зарегистрированные фабрики поставщиков данных
- 776 Полный пример фабрики поставщиков данных
- 779 Возможные трудности с моделью фабрики поставщиков
- 779 Элемент <connectionStrings>
- 780 Подключенный уровень ADO.NET
- 781 Работа с объектами подключения
- 783 Работа с объектами ConnectionStringBuilder
- 784 Работа с объектами команд
- 785 Работа с объектами чтения данных
- 787 Получение множественных результатов с помощью объекта чтения данных
- 788 Создание повторно используемой библиотеки доступа к данным
- 789 Добавление логики подключения
- 789 Добавление логики вставки
- 790 Добавление логики удаления
- 790 Добавление логики изменения
- 791 Добавление логики выборки
- 792 Работа с параметризованными объектами команд
- 794 Выполнение хранимой процедуры
- 795 Создание консольного пользовательского интерфейса
- 795 Реализация метода Main()
- 797 Реализация метода ShowInstructions()
- 797 Реализация метода ListInventory()
- 798 Реализация метода DeleteCar()
- 798 Реализация метода InsertNewCar()
- 798 Реализация метода UpdateCarPetName()
- 799 Реализация метода LookUpPetName()
- 800 Асинхронный доступ к данным с помощью SqlCommand
- 801 Транзакции баз данных
- 802 Основные члены объекта транзакции ADO.NET
- 803 Добавление метода транзакции в InventoryDAL
- 804 Тестирование транзакции в нашей базе данных
- 805 Резюме
- 756 Высокоуровневое определение ADO.NET
- 806 Глава 23. ADO.NET, часть II: автономный уровень
- 806 Знакомство с автономным уровнем ADO.NET
- 807 Роль объектов DataSet
- 808 Основные свойства класса DataSet
- 809 Основные методы класса DataSet
- 809 Создание DataSet
- 810 Работа с объектами DataColumn
- 811 Создание объекта DataColumn
- 812 Включение автоинкрементных полей
- 812 Добавление объектов DataColumn в DataTable
- 813 Работа с объектами DataRow
- 814 Свойство RowState
- 815 Свойство DataRowVersion
- 816 Работа с объектами DataTable
- 817 Вставка объектов DataTable в DataSet
- 818 Обработка данных из DataTable с помощью объектов DataTableReader
- 819 Сериализация объектов DataTable и DataSet в формате XML
- 820 Сериализация объектов DataTable и DataSet в двоичном формате
- 821 Привязка объектов DataTable к пользовательским интерфейсам
- 822 Заполнение DataTable из обобщенного List<T>
- 824 Программное удаление строк
- 825 Выборка строк с помощью фильтра
- 828 Изменение строк
- 829 Работа с типом DataView
- 830 Последнее усовершенствование интерфейса: вывод номеров строк
- 831 Заполнение объектов DataSet и DataTable с помощью адаптеров данных
- 832 Простой пример адаптера данных
- 833 Замена имен из базы данных более понятными названиями
- 834 Пересмотр AutoLotDAL.dll
- 834 Определение начального класса
- 834 Настройка адаптера данных с помощью SqlCommandBuilder
- 836 Реализация метода GetAllInventory()
- 836 Реализация метода UpdateInventory()
- 836 Создание клиентского интерфейса на основе Windows Forms
- 837 Навигация по объектам DataSet для нескольких таблиц
- 838 Подготовка адаптеров данных
- 839 Создание отношений между таблицами
- 840 Изменение таблиц базы данных
- 840 Переходы между взаимосвязанными таблицами
- 842 Средства доступа к данным в Visual Studio 2008
- 843 Визуальное проектирование элементов DataGridView
- 846 Файлы App.config и Settings.Settings
- 847 Анализ сгенерированного DataSet
- 848 Анализ сгенерированных объектов DataTable и DataRow
- 850 Анализ сгенерированного адаптера данных
- 850 Использование сгенерированных типов в коде
- 852 Отделение сгенерированного кода от уровня пользовательского интерфейса
- 854 Клиентская часть пользовательского интерфейса: MultitabledDataSetApp (Redux)
- 855 Резюме
- 856 Глава 24. Программирование с использованием API-интерфейсов LINQ
- 856 Роль LINQ to ADO.NET
- 857 Программирование с помощью LINQ to DataSet
- 858 Роль расширений DataSet
- 859 Получение DataTable, совместимого с LINQ
- 860 Роль метода расширения DataRowExtensions.Field<T>()
- 861 Заполнение новых DataTable из LINQ-запросов
- 862 Программирование с помощью LINQ to SQL
- 862 Роль классов сущностей
- 863 Роль типа DataContext
- 863 Простой пример применения LINQ to SQL
- 865 Создание строго типизированного DataContext
- 866 Более подробно об атрибутах [Table] и [Column]
- 867 Генерация классов сущностей с помощью SqlMetal.exe
- 868 Анализ сгенерированных классов сущностей
- 870 Определение отношений с помощью классов сущностей
- 870 Строго типизированный DataContext
- 871 Программирование или сгенерированные типы
- 872 Создание классов сущностей с помощью Visual Studio 2008
- 874 Вставка новых элементов
- 875 Изменение существующих элементов
- 875 Удаление существующих элементов
- 876 Работа с XML-документами с помощью LINQ to XML
- 876 LINQ to XML в качестве лучшего DOM
- 876 Пространство имен System.Xml.XLinq
- 877 Программное создание XML-документов
- 879 Генерация документов из LINQ-запросов
- 879 Загрузка и просмотр XML-содержимого
- 880 Навигация по документу, находящемуся в памяти
- 881 Изменение данных в XML-документе
- 882 Резюме
- 883 Глава 25. Введение в Windows Communication Foundation
- 883 Программные интерфейсы распределенных вычислений
- 884 Роль DCOM
- 885 Роль служб COM+/Enterprise Services
- 886 Роль MSMQ
- 886 Роль .NET Remoting
- 887 Роль веб-служб XML
- 890 Именованные каналы, сокеты и P2P
- 890 Роль WCF
- 891 Обзор средств WCF
- 891 Обзор сервис-ориентированной архитектуры
- 892 WCF: итоги
- 893 Исследование основных сборок WCF
- 894 Шаблоны проектов WCF в Visual Studio
- 895 Шаблон проекта WCF Service Website
- 896 Базовая композиция приложения WCF
- 897 Понятие ABC WCF
- 897 Понятие контрактов WCF
- 898 Понятие привязок WCF
- 901 Понятие адресов WCF
- 902 Построение службы WCF
- 904 Атрибут [ServiceContract]
- 905 Атрибут [OperationContract]
- 905 Служебные типы как контракты операций
- 906 Хостинг службы WCF
- 906 Установка ABC внутри файла App.config
- 907 Кодирование с использованием типа ServiceHost
- 908 Опции кодирования хоста
- 909 Подробный анализ типа ServiceHost
- 911 Подробный анализ элемента <system.serviceModel>
- 912 Включение обмена метаданными
- 914 Построение клиентского приложения WCF
- 914 Генерация кода прокси с использованием svcutil.exe
- 915 Генерация кода прокси с использованием Visual Studio 2008
- 916 Конфигурирование привязки на базе TCP
- 918 Использование шаблона проекта WCF Service Library
- 918 Построение простой математической службы
- 919 Тестирование службы WCF с помощью WcfTestClient.exe
- 919 Изменение конфигурационных файлов с помощью SvcConfigEditor.exe
- 921 Хостинг службы WCF в виде службы Windows
- 921 Спецификация ABC в коде
- 922 Включение MEX
- 923 Создание инсталлятора службы Windows
- 924 Инсталляция службы Windows
- 924 Асинхронный вызов службы
- 926 Проектирование контрактов данных WCF
- 927 Использование веб-ориентированного шаблона проекта WCF Service
- 929 Реализация контракта службы
- 930 Роль файла *.svc
- 930 Обновление файла Web.config
- 930 Тестирование службы
- 931 Резюме
- 883 Программные интерфейсы распределенных вычислений
- 932 Глава 26. Введение в Windows Workflow Foundation
- 932 Определение бизнес-процесса
- 933 Роль WF
- 933 Строительные блоки WF
- 934 Исполняющая система WF
- 935 Службы ядра WF
- 936 Первый взгляд на действия WF
- 937 Последовательные потоки и конечные автоматы
- 939 Сборки, пространства имен и проекты WF
- 940 Поддержка .NET 3.5 WF
- 940 Шаблоны проектов рабочих процессов Visual Studio
- 941 Проектирование рабочего потока
- 942 Построение простого приложения рабочего потока
- 942 Исследование начального кода рабочего потока
- 943 Добавление действия Code
- 944 Добавление действия While
- 946 Исследование кода хостинга механизма WF
- 947 Добавление специальных параметров запуска
- 949 Вызов веб-служб внутри рабочих потоков
- 949 Создание MathWebService
- 951 Построение WF-клиента веб-службы
- 952 Конфигурирование действия IfElse
- 954 Конфигурирование действий InvokeWebService
- 956 Взаимодействие со службами WCF с использованием типа SendActivity
- 960 Построение многократно используемой библиотеки кода WF
- 961 Выполнение проверки кредитоспособности
- 964 Создание клиентского приложения Windows Forms
- 966 Несколько слов о специальных действиях
- 966 Резюме
- 932 Определение бизнес-процесса
- 968 ЧАСТЬ VI. Настольные пользовательские интерфейсы
- 969 Глава 27. Программирование с использованием Windows Forms
- 970 Пространства имен Windows Forms
- 971 Построение простого приложения Windows Forms (без IDE-среды)
- 972 Наполнение коллекции элементов управления
- 974 Роль System.EventArgs и System.EventHandler
- 975 Шаблон проекта Windows Forms Application в Visual Studio
- 975 Поверхность визуального дизайнера
- 977 Внутренняя структура начальной формы
- 979 Внутренняя структура класса Program
- 979 Визуальное построение системы меню
- 982 Внутренняя структура формы
- 983 Функциональность класса Control
- 985 Функциональность класса Form
- 987 Жизненный цикл типа Form
- 989 Реагирование на действия мыши
- 990 Определение кнопки мыши, которой выполнен щелчок
- 991 Реагирование на действия клавиатуры
- 992 Проектирование диалоговых окон
- 994 Свойство DialogResult
- 994 Конфигурирование порядка табуляции
- 995 Мастер Tab Order Wizard
- 995 Установка в форме кнопки ввода по умолчанию
- 996 Отображение диалоговых окон
- 997 Понятие наследования форм
- 999 Визуализация графических данных с использованием GDI+
- 1000 Пространство имен System.Drawing
- 1001 Роль типа Graphics
- 1002 Получение объекта Graphics через событие Paint
- 1003 Объявление клиентской области формы недействительной
- 1004 Построение полноценного приложения Windows Forms
- 1004 Построение системы главного меню
- 1005 Определение типа ShapeData
- 1006 Определение типа ShapePickerDialog
- 1007 Добавление инфраструктуры к типу MainWindow
- 1007 Реализация функциональности меню Tools
- 1008 Захват и визуализация графического вывода
- 1010 Реализация логики сериализации
- 1011 Резюме
- 1012 Глава 28. Введение в Windows Presentation Foundation и XAML
- 1012 Мотивация, лежащая в основе WPF
- 1013 Унификация различных API-интерфейсов
- 1014 Обеспечение отделения функциональности через XAML
- 1014 Обеспечение оптимизированной модели визуализации
- 1015 Дополнительные средства WPF
- 1015 Различные варианты приложений WPF
- 1015 Традиционные настольные приложения
- 1016 WPF-приложения на основе навигации
- 1016 Приложения XBAP
- 1018 Приложения Silverlight
- 1018 Исследование сборок WPF
- 1019 Роль класса Application
- 1020 Роль класса Window
- 1021 Роль класса System.Windows.Controls.ContentControl
- 1022 Роль класса System.Windows.Controls.Control
- 1023 Роль класса System.Windows.FrameworkElement
- 1023 Роль класса System.Windows.UIElement
- 1024 Роль класса System.Windows.Media.Visual
- 1024 Роль класса System.Windows.DependencyObject
- 1025 Роль класса System.Windows.Threading.DispatcherObject
- 1025 Построение (свободного от XAML) приложения WPF
- 1027 Расширение типа класса Window
- 1027 Создание простого пользовательского интерфейса
- 1029 Дополнительные детали типа Application
- 1029 Данные приложения и обработка аргументов командной строки
- 1030 Итерация по коллекции Windows в Application
- 1030 Дополнительные события типа Application
- 1031 Дополнительные детали типа Window
- 1031 Жизненный цикл объекта Window
- 1032 Обработка закрытия объекта Window
- 1033 Обработка событий мыши на уровне окна
- 1034 Обработка клавиатурных событий на уровне окна
- 1035 Построение (основанного на XAML) приложения WPF
- 1035 Определение MainWindow на XAML
- 1036 Определение объекта Application на XAML
- 1037 Обработка файлов XAML с помощью msbuild.exe
- 1038 Трансформация разметки в сборку .NET
- 1039 Отображение XAML на код C#
- 1040 Роль BAML
- 1042 Итоговые замечания о процессе превращения XAML в сборку
- 1042 Разделение ответственности с использованием файлов отделенного кода
- 1044 Синтаксис XAML
- 1044 Эксперименты с XAML с применением xamlpad.exe
- 1046 Пространства имен и ключевые слова XAML
- 1048 Элементы и атрибуты XAML
- 1049 Понятие синтаксиса XAML «свойство-элемент»
- 1051 Понятие присоединяемых свойств XAML
- 1052 Понятие о конвертерах типов XAML
- 1053 Понятие расширений разметки XAML
- 1055 Предварительные сведения о ресурсах и привязке данных
- 1057 Построение приложений WPF с использованием Visual Studio 2008
- 1058 Шаблоны проектов WPF
- 1058 Изменение имени начального окна
- 1059 Визуальный дизайнер WPF
- 1061 Обработка XAML во время выполнения: SimpleXamlPad.exe
- 1063 Реализация события Loaded
- 1063 Реализация события Click объекта Button
- 1064 Реализация события Closed
- 1064 Тестирование приложения
- 1065 Роль Microsoft Expression Blend
- 1065 Преимущества Expression Blend
- 1066 Резюме
- 1012 Мотивация, лежащая в основе WPF
- 1067 Глава 29. Программирование с использованием элементов управления WPF
- 1067 Обзор библиотеки элементов управления WPF
- 1069 Элементы управления WPF и Visual Studio 2008
- 1069 Подробности ищите в документации
- 1070 Объявление элементов управления на XAML
- 1071 Взаимодействие с элементами управления в файлах кода
- 1072 Роль зависимых свойств
- 1073 Исследование существующих зависимых свойств
- 1074 Регистрация свойства зависимости
- 1075 Определение свойства-оболочки для поля DependencyProperty
- 1076 Понятие маршрутизируемых событий
- 1078 Роль пузырьковых маршрутизируемых событий
- 1078 Продолжение или прекращения пузырькового распространения
- 1079 Роль туннельных маршрутизируемых событий
- 1080 Работа с типами Button
- 1081 Тип ButtonBase
- 1081 Тип Button
- 1082 Тип ToggleButton
- 1083 Тип RepeatButton
- 1084 Работа с элементами CheckBox и RadioButton
- 1085 Установка логического группирования
- 1085 Заключение связанных элементов в рамку GroupBox
- 1086 Заключение связанных элементов в Expander
- 1087 Работа с типами ListBox и ComboBox
- 1088 Программное заполнение списковых элементов управления
- 1089 Добавление произвольного содержимого
- 1090 Определение текущего выбора
- 1091 Определение текущего выбора для вложенного содержимого
- 1092 Работа с текстовыми областями
- 1092 Работа с типом TextBox
- 1093 Работа с типом PasswordBox
- 1095 Управление компоновкой содержимого с использованием панелей
- 1096 Основные типы панелей WPF
- 1097 Позиционирование содержимого внутри панелей Canvas
- 1098 Позиционирование содержимого внутри панелей WrapPanel
- 1100 Позиционирование содержимого внутри панелей StackPanel
- 1101 Позиционирование содержимого внутри панелей Grid
- 1103 Позиционирование содержимого внутри панелей DockPanel
- 1104 Включение прокрутки в типах панелей
- 1105 Построение главного окна с использованием вложенных панелей
- 1106 Построение системы меню
- 1107 Построение типа ToolBar
- 1107 Построение типа StatusBar
- 1108 Завершение дизайна пользовательского интерфейса
- 1109 Завершение реализации
- 1110 Понятие управляющих команд WPF
- 1110 Внутренние объекты управляющих команд
- 1111 Подключение команд к свойству Command
- 1112 Подключение команд к произвольным элементам пользовательского интерфейса
- 1113 Понятие модели привязки данных WPF
- 1114 Первый взгляд на привязку данных
- 1115 Свойство DataContext
- 1116 Свойство Mode
- 1116 Преобразование данных с использованием IValueConverter
- 1118 Преобразование между различными типами данных
- 1119 Привязка к специальным объектам
- 1121 Работа с типом ObservableCollection<T>
- 1122 Создание специального шаблона данных
- 1123 Привязка элементов пользовательского интерфейса к документам XML
- 1123 Построение специального диалогового окна
- 1125 Присваивание значения DialogResult
- 1125 Получение текущего выбора
- 1126 Отображение специального диалогового окна
- 1127 Резюме
- 1067 Обзор библиотеки элементов управления WPF
- 1128 Глава 30. Визуализация двухмерной графики, ресурсы и темы WPF
- 1128 Философия служб визуализации графики WPF
- 1129 Варианты визуализации графики WPF
- 1135 Выбор подхода
- 1136 Исследование типов, производных от Shape
- 1136 Функциональность базового класса Shape
- 1138 Работа с кистями WPF
- 1139 Построение кистей сплошного цвета
- 1139 Работа с градиентными кистями
- 1140 Тип ImageBrush
- 1141 Работа с перьями WPF
- 1142 Исследование типов-наследников Drawing
- 1142 Роль геометрических типов
- 1143 Анализ простой геометрии рисования
- 1144 Включение типов Drawing в DrawingImage
- 1144 Включение типов Drawing в DrawingBrush
- 1144 Более сложная геометрия для рисования
- 1146 Роль трансформаций пользовательского интерфейса
- 1146 Типы-наследники Transform
- 1147 Применение трансформаций
- 1148 Понятие служб анимации WPF
- 1149 Роль типов с суффиксом Animation
- 1150 Роль базового класса Timeline
- 1150 Написание анимации в коде C#
- 1151 Управление скоростью анимации
- 1152 Обращение и зацикливание анимации
- 1153 Описание анимации в XAML
- 1154 Роль ключевых кадров анимации
- 1157 Понятие системы ресурсов WPF
- 1157 Работа с двоичными ресурсами
- 1159 Роль объектных (логических) ресурсов
- 1159 Определение и применение стилей элементов управления WPF
- 1159 Работа с встроенными стилями
- 1161 Работа с именованными стилями
- 1162 Переопределение настроек стиля
- 1162 Наследование от существующих стилей
- 1163 Расширение стилей
- 1164 Сужение стилей
- 1164 Неявное назначение стилей
- 1164 Определение стилей с триггерами
- 1166 Программное назначение стилей
- 1168 Изменение элементов управления пользовательского интерфейса с помощью шаблонов
- 1168 Построение специального шаблона
- 1169 Добавление триггеров к шаблонам
- 1170 Встраивание шаблонов в стили
- 1172 Резюме
- 1128 Философия служб визуализации графики WPF
- 1173 ЧАСТЬ VII. Построение веб-приложений с использованием ASP.NET
- 1174 Глава 31. Построение веб-страниц ASP.NET
- 1174 Роль HTTP
- 1174 Цикл запрос/ответ HTTP
- 1175 HTTP — протокол без поддержки состояния
- 1175 Понятие веб-приложений и веб-серверов
- 1177 Роль виртуальных каталогов IIS
- 1178 Сервер разработки ASP.NET
- 1179 Роль HTML
- 1179 Структура документа HTML
- 1180 Разработка форм HTML
- 1181 Построение пользовательского интерфейса на базе HTML
- 1183 Роль сценариев клиентской стороны
- 1185 Пример сценария клиентской стороны
- 1185 Проверка достоверности данных формы default.htm
- 1186 Отправка данных формы (GET и POST)
- 1186 Построение классической страницы ASP
- 1188 Проблемы классического ASP
- 1189 Основные преимущества ASP.NET 1.x
- 1189 Основные усовершенствования ASP.NET
- 1190 Основные веб-расширения .NET 3.5
- 1190 Пространства имен ASP.NET
- 1191 Модель кода веб-страницы ASP.NET
- 1192 Построение ориентированной на данные однофайловой тестовой страницы
- 1197 Работа с моделью страницы с отделенным кодом
- 1201 Подробности структуры каталога веб-сайта ASP.NET
- 1201 Ссылаемые сборки
- 1202 Роль папки App _ Code
- 1203 Цикл компиляции страницы ASP.NET
- 1203 Цикл компиляции для однофайловых страниц
- 1203 Цикл компиляции многофайловых страниц
- 1205 Цепочка наследования типа Page
- 1206 Взаимодействие с входящим запросом HTTP
- 1207 Получение статистики браузера
- 1208 Доступ к входным данным формы
- 1209 Свойство IsPostBack
- 1209 Взаимодействие с исходящим ответом HTTP
- 1210 Выдача HTML-содержимого
- 1211 Перенаправление пользователей
- 1211 Жизненный цикл веб-страницы ASP.NET
- 1213 Роль атрибута AutoEventWireup
- 1213 Событие Error
- 1214 Роль файла Web.config
- 1216 Утилита администрирования веб-сайтов ASP.NET
- 1217 Резюме
- 1174 Роль HTTP
- 1218 Глава 32. Веб-элементы управления, темы и мастер-страницы ASP.NET
- 1218 Природа веб-элементов управления
- 1219 Обработка событий серверной стороны
- 1220 Свойство AutoPostBack
- 1221 Тип System.Web.UI.Control
- 1221 Перечисление содержащихся элементов управление
- 1223 Динамическое добавление и удаление элементов управления
- 1224 Тип System.Web.UI.WebControls.WebControl
- 1224 Основные категории веб-элементов управления ASP.NET
- 1225 Краткая информация о System.Web.UI.HtmlControls
- 1226 Построение веб-сайта ASP.NET с развитыми средствами
- 1226 Работа с мастер-страницами
- 1233 Определение страницы содержимого Default.aspx
- 1235 Проектирование страницы содержимого Inventory.aspx
- 1238 Проектирование страницы содержимого BuildCar.aspx
- 1241 Роль элементов управления проверкой достоверности
- 1242 Тип RequiredFieldValidator
- 1243 Тип RegularExpressionValidator
- 1244 Тип RangeValidator
- 1244 Тип CompareValidator
- 1245 Создание элемента ValidationSummary
- 1246 Определение групп проверки достоверности
- 1247 Работа с темами
- 1248 Понятие файлов *.sk in
- 1250 Применение тем ко всему сайту
- 1251 Применение тем на уровне страницы
- 1251 Свойство SkinID
- 1252 Программное назначение тем
- 1253 Позиционирование элементов управления с использованием таблиц HTML
- 1255 Резюме
- 1218 Природа веб-элементов управления
- 1256 Глава 33. Управление состоянием в ASP.NET
- 1256 Проблема поддержки состояния
- 1258 Приемы управления состоянием ASP.NET
- 1259 Роль состояния представления ASP.NET
- 1259 Демонстрация работы с состоянием представления
- 1261 Добавление специальных данных в состояние представления
- 1262 Роль файла Global.asax
- 1264 Глобальный обработчик исключений «последнего шанса»
- 1264 Базовый класс HttpApplication
- 1265 Различие между Application и Session
- 1266 Поддержка данных состояния уровня приложения
- 1268 Модификация данных приложения
- 1270 Обработка останова веб-приложения
- 1270 Работа с кэшем приложения
- 1271 Работа с кэшированием данных
- 1273 Модификация файла *.aspx
- 1274 Поддержка данных сеанса
- 1277 Дополнительные члены HttpSessionState
- 1278 Понятие cookie-наборов
- 1278 Создание cookie-наборов
- 1279 Чтение входящих cookie-данных
- 1280 Роль элемента <sessionState>
- 1281 Хранение данных сеанса на сервере состояния сеансов ASP.NET
- 1282 Хранение информации о сеансах в выделенной базе данных
- 1282 Интерфейс ASP.NET Profile API
- 1283 База данных ASPNETDB.mdf
- 1284 Определение пользовательского профиля в web.config
- 1285 Программный доступ к данным профиля
- 1288 Группирование данных профиля и сохранение специальных объектов
- 1290 Резюме
- 1291 ЧАСТЬ VIII. Приложения
- 1292 Приложение А. Возможность взаимодействия COM и .NET
- 1292 Контекст взаимодействия .NET
- 1293 Простой пример взаимодействия .NET c COM
- 1294 Построение клиента C#
- 1296 Исследование сборки взаимодействия .NET
- 1298 Понятие Runtime Callable Wrapper
- 1298 RCW: представление типов COM как типов .NET
- 1299 RCW: управление счетчиком ссылок на совместный класс
- 1300 RCW: сокрытие низкоуровневых COM-интерфейсов
- 1300 Роль COM IDL
- 1302 Обзор сгенерированного IDL для сервера VB COM
- 1303 Атрибуты IDL
- 1303 Оператор библиотеки IDL
- 1303 Роль интерфейса [default]
- 1304 Роль IDispatch
- 1304 Атрибуты параметров IDL
- 1304 Использование библиотеки типов для построения сборки взаимодействия
- 1305 Позднее связывание с совместным классом CoCalc
- 1307 Построение более сложного сервера COM
- 1307 Поддержка дополнительного COM-интерфейса
- 1308 Представление внутреннего объекта
- 1309 Исследование сборки взаимодействия
- 1309 Построение клиентского приложения C#
- 1310 Взаимодействие с типом CoCar
- 1311 Перехват событий COM
- 1313 Понятие взаимодействия COM с .NET
- 1313 Атрибуты System.Runtime.InteropServices
- 1314 Роль CCW
- 1315 Роль интерфейса класса .NET
- 1315 Определение интерфейса класса
- 1316 Построение типов .NET
- 1317 Определение строгого имени
- 1318 Генерация библиотеки типов и регистрация типов .NET
- 1319 Исследование информации экспортированного типа
- 1319 Построение тестового клиента Visual Basic 6.0
- 1320 Резюме
- 1321 Приложение Б. Независимая от платформы разработка .NET с помощью Mono
- 1321 Независимая от платформы природа .NET
- 1322 Роль CLI
- 1323 Основные дистрибутивы CLI
- 1324 Область действия Mono
- 1324 Получение и инсталляция Mono
- 1325 Исследование структуры каталогов Mono
- 1326 Инструменты разработки Mono
- 1327 Работа с компиляторами C#
- 1327 Инструменты разработки Mono, совместимые с Microsoft
- 1328 Специфичные для Mono инструменты разработки
- 1329 Построение приложений .NET с использованием Mono
- 1329 Построение библиотеки кода Mono
- 1332 Построение консольного приложения в Mono
- 1333 Построение клиентской программы Windows Forms
- 1335 Выполнение приложения Windows Forms под Linux
- 1335 Советы по дальнейшему изучению
- 1336 Резюме
- 1321 Независимая от платформы природа .NET
- 1337 Предметный указатель
Инструкция как скачать книгу Эндрю Троелсен: Язык программирования С# 2008 и платформа .NET 3.5 в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Рейтинг книги:
0 голосов
1525