





















































































































































































































































































































































































































































































































































































![Сокращенное обозначение атрибутов в С#
Указание параметров конструктора для атрибутов
Атрибут [Obsolete] в действии](https://djvu.online/jpg/i/r/Y/irYXx1xHPPx5g/567.webp)
































































































































![Синхронизация с использованием атрибута [Synchronization]](https://djvu.online/jpg/i/r/Y/irYXx1xHPPx5g/696.webp)






































































































































































































































![Атрибут [OperationContract]](https://djvu.online/jpg/i/r/Y/irYXx1xHPPx5g/927.webp)

















































































































































































































































































































































































































































































Страница
-
31.
Об авторе
О техническом редакторе
Благодарности - 32. Введение
-
33.
Автор и читатели — одна команда
Краткий обзор содержания -
42.
Исходный код примеров
От издательства - 43. Часть I. Общие сведения о языке С# и платформе .NET
- 44. Глава 1. Философия .NET
-
45.
Подход с применением языка C++ и платформы MFC
Подход с применением Visual Basic 6.0 -
46.
Подход с применением Java
Подход с применением СОМ - 47. Сложность представления типов данных СОМ
- 48. Решение .NET
-
50.
Роль библиотек базовых классов
Что привносит язык С# - 52. Другие языки программирования с поддержкой .NET
- 54. Что собой представляют сборки в .NET
- 56. Роль CIL
-
58.
Преимущества CIL
Компиляция CIL-кода в инструкции, ориентированные на конкретную платформу - 59. Роль метаданных типов в .NET
- 60. Роль манифеста сборки
-
61.
Типы классов
Типы интерфейсов -
62.
Типы структур
Типы перечислений -
63.
Типы делегатов
Члены типов
Встроенные типы данных - 66. Забота о соответствии правилам CLS
- 67. Различия между сборками, пространствами имен и типами
- 71. Получение доступа к пространствам имен программным образом
- 73. Добавление ссылок на внешние сборки
-
74.
Изучение сборки с помощью утилиты ildasm. exe
Просмотр метаданных типов - 75. Изучение сборки с помощью утилиты Reflector
- 76. Развертывание исполняющей среды .NET
- 77. Не зависящая от платформы природа .NET
- 79. Резюме
- 80. Глава 2. Создание приложений на языке С#
- 81. Создание приложений на С# с использованием csc.exe
-
84.
Добавление ссылок на внешние сборки
Добавление ссылок на несколько внешних сборок -
85.
Компиляция нескольких файлов исходного кода
Работа с ответными файлами в С# - 87. Создание приложений .NET с использованием Notepad++
- 88. Создание приложений.NET с помощью SharpDevelop
- 90. Создание приложений .NET с использованием Visual С# 2010 Express
-
92.
Создание приложений .NET с использованием Visual Studio 2010
Некоторые уникальные функциональные возможности Visual Studio 2010 -
93.
Ориентирование на .NET Framework в диалоговом окне New Project
Использование утилиты Solution Explorer -
95.
Утилита Class View
Утилита Object Browser - 96. Встроенная поддержка рефакторинга программного кода
- 98. Возможности для расширения и окружения кода
- 100. Утилита Class Designer
- 102. Интегрируемая система документации . NET Framework 4.0
- 104. Резюме
- 105. Часть II. Главные конструкции программирования на С#
- 106. Глава 3. Главные конструкции программирования на С#: часть I
- 109. Спецификация кода ошибки в приложении
- 110. Обработка аргументов командной строки
- 111. Указание аргументов командной строки в Visual Studio 2010
- 112. Интересное отклонение от темы: некоторые дополнительные члены класса System.Environment
- 113. Класс System.Console
- 115. Форматирование вывода, отображаемого в окне консоли
- 116. Форматирование числовых данных г
-
117.
Форматирование числовых данных в приложениях, отличных от консольных
Системные типы данных и их сокращенное обозначение в С# - 120. Внутренние типы данных и операция new
- 121. Иерархия классов типов данных
-
123.
Члены числовых типов данных
Члены System.Boolean - 124. Члены System.Char
-
125.
Синтаксический разбор значений из строковых данных
Типы System.DateTimeи System.TimeSpan - 126. Пространство имен System.Numerics в .NET4.0
- 127. Работа со строковыми данными
- 129. Конкатенация строк
- 130. Управляющие последовательности символов
-
131.
Определение дословных строк
Строки и равенство - 132. Неизменная природа строк
- 133. Тип System.Text.StringBuilder
- 135. Сужающие и расширяющие преобразования типов данных
-
139.
Настройка проверки на предмет возникновения условий переполнения в масштабах проекта
Ключевое слово unchecked -
140.
Роль класса System. Convert
Неявно типизированные локальные переменные - 143. Неявно типизированные данные являются строго типизированными
-
144.
Польза от неявно типизированных локальных переменных
Итерационные конструкции в С# - 145. Цикл foreach
-
146.
Использование var в конструкциях foreach
Конструкции whilendo/while - 147. Конструкции принятия решений и операции сравнения
- 148. Оператор switch
- 149. Резюме
- 150. Глава 4. Главные конструкции программирования на С#: часть II
- 152. Модификатор out
- 153. Модификатор геf
- 154. Модификатор params
- 156. Определение необязательных параметров
- 157. Вызов методов с использованием именованных параметров
- 158. Перегрузка методов
- 160. Массивы в С#
- 162. Неявно типизированные локальные массивы
-
163.
Определение массива объектов
Работа с многомерными массивами -
165.
Использование массивов в качестве аргументов и возвращаемых значений
Базовый класс System. Array - 167. Тип enum
- 168. Объявление переменных типа перечислений
- 169. Тип System.Enum
- 170. Динамическое обнаружение пар \
- 172. Типы структур
- 173. Создание переменных типа структур
- 175. Типы значения, ссылочные типы и операция присваивания
- 177. Типы значения, содержащие ссылочные типы
- 178. Передача ссылочных типов по значению
- 179. Передача ссылочных типов по ссылке
- 180. Заключительные детали относительно типов значения и ссылочных типов
- 181. Нулевые типы в С #
-
184.
Операция ??
Резюме - 185. Глава 5. Определение инкапсулированных типов классов
- 188. Понятие конструктора
- 189. Определение специальных конструкторов
- 190. Еще раз о конструкторе по умолчанию
- 191. Роль ключевого слова this
- 195. Обзор потока конструктора
- 196. Еще раз об необязательных аргументах
- 197. Понятие ключевого слова static
- 198. Определение статических полей данных
- 201. Определение статических конструкторов
- 202. Определение статических классов
- 203. Основы объектно-ориентированного программирования
- 204. Роль наследования
- 206. Роль полиморфизма
- 207. Модификаторы доступа С#
- 208. Модификаторы доступа и вложенные типы
- 209. Первый принцип: службы инкапсуляции С#
- 212. Инкапсуляция с использованием свойств .NET
- 214. Использование свойств внутри определения класса
- 215. Внутреннее представление свойств
- 217. Управление уровнями видимости операторов get/set свойств
-
218.
Свойства, доступные только для чтения и только для записи
Статические свойства - 219. Понятие автоматических свойств
- 221. Замечания относительно автоматических свойств и значений по умолчанию
- 223. Понятие синтаксиса инициализации объектов
- 225. Инициализация вложенных типов
- 226. Работа с данными константных полей
- 228. Статические поля только для чтения
- 229. Понятие частичных типов
- 230. Резюме
- 231. Глава 6. Понятия наследования и полиморфизма
-
234.
О множественном наследовании
Ключевое слово sealed - 235. Изменение диаграмм классов Visual Studio
- 236. Второй принцип ООП: подробности о наследовании
- 240. Хранение фамильных тайн: ключевое слово protected
- 241. Добавление запечатанного класса
- 242. Реализация модели включения/делегации
- 245. Третий принцип ООП: поддержка полиморфизма в С#
- 247. Переопределение виртуальных членов в Visual Studio 2010
- 248. Запечатывание виртуальных членов
- 249. Абстрактные классы
- 250. Полиморфный интерфейс
- 253. Сокрытие членов
- 255. Правила приведения к базовому и производному классу
- 257. Ключевое слово is
- 258. Родительский главный класс System.Object
- 263. Тестирование модифицированного класса Регson
-
264.
Статические члены System.Object
Резюме - 265. Глава 7. Структурированная обработка исключений
- 266. Роль обработки исключений в .NET
- 268. Базовый класс System. Exception
- 269. Простейший пример
- 272. Перехват исключений
- 273. Конфигурирование состояния исключения
- 274. Свойство StackTrace
-
275.
Свойство НеlpLink
Свойство Data - 278. Создание специальных исключений, способ первый
- 280. Создание специальных исключений, способ второй
- 281. Создание специальных исключений, способ третий
- 282. Обработка многочисленных исключений
- 285. Передача исключений
- 286. Внутренние исключения
-
287.
Блок finally
Какие исключения могут выдавать методы - 288. К чему приводят необрабатываемые исключения
- 289. Отладка необработанных исключений с помощью Visual Studio
- 290. Несколько слов об исключениях, связанных с поврежденным состоянием
- 291. Резюме
- 292. Глава 8. Время жизни объектов
- 293. Базовые сведения о времени жизни объектов
- 296. Установка объектных ссылок в пи 11
- 297. Роль корневых элементов приложения
- 298. Поколения объектов
- 299. Параллельная сборка мусора в версиях .NET 1.0 — .NET 3.5
- 300. Тип System. GC
- 304. Создание финализируемых объектов
-
307.
Описание процесса финализации
Создание высвобождаемых объектов - 311. Создание финализируемых и высвобождаемых типов
- 314. Отложенная инициализация объектов
- 318. Резюме
- 319. Часть III. Дополнительные конструкции программирования на С#
- 320. Глава 9. Работа с интерфейсами
- 324. Определение специальных интерфейсов
- 326. Реализация интерфейса
- 328. Вызов членов интерфейса на уровне объектов
- 329. Получение ссылок на интерфейсы с помощью ключевого слова i s
- 330. Использование интерфейсов в качестве параметров
-
332.
Использование интерфейсов в качестве возвращаемых значений
Массивы типов интерфейсов - 333. Реализация интерфейсов с помощью Visual Studio 2010
- 334. Устранение конфликтов на уровне имен за счет реализации интерфейсов явным образом
- 337. Проектирование иерархий интерфейсов
- 343. Создание методов итератора с помощью ключевого слова yield
- 344. Создание именованного итератора
- 345. Внутреннее представление метода итератора
- 348. Более сложный пример клонирования
- 354. Использование специальных свойств и специальных типов для сортировки
- 355. Резюме
- 356. Глава 10. Обобщения
- 362. Проблемы с безопасностью типов
- 365. Роль параметров обобщенных типов
-
367.
Указание параметров типа для обобщенных членов
Указание параметров типов для обобщенных интерфейсов - 369. Пространство имен System.Collections.Generic
- 371. Работа с классом List
- 373. Работа с классом Stack
- 374. Работа с классом Queue
- 375. Работа с классом SortedSet
- 376. Создание специальных обобщенных методов
- 379. Создание специальных обобщенных структур и классов
- 381. Обобщенные базовые классы
- 382. Ограничение параметров типа
- 384. Недостаток ограничений операций
- 385. Резюме
- 386. Глава 11. Делегаты, события и лямбда-выражения
- 387. Определение типа делегата в С#
- 389. Базовые классы System.MulticastDelegate и System.Delegate
- 391. Простейший пример делегата
- 393. Отправка уведомлений о состоянии объекта с использованием делегатов
- 397. Удаление целей из списка вызовов делегата
- 398. Синтаксис групповых преобразований методов
- 400. Понятие ковариантности делегатов
- 402. Понятие обобщенных делегатов
- 404. Понятие событий С#
- 406. \
- 407. Прослушивание входящих событий
- 408. Упрощенная регистрация событий с использованием Visual Studio 2010
- 409. Создание специальных аргументов событий
- 410. Обобщенный делегат Event Handle r
- 411. Понятие анонимных методов С#
- 413. Понятие лямбда-выражений
- 417. Обработка аргументов внутри множества операторов
- 418. Лямбда-выражения с несколькими параметрами и без параметров
-
419.
Усовершенствование примера PrimAndProperCarEvents за счет использования лямбда-выражений
Резюме - 421. Глава 12. Расширенные средства языка С#
- 424. Перегрузка методов-индексаторов
-
425.
Многомерные индексаторы
Определения индексаторов в интерфейсных типах - 426. Понятие перегрузки операций
-
429.
А как насчет операций += и -=?
Перегрузка унарных операций - 430. Перегрузка операций эквивалентности
- 431. Перегрузка операций сравнения
- 432. Внутреннее представление перегруженных операций
- 433. Финальные соображения относительно перегрузки операций
-
434.
Понятие преобразований пользовательских типов
Преобразования между связанными типами классов - 435. Создание специальных процедур преобразования
- 437. Дополнительные явные преобразования типа Square
- 438. Определение процедур неявного преобразования
- 439. Внутреннее представление процедур пользовательских преобразований
- 440. Понятие расширяющих методов
- 448. Понятие частичных методов
- 450. Понятие анонимных типов
- 454. Анонимные типы, содержащие другие анонимные типы
- 455. Работа с типами указателей
- 458. Работа с операциями * и &
- 459. Небезопасная и безопасная функция обмена значений
-
460.
Ключевое слово stackalloc
Закрепление типа ключевым словом fixed - 461. Ключевое слово sizeof
- 462. Резюме
- 463. Глава 13. LINQ to Objects
- 464. Синтаксис инициализации объектов и коллекций
- 465. Лямбда-выражения
-
466.
Расширяющие методы
Анонимные типы - 467. Роль LINQ
- 468. Основные сборки LINQ
- 469. Применение запросов LINQ к элементарным массивам
- 471. Рефлексия результирующего набора LINQ
- 472. LINQ и неявно типизированные локальные переменные
- 473. LINQ и расширяющие методы
- 474. Роль отложенного выполнения
-
475.
Роль немедленного выполнения
Возврат результата запроса LINQ - 477. Применение запросов LINQ к объектам коллекций
- 478. Применение запросов LINQ к необобщенным коллекциям
- 480. Исследование операций запросов LINQ
-
482.
Получение подмножества данных
Проекция новых типов данных -
484.
Получение счетчиков посредством Enumerable •
Обращение результирующих наборов
Выражения сортировки - 485. LINQ как лучшее средство построения диаграмм
-
486.
Исключение дубликатов
Агрегатные операции LINQ - 487. Внутреннее представление операторов запросов LINQ
- 488. Построение выражений запросов с использованием типа Enumerable и лямбда-выражений
-
490.
Построение выражений запросов с использованием типа Enumerable и анонимных методов
Построение выражений запросов с использованием типа Enumerable и низкоуровневых делегатов - 491. Резюме
- 493. Часть IV. Программирование с использованием сборок .NET
- 494. Глава 14. Конфигурирование сборок .NET
- 497. Устранение конфликтов на уровне имен за счет использования псевдонимов
- 498. Создание вложенных пространств имен
- 499. Пространство имен, используемое по умолчанию в Visual Studio 2010
- 500. Роль сборок .NET
-
501.
Сборки определяют границы типов
Сборки являются единицами, поддерживающими версии
Сборки являются самоописываемыми
Сборки поддаются конфигурированию - 502. Формат сборки .NET
- 504. Заголовок файла CLR
-
505.
CIL-код, метаданные типов и манифест сборки
Необязательные ресурсы сборки
Однофайловые и многофайловые сборки - 506. Создание и использование однофайловой сборки
-
512.
Исследование CIL-кода
Исследование метаданных типов - 513. Создание клиентского приложения на С#
- 514. Создание клиентского приложения на Visual Basic
- 515. Межъязыковое наследование в действии
- 516. Создание и использование многофайловой сборки
-
518.
Исследование файла airvehiсles .dll
Использование многофайловой сборки - 519. Приватные сборки
- 520. Процесс зондирования
- 521. Конфигурирование приватных сборок
- 522. Конфигурационные файлы и Visual Studio 2010
- 524. Разделяемые сборки
- 526. Генерирование строгих имен в командной строке
- 528. Генерирование строгих имен с помощью Visual Studio 2010
- 529. Установка сборок со строгими именами в GAC
- 530. Просмотр содержимого GAC с помощью проводника Windows
- 531. Использование разделяемой сборки
-
533.
Конфигурирование разделяемых сборок
Создание разделяемой сборки версии 2.0.0.0 - 536. Динамическое перенаправление на конкретную версию разделяемой сборки
- 537. Сборки политик издателя
- 538. Элемент
- 540. Пространство имен System. Configuration
- 541. Резюме
- 542. Глава 15. Рефлексия типов, позднее связывание и программирование с использованием атрибутов
-
546.
Изучение блока TypeRef
Просмотр метаданных самой сборки
Просмотр метаданных внешних сборок, на которые имеются ссылки в текущей сборке -
547.
Просмотр метаданных строковых литералов
Рефлексия - 550. Создание специальной программы для просмотра метаданных
- 551. Рефлексия полей и свойств
-
552.
Рефлексия реализуемых интерфейсов
Отображение различных дополнительных деталей -
554.
Рефлексия обобщенных типов
Рефлексия параметров и возвращаемых значений методов - 556. Динамически загружаемые сборки
- 558. Рефлексия разделяемых сборок
- 560. Позднее связывание
- 562. Вызов методов без параметров
- 563. Вызов методов с параметрами
- 564. Роль атрибутов .NET
- 565. Применение предопределенных атрибутов в С#
-
567.
Сокращенное обозначение атрибутов в С#
Указание параметров конструктора для атрибутов
Атрибут [Obsolete] в действии - 568. Создание специальных атрибутов
- 569. Синтаксис именованных свойств
- 570. Ограничение использования атрибутов
- 571. Атрибуты уровня сборки и модуля
- 572. Рефлексия атрибутов с использованием раннего связывания
- 573. Рефлексия атрибутов с использованием позднего связывания
- 575. Возможное применение на практике рефлексии, позднего связывания и специальных атрибутов
- 576. Создание расширяемого приложения
-
577.
Создание оснастки на С#
Создание оснастки на Visual Basic - 578. Создание расширяемого приложения Windows Fbrms
- 581. Резюме
- 582. Глава 16. Процессы, домены приложений и контексты объектов
- 585. Взаимодействие с процессами в рамках платформы .NET
-
588.
Изучение конкретного процесса
Изучение набора потоков процесса - 590. Изучение набора модулей процесса
-
592.
Запуск и останов процессов программным образом
Управление запуском процесса с использованием класса ProcessStartlnfo - 594. Домены приложений .NET
- 596. Взаимодействие с используемым по умолчанию доменом приложения
- 598. Получение уведомлений о загрузке сборок
- 599. Создание новых доменов приложений
- 601. Выгрузка доменов приложений программным образом
- 602. Границы контекстов объектов
-
604.
Определение контекстно-зависимого объекта
Инспектирование контекста объекта -
606.
Итоговые сведения о процессах, доменах приложений и контекстах
Резюме - 607. Глава 17. Язык CIL и роль динамических сборок
- 608. Директивы, атрибуты и коды операций в CIL
-
609.
Роль атрибутов CIL
Роль кодов операций CIL
Разница между кодами операций и их мнемоническими эквивалентами в CIL - 610. Помещение и извлечение данных из стека в CIL
- 612. Двунаправленное проектирование
- 616. Взаимодействие с CIL: модификация файла * . i 1
- 617. Компиляция CIL-кодас помощью ilasm.exe
- 618. Создание CIL-кода с помощью SharpDevelop
-
619.
Роль peverify.exe
Использование директив и атрибутов в CIL -
620.
Определение текущей сборки в CIL
Определение пространств имен в CIL - 621. Определение типов классов в CIL
- 622. Определение и реализация интерфейсов в CIL
-
623.
Определение структур в CIL
Определение перечислений в CIL
Определение обобщений в CIL - 624. Компиляция файла CILTypes . il
- 625. Соответствия между типами данных в библиотеке базовых классов .NET, C# и CIL
- 626. Определение членов типов в CIL
-
627.
Определение конструкторов для типов в CIL
Определение свойств в CIL -
628.
Определение параметров членов
Изучение кодов операций в CIL - 631. Объявление локальных переменных в CIL
- 632. Отображение параметров на локальные переменные в CIL
-
633.
Скрытая ссылка this
Представление итерационных конструкций в CIL - 634. Создание сборки . NET на CIL
- 637. Создание CILCarClient.exe
- 638. Динамические сборки
- 640. Роль типа System. Reflection. Emit. ILGenerator
- 641. Создание динамической сборки
- 642. Генерация сборки и набора модулей
- 643. Роль типа Module Builder
- 644. Генерация типа HelloClassn принадлежащей ему строковой переменной
- 645. Генерация конструкторов
- 646. Использование динамически сгенерированной сборки
- 647. Резюме
- 648. Глава 18. Динамические типы и исполняющая среда динамического языка
- 651. Роль сборки Microsoft.CSharp.dll
- 652. Область применения ключевого слова dynamic
-
653.
Ограничения ключевого слова dynamic
Практическое применение ключевого слова dynamic - 654. Роль деревьев выражений
-
655.
Роль пространства имен System. Dynamic
Динамический поиск в деревьях выражений во время выполнения - 656. Упрощение вызовов позднего связывания с использованием динамических типов
- 659. Упрощение взаимодействия с СОМ посредством динамических данных
- 660. Роль первичных сборок взаимодействия
-
661.
Встраивание метаданных взаимодействия
Общие сложности взаимодействия с СОМ - 662. Взаимодействие с СОМ с использованием средств языка С# 4.0
- 667. Резюме
- 669. Часть V. Введение в библиотеки базовых классов .NET
- 670. Глава 19. Многопоточность и параллельное программирование
-
672.
Роль синхронизации потоков
Краткий обзор делегатов .NET - 674. Асинхронная природа делегатов
- 675. Интерфейс System.IAsyncResult
- 676. Асинхронный вызов метода
- 678. Роль делегата AsyncCallback
- 679. Роль класса AsyncResult
- 680. Передача и прием специальных данных состояния
- 681. Пространство имен System.Threading
- 682. Класс System.Threading.Thread
-
684.
Свойство Name
Свойство Priority - 685. Программное создание вторичных потоков
- 687. Работа с делегатом ParametrizedThreadStart
- 688. Класс AutoResetEvent
- 689. Потоки переднего плана и фоновые потоки
- 690. Пример проблемы, связанной с параллелизмом
- 694. Синхронизация с использованием типа System.Threading.Monitor
- 695. Синхронизация с использованием типа System.Threading. Interlocked
- 696. Синхронизация с использованием атрибута [Synchronization]
- 697. Программирование с использованием обратных вызовов Timer
- 698. Пул потоков CLR
- 700. Параллельное программирование на платформе .NET
- 701. Роль класса Parallel
- 702. Понятие параллелизма данных
- 703. Класс Task
- 704. Обработка запроса на отмену
- 705. Понятие параллелизма задач
-
709.
Выполнение запроса PLINQ
Отмена запроса PLINQ - 710. Резюме
- 711. Глава 20. Файловый ввод-вывод и сериализация объектов
- 713. Абстрактный базовый класс FileSystemlnfo
- 714. Работа с типом Directorylnfo
- 716. Создание подкаталогов с помощью типа Directorylnfo
-
717.
Работа с типом Directory
Работа с типом Drive Info - 719. Работа с классом File Info
- 721.
-
722.
Работа с типом File - 724. Абстрактный класс Stream
- 726. Работа с классами StreamWriter и StreamReader
- 728. Чтение из текстового файла
- 729. Прямое создание экземпляров классов StreamWriter/StreamReader
- 730. Работа с классами StringWriter и StringReader
- 731. Работа с классами BinaryWriter и BinaryReader
- 732. Программное отслеживание файлов
- 734. Понятие сериализации объектов
- 737. Конфигурирование объектов для сериализации
-
738.
Общедоступные поля, приватные поля и общедоступные свойства
Выбор форматера сериализации - 740. Точность типов среди форматеров
- 741. Сериализация объектов с использованием BinaryFormatter
-
743.
Сериализация объектов с использованием SoapFormatter
Сериализация объектов с использованием XmlSerializer - 746. Сериализация коллекций объектов
- 747. Настройка процессов сериализации SOAP и двоичной сериализации
- 749. Настройка сериализации с использованием интерфейса ISerializable
- 751. Настройка сериализации с использованием атрибутов
- 752. Резюме
- 754. Глава 21. AD0.NET, часть I: подключенный уровень
- 756. Поставщики данных ADO.NET
-
759.
О сборке System.Data.OracleClient.dll
Получение сторонних поставщиков данных ADO.NET
Дополнительные пространства имен ADO.NET - 760. Типы из пространства имен System.Data
-
762.
Роль интерфейса I DbTrans act ion
Роль интерфейса IDbCommand
Роль интерфейсов IDbDataParameter и IDataParameter -
763.
Роль интерфейсов IDbDataAdapter и IDataAdapter
Роль интерфейсов IDataReader и IDataRecord - 764. Абстрагирование поставщиков данных с помощью интерфейсов
- 767. Создание базы данных AutoLot
- 770. Создание таблиц Customers и Orders
- 772. Визуальное создание отношений между таблицами
- 773. Модель генератора поставщиков данных ADO. NET
- 776. Возможные трудности с моделью генератора поставщиков
- 777. Элемент
- 778. Подключенный уровень ADO.NET
- 781. Работа с объектами ConnectionStringBuilder
- 782. Работа с объектами команд
- 783. Работа с объектами чтения данных
- 785. Создание повторно используемой библиотеки доступа к данным
- 787. Добавление логики вставки
-
788.
Добавление логики удаления
Добавление логики изменения - 789. Добавление логики выборки
- 790. Работа с параметризованными объектами команд
- 792. Выполнение хранимой процедуры
- 793. Создание консольного пользовательского интерфейса
- 799. Транзакции баз данных
- 800. Добавление таблицы CreditRisksB базу данных AutoLot
- 801. Добавление метода транзакции в InventoryDAL
- 802. Тестирование транзакции в нашей базе данных
- 803. Резюме
- 804. Глава 22. AD0.NET, часть II: автономный уровень
- 805. Роль объектов Data Set
-
807.
Основные методы класса Data Set
Создание DataSet - 808. Работа с объектами DataColumn
-
810.
Включение автоинкрементных полей
Добавление объектов DataColumn в DataTable
Работа с объектами DataRow - 813. Свойство DataRowVersion
- 814. Работа с объектами DataTable
- 815. Получение данных из объекта DataSet
- 816. Обработка данных из DataTable с помощью объектов DataTableReader
- 817. Сериализация объектов DataTable и DataSet в формате XML
- 818. Сериализация объектов DataTable и DataSet в двоичном формате
- 819. Привязка объектов DataTable к графическим интерфейсам Windows Forms
- 822. Удаление строк из DataTable
- 823. Выборка строк с помощью фильтра
-
826.
Изменение строк в DataTable
Работа с типом DataView - 828. Работа с адаптерами данных
- 829. Замена имен из базы данных более понятными названиями
- 830. Добавление в AutoLotDAL. dl 1 возможности отключения
- 831. Настройка адаптера данных с помощью SqlCommandBuilder
-
833.
Установка номера версии
Тестирование автономной функциональности - 834. Объекты DataSet для нескольких таблиц и взаимосвязь данных
- 836. Создание отношений между таблицами
-
837.
Изменение таблиц базы данных
Переходы между взаимосвязанными таблицами - 839. Средства конструктора баз данных в Windows Forms
-
843.
Сгенерированный файл арр. conf ig
Анализ строго типизированного DataSet -
845.
Анализ строго типизированного DataTable
Анализ строго типизированного DataRow
Анализ строго типизированного адаптера данных - 846. Завершение приложения Windows Forms
- 847. Выделение строго типизированного кода работы с базами данных в библиотеку классов
- 849. Выборка данных с помощью сгенерированного кода
-
850.
Вставка данных с помощью сгенерированного кода
Удаление данных с помощью сгенерированного кода -
851.
Вызов хранимой процедуры с помощью сгенерированного кода
Программирование с помощью LINQ to DataSet - 853. Получение DataTable, совместимого с LINQ
- 855. Заполнение новых объектов DataTable с помощью LINQ-запросов
- 856. Резюме
- 857. Глава 23. ADO.NET, часть III: Entity Framework
- 860. Строительные блоки Entity Framework
-
861.
Роль служб объектов
Роль клиента сущности -
863.
Роль файла *.edmx
Роль классов ObjectContext и ObjectSet - 865. Собираем все вместе
- 866. Построение и анализ первой модели EDM
- 869. Изменение формы сущностных данных
-
871.
Просмотр отображений
Просмотр данных сгенерированного файла *. еdmx - 873. Просмотр сгенерированного исходного кода
-
875.
Улучшение сгенерированного исходного кода
Программирование с использованием концептуальной модели - 877. Обновление записи
- 878. Запросы с помощью LINQ to Entities
- 879. Запросы с помощью Entity SQL
- 880. Работа с объектом EntityDataReader
- 881. Проект AutoLotDAL версии 4.0, теперь с сущностями
- 882. Роль навигационных свойств
- 884. Использование навигационных свойств внутри запросов LINQ to Entity
- 885. Вызов хранимой процедуры
- 886. Привязка данных сущностей к графическим пользовательским интерфейсам Windows Fbrms
- 890. Резюме
- 891. Глава 24. Введение в LINQ to XML
- 893. Синтаксис литералов Visual Basic как наилучший интерфейс LINQ to XML
- 895. Члены пространства имен System.Xml.Linq
- 898. Работа с XElement HXDocument
-
901.
Загрузка и разбор XML-содержимого
Манипулирование XML-документом в памяти -
902.
Импорт файла Inventory, xml
Определение вспомогательного класса LINQ to XML - 904. Оснащение пользовательского интерфейса вспомогательными методами
- 905. Резюме
- 906. Глава 25. Введение в Windows Communication Foundation
- 908. Роль служб СОМ+/Enterprise Services
-
909.
Роль MSMQ
Роль .NET Remotlng - 910. Роль веб-служб XML
-
913.
Именованные каналы, сокеты и Р2Р
Роль WCF - 914. Обзор архитектуры, ориентированной на службы
- 915. WCF: итоги
- 916. Исследование основных сборок WCF
- 917. Шаблоны проектов WCF в Visual Studio
- 919. Базовая композиция приложения WCF
- 920. Понятие ABC в WCF
- 921. Понятие привязок WCF
- 924. Понятие адресов WCF
- 925. Построение службы WCF
- 927. Атрибут [OperationContract]
-
928.
Служебные типы как контракты операций
Хостинг службы WCF -
930.
Кодирование с использованием типа ServiceHost
Указание базового адреса - 932. Подробный анализ типа ServiceHost
- 933. Подробный анализ элемента
- 934. Включение обмена метаданными
- 936. Построение клиентского приложения WCF
- 938. Генерация кода прокси с использованием Visual Studio 2010
- 939. Конфигурирование привязки на основе TCP
- 940. Упрощение конфигурационных настроек в WCF 4.0
- 942. Предоставление одной службы WCF с использованием множества привязок
- 943. Изменение установок для привязки WCF
- 944. Конфигурация поведения МЕХ по умолчанию в WCF 4.0
- 945. Обновление клиентского прокси и выбор привязки
- 946. Использование шаблона проекта WCF Service Library
- 947. Тестирование службы WCFс помощью WcfTestClient.exe
- 948. Изменение конфигурационных файлов с помощью SvcConfigEditor.exe
- 949. Хостинг службы WCF в виде службы Windows
- 951. Включение МЕХ
- 952. Создание программы установки для службы Windows
- 953. Установка службы Windows
- 954. Асинхронный вызов службы на стороне клиента
- 955. Проектирование контрактов данных WCF
- 958. Реализация контракта службы
-
959.
Роль файла *.svc
Содержимое файла Web. с on fig -
960.
Тестирование службы
Резюме - 961. Глава 26. Введение в Windows Workflow Foundation 4.0
- 963. Построение простого рабочего потока
-
967.
Исполняющая среда WF 4.0
Хостинг рабочего потока с использованием класса Workf lowlnvoker - 970. Хостинг рабочего потока с использованием класса Workf lowApplication
-
971.
Переделка первого рабочего потока
Знакомство с действиями Windows Workflow 4.0 - 972. Действия блок-схемы
-
973.
Действия обмена сообщениями
Действия исполняющей среды и действия-примитивы -
974.
Действия транзакций
Действия над коллекциями и действия обработки ошибок - 975. Построение рабочего потока в виде блок-схемы
- 976. Работа с действием InvokeMethod
- 977. Определение переменных уровня рабочего потока
-
978.
Работа с действием FlowDecision
Работа с действием TerminateWorkf low -
979.
Построение условия \
Работа с действием ForEach - 981. Завершение приложения
- 982. Промежуточные итоги
- 984. Изоляция рабочих потоков в выделенных библиотеках
- 985. Импорт сборок и пространств имен
-
986.
Определение аргументов рабочего потока
Определение переменных рабочего потока -
987.
Работа с действием Assign
Работа с действиями IfnSwitch - 988. Построение специального действия кода
- 991. Использование библиотеки рабочего потока
- 993. Резюме
- 995. Часть VI. Построение настольных пользовательских приложений с помощью WPF
- 996. Глава 27. Введение в Windows Presentation Foundation и XAML
-
998.
Обеспечение разделения ответственности через XAML
Обеспечение оптимизированной модели визуализации - 999. Упрощение программирования сложных пользовательских интерфейсов
- 1000. Различные варианты приложений WPF
- 1001. WPF-приложения на основе навигации
- 1002. Приложения ХВАР
- 1003. Отношения между WPF и Silverlight
- 1004. Исследование сборок WPF
-
1007.
Роль класса Wi ndow
Роль класса System.Windows.Controls.ContentControl - 1008. Роль класса System.Windows.Controls.Control
- 1009. Роль класса System.Windows.FrameworkElement
-
1010.
Роль класса System.Windows.UIElement
Роль класса System.Windows.Media.Visual
Роль класса System. Windows. DependencyObject -
1011.
Роль класса System.Windows.Threading.DispatcherObject
Построение приложения WPF без XAML - 1013. Создание простого пользовательского интерфейса
- 1015. Взаимодействие с данными уровня приложения
- 1016. Обработка закрытия объекта Window
- 1017. Перехват событий мыши
- 1018. Перехват клавиатурных событий
- 1019. Построение приложения WPF с использованием только XAML
- 1021. Определение объекта Application в XAML
- 1022. Обработка файлов XAML с помощью msbuild.exe
- 1023. Трансформация разметки в сборку .NET
- 1025. Poль BAML
- 1026. Отображение XAML-данных приложения на код С#
-
1027.
Итоговые замечания о процессе трансформирования XAML в сборку
Синтаксис XAML для WPF - 1029. Пространства имен XAML XML и \
- 1031. Управление объявлениями классов и переменных-членов
- 1032. Элементы XAML, атрибуты XAML и преобразователи типов
- 1033. Понятие синтаксиса XAML \
-
1034.
Понятие присоединяемых свойств XAML
Понятие расширений разметки XAML - 1036. Построение приложений WPF с использованием файлов отделенного кода
- 1037. Добавление файла кода для класса МуАрр
-
1038.
Обработка файлов кода с помощью msbuild.exe
Построение приложений WPF с использованием Visual Studio 2010 - 1039. Знакомство с инструментами визуального конструктора WPF
- 1042. Проектирование графического интерфейса окна
- 1044. Реализация события Loaded
- 1045. Реализация события Click объекта Button
-
1046.
Реализация события Closed
Тестирование приложения - 1047. Резюме
- 1048. Глава 28. Программирование с использованием элементов управления WPF
-
1051.
Элементы управления Ink API
Элементы управления документами WPF -
1052.
Общие диалоговые окна WPF
Подробные сведения находятся в документации - 1053. Управление компоновкой содержимого с использованием панелей
- 1056. Позиционирование содержимого внутри панелей WrapPanel
- 1058. Позиционирование содержимого внутри панелей StackPanel
- 1059. Позиционирование содержимого внутри панелей Grid
- 1060. Позиционирование содержимого внутри панелей DockPanel
- 1061. Включение прокрутки в типах панелей
- 1062. Построение главного окна с использованием вложенных панелей
- 1064. Построение панели инструментов
-
1065.
Построение строки состояния
Завершение дизайна пользовательского интерфейса -
1066.
Реализация обработчиков событий MouseEnter/MouseLeave
Реализация логики проверки правописания - 1067. Понятие управляющих команд WPF
- 1068. Подключение команд к свойству Command
- 1069. Подключение команд к произвольным действиям
- 1071. Работа с командами Open и Save
- 1072. Построение пользовательского интерфейса WPF с помощью Expression Blend
- 1077. Использование элемента TabControl
- 1079. Построение вкладки Ink API
- 1082. Элемент управления RadioButton
- 1084. Элемент управления InkCanvas
- 1086. Элемент управления С оmboB ox
- 1087. Сохранение, загрузка и очистка данных InkCanvas
- 1088. Введение в интерфейс Documents API
-
1089.
Диспетчеры компоновки документа
Построение вкладки Documents - 1091. Наполнение FlowDocument с помощью кода
- 1093. Включение аннотаций и \
- 1094. Сохранение и загрузка потокового документа
- 1095. Введение в модель привязки данных WPF
- 1096. Установка привязки данных с использованием Blend
- 1097. Свойство DataContext
-
1099.
Преобразование данных с использованием IValueConverter
Установка привязок данных в коде - 1100. Построение вкладки DataGrid
- 1102. Резюме
- 1103. Глава 29. Службы визуализации графики WPF
- 1105. Визуализация графических данных с использованием фигур
-
1110.
Удаление прямоугольников, эллипсов и линий с поверхности Canvas
Работа с элементами Polyline и Polygon - 1111. Работа с элементом Path
- 1115. Кисти и перья WPF
- 1117. Конфигурирование кистей в коде
-
1118.
Конфигурирование перьев
Применение графических трансформаций - 1120. Трансформация данных Canvas
- 1122. Работа с фигурами в Expression Blend
-
1123.
Преобразование фигур в пути
Комбинирование фигур
Редакторы кистей и трансформаций - 1125. Визуализация графических данных с использованием рисунков и геометрий
- 1127. Рисование с помощью DrawingBrush
-
1128.
Включение типов Drawing в Drawinglmage
Генерация сложной векторной графики с использованием Expression Design - 1130. Визуализация графических данных с использованием визуального уровня
- 1131. Первый взгляд на класс DrawingVisual
- 1133. Визуализация графических данных в специальном диспетчере компоновки
- 1134. Реагирование на операции проверки попадания
- 1136. Резюме
- 1137. Глава 30. Ресурсы, анимация и стили WPF
- 1139. Программная загрузка изображения
-
1143.
Роль свойства Resources
Определение ресурсов уровня окна -
1145.
Расширение разметки {StaticResource}
Изменение ресурса после извлечения -
1146.
Расширение разметки {DynamicResource}
Ресурсы уровня приложения - 1147. Определение объединенных словарей ресурсов
- 1149. Определение сборки из одних ресурсов
- 1150. Извлечение ресурсов в Expression Blend
- 1152. Службы анимации WPF
- 1153. Свойства То, From и By
-
1154.
Роль базового класса Timeline
Написание анимации в коде С# - 1155. Управление темпом анимации
- 1156. Запуск в обратном порядке и циклическое выполнение анимации
- 1157. Описание анимации в XAML
- 1158. Роль триггеров событий
- 1159. Анимация с использованием дискретных ключевых кадров s
- 1160. Роль стилей WPF
-
1161.
Переопределение настроек стиля
Автоматическое применение стиля с помощью TargetType - 1162. Создание подклассов существующих стилей
- 1163. Роль безымянных стилей
-
1164.
Определение стилей с триггерами
Определение стилей с множеством триггеров -
1165.
Анимированные стили
Программное применение стилей - 1166. Генерация стилей с помощью Expression Blend
- 1169. Резюме
- 1170. Глава 31. Шаблоны элементов управления WPF и пользовательские элементы управления
- 1175. Важные замечания относительно оболочек свойств CLR
- 1176. Построение специального свойства зависимости
- 1179. Реакция на изменение свойства
- 1181. Маршрутизируемые события
- 1182. Продолжение или прекращение пузырькового распространения
- 1183. Роль маршрутизируемых туннелируемых событий
- 1185. Логические деревья, визуальные деревья и шаблоны по умолчанию
- 1187. Программный просмотр визуального дерева
- 1188. Программный просмотр шаблона по умолчанию для элемента управления
- 1191. Построение специального шаблона элемента управления в Visual Studio 2010
- 1193. Включение визуальных подсказок с использованием триггеров
- 1194. Роль расширения разметки {TemplateBinding}
-
1196.
Роль класса ContentPresenter
Включение шаблонов в стили - 1197. Построение специальных элементов UserControl с помощью Expression Blend
- 1204. Создание WPF-приложения JackpotDeluxe
- 1205. Роль визуальных состояний .NET 4.0
- 1209. Завершение приложения JackpotDeluxe
- 1212. Резюме
- 1213. Часть VII. Построение веб-приложений с использованием ASP.NET
- 1214. Глава 32. Построение веб-страниц ASP.NET
- 1215. HTTP — протокол без поддержки состояния
- 1216. Веб-приложения и веб-серверы
-
1217.
Веб-сервер разработки ASP NET
Роль языка HTML -
1219.
Роль формы HTML
Инструменты визуального конструктора HTML в Visual Studio 2010 - 1220. Построение формы HTML
- 1221. Роль сценариев клиентской стороны
- 1224. Обратная отправка веб-серверу
- 1225. Набор средств API-интерфейса ASP NET
- 1227. Основные средства ASP.NET 2.0
- 1228. Основные средства ASP.NET 4.0
- 1229. Построение однофайловой веб-страницы ASP.NET
- 1230. Проектирование пользовательского интерфейса
- 1231. Добавление логики доступа к данным
- 1233. Роль директив ASP NET
-
1235.
Анализ блока script
Анализ объявлений элементов управления ASP NET - 1236. Цикл компиляции для однофайловых страниц
- 1237. Построение веб-страницы ASP.NET с использованием файлов кода
-
1240.
Обновление файла кода
Цикл компиляции многофайловых страниц - 1241. Отладка и трассировка страниц ASP NET
- 1242. Веб-сайты и веб-приложения ASP.NET
- 1243. Структура каталогов веб-сайта ASP.NET
- 1244. Роль папки App_Code
- 1245. Цепочка наследования типа Page
- 1246. Взаимодействие с входящим запросом HTTP
-
1248.
Доступ к входным данным формы
Свойство IsPostBack - 1249. Взаимодействие с исходящим ответом HTTP
- 1250. Перенаправление пользователей
- 1251. Жизненный цикл веб-страницы ASP.NET
- 1253. Событие Error
- 1254. Роль файла Web.config
- 1256. Резюме
- 1257. Глава 33. Веб-элементы управления, мастер-страницы и темы ASP.NET
- 1259. Свойство AutoPostBack
- 1260. Базовые классы Control и WebControl
- 1262. Динамическое добавление и удаление элементов управления
- 1263. Взаимодействие с динамически созданными элементами управления
- 1264. Функциональность базового класса WebControl
- 1265. Основные категории веб-элементов управления ASP NET
- 1267. Документация по веб-элементам управления
- 1268. Построение веб-сайта ASPNET Cars
- 1274. Определение страницы содержимого Default.aspx
- 1276. Проектирование страницы содержимого Inventory, aspx
- 1279. Проектирование страницы содержимого BuildCar. aspx
- 1282. Роль элементов управления проверкой достоверности
-
1284.
Класс RegularExpressionValidator
Класс RangeValidator
Класс CompareValidator - 1285. Создание итоговой панели проверки достоверности
- 1286. Определение групп проверки достоверности
- 1288. Работа с темами
-
1291.
Применение тем ко всему сайту
Применение тем на уровне страницы
Свойство SkinID - 1292. Программное назначение тем
- 1293. Резюме
- 1294. Глава 34. Управление состоянием в ASP.NET
-
1296.
Приемы управления состоянием ASP. NET
Роль состояния представления ASP NET -
1299.
Добавление специальных данных в состояние представления
Роль файла Global.asax - 1302. Базовый класс HttpApplication
- 1303. Различие между свойствами Application и Session
- 1305. Модификация данных приложения
- 1306. Обработка останова веб-приложения
- 1307. Работа с кэшем приложения
- 1309. Модификация файла *.asрх
- 1311. Поддержка данных сеанса
- 1315. Cookie-наборы
- 1316. Чтение входящих cookie-данных
- 1317. Роль элемента
- 1318. Хранение информации о сеансах в выделенной базе данных
- 1319. Интерфейс ASP.NET Profile API
- 1320. Определение пользовательского профиля BWeb.config
- 1322. Программный доступ к данным профиля
- 1323. Группирование данных профиля и сохранение специальных объектов
- 1325. Резюме
- 1327. Часть VIII. Приложения
- 1369. Приложение Б. Независимая от платформы разработка .NET-приложений с помощью Mono
- 1386. Предметный указатель