Оглавление Об авторах 15 
 Предисловие 17 
 Потенциальная читательская аудитория 17 
 Особенности книги 18 
 Педагогический подход 20 
 Обучающие принципы LIVE-CODE™ 20 
 Доступ к World Wide Web 20 
 Цитаты 21 
 Темы  21 
 Вспомогательные элементы 21 
 Резюме 22 
 Благодарности 22 
 О корпорации Deitel & Associates, Inc. 23 
 Консорциум W3C 24 
 Глава 1. Введение в архитектуру .NET и язык C# 25 
 1.1. Введение 25 
 1.2. История Интернета и WWW 25 
 1.3. Консорциум Всемирной паутины 26 
 1.4. Язык XML 27 
 1.5. Ключевое направление развития программных средств: объектно-ориентированная технология 27 
 1.6. Введение в Microsoft .NET 29 
 1.7. Язык C# 30 
 1.8. .NET Framework и среда Common Language Runtime 30 
 1.9. Обзор книги 31 
 1.10. Резюме 38 
 1.11. Ресурсы Интернета и WWW 40 
 Глава 2 
 . Введение в интегрированную среду разработки Visual Studio .NET и программирование на C# 41 
 2.1. Введение 41 
 2.2. Обзор интегрированной среды разработки Visual Studio .NET 42 
 2.3. Меню и панели инструментов 44 
 2.4. Окна Visual Studio .NET 45 
 2.4.1. Окно Solution Explorer 46 
 2.4.2. Панель элементов 46 
 2.4.3. Окно Properties 48 
 2.5. Использование справки 49 
 2.6. Простая программа: отображение текста и графики 50 
 2.7. Простая программа: печать строки текста 55 
 2.8. Арифметика 62 
 2.9. Принятие решений: операции отношения и равенства 63 
 2.10. Резюме 67 
 Глава 3. Управляющие структуры 68 
 3.1. Введение 68 
 3.2. Управляющие структуры 68 
 3.3. Условный оператор if 69 
 3.4. Условный оператор if/else 70 
 3.5. Оператор цикла while 70 
 3.6. Операции присваивания 73 
 3.7. Операции инкремента и декремента 73 
 3.8. Оператор цикла for 74 
 3.9. Пример: использование оператора for для расчета депозитного процента 76 
 3.10. Оператор выбора switch 80 
 3.11. Оператор цикла do/while 83 
 3.12. Операторы break и continue 84 
 3.13. Логические и условные операции 86 
 3.14. Введение в программирование Windows-приложений 89 
 3.15. Резюме 94 
 Глава 4. Методы и массивы 95 
 4.1. Введение 95 
 4.2. Методы в C# 95 
 4.3. Определения методов 96 
 4.4. Приведение типов аргументов 101 
 4.5. Пространства имен C# 103 
 4.6. Типы значений и ссылочные типы 103 
 4.7. Передача аргументов по значению и по ссылке 104 
 4.8. Правила области действия 107 
 4.9. Рекурсия 109 
 4.10. Перегрузка методов 111 
 4.11. Массивы 114 
 4.12. Объявление и распределение массивов 114 
 4.13. Передача массивов в методы 116 
 4.14. Передача массивов по значению и по ссылке 117 
 4.15. Многомерные массивы 120 
 4.16. Оператор цикла foreach 123 
 4.17. Резюме 124 
 Глава 5. Объектно-ориентированное программирование 125 
 5.1. Введение 125 
 5.2. Реализация абстрактного типа данных времени с помощью класса 126 
 5.3. Область действия классов 132 
 5.4. Управление доступом к членам класса 132 
 5.5. Инициализация объектов классов: конструкторы 133 
 5.6. Использование перегруженных конструкторов 134 
 5.7. Свойства 137 
 5.8. Композиция: ссылки на объекты как переменные экземпляра других классов 143 
 5.9. Использование ссылки this 146 
 5.10. "Сбор мусора" 148 
 5.11. Static-члены класса 149 
 5.12. Члены класса const и readonly 152 
 5.13. Индексаторы 154 
 5.14. Абстракция данных и сокрытие информации 159 
 5.15. Многократное использование программных средств 160 
 5.16. Пространства имен и компоновочные блоки 161 
 5.17. Окна Class View и Object Browser 165 
 5.18. Резюме 167 
 Глава 6. Объектно-ориентированное программирование: наследование 168 
 6.1. Введение 168 
 6.2. Базовые и производные классы 169 
 6.3. Члены protected и internal 171 
 6.4. Взаимоотношения между базовыми и производными классами 172 
 6.5. Учебный пример: трехуровневая иерархия наследования 187 
 6.6. Конструкторы и деструкторы в производных классах 190 
 6.7. Проектирование программ с наследованием 195 
 6.8. Резюме 196 
 Глава 7. Объектно-ориентированное программирование: полиморфизм 197 
 7.1. Введение 197 
 7.2. Преобразование объекта производного класса в объект базового класса 197 
 7.3. Типы объектов и оператор switch 203 
 7.4. Примеры полиморфизма 203 
 7.5. Абстрактные классы и методы 204 
 7.6. Пример: наследование интерфейса и реализации 206 
 7.7. Классы и методы типа sealed 212 
 7.8. Пример: система начисления заработной платы с применением полиморфизма 213 
 7.9. Пример: создание и использование интерфейсов 221 
 7.10. Делегаты 230 
 7.11. Перегрузка операторов 233 
 7.12. Резюме 238 
 Глава 8. Обработка исключительных ситуаций 239 
 8.1. Введение 239 
 8.2. Обзор процесса обработки исключительных ситуаций 240 
 8.3. Пример: исключение DivideByZeroException 243 
 8.4. Иерархия .NET-исключений 246 
 8.5. Блок finally 247 
 8.6. Свойства класса Exception 254 
 8.7. Классы исключений, определенные пользователем 257 
 8.8. Обработка переполнений с помощью операторов checked и unchecked 261 
 8.9. Резюме 262 
 Глава 9. Концепции графического пользовательского интерфейса: часть 1 264 
 9.1. Введение 264 
 9.2. Формы Windows 265 
 9.3. Модель обработки событий 267 
 9.3.1. Основы обработки событий 268 
 9.4. Свойства элементов управления и их размещение 271 
 9.5. Метки, текстовые поля и кнопки 274 
 9.6. Группы и панели 279 
 9.7. Флажки и переключатели 282 
 9.8. Рамки изображений 288 
 9.9. Обработка событий мыши 290 
 9.10. Обработка событий клавиатуры 292 
 9.11. Резюме 295 
 Глава 10. Концепции графического пользовательского интерфейса: часть 2 297 
 10.1. Введение 297 
 10.2. Меню 298 
 10.3. Элемент управления LinkLabel 304 
 10.4. Элементы управления ListBox и CheckedListBox 307 
 10.4.1. Элемент управления ListBox 309 
 10.4.2. Элемент управления CheckedListBox 311 
 10.5. Элемент управления ComboBox 314 
 10.6. Элемент управления TreeView 317 
 10.7. Элемент управления ListView 322 
 10.8. Элемент управления TabControl 327 
 10.9. Многодокументный интерфейс Windows 331 
 10.10. Визуальное наследование 338 
 10.11. Элементы управления, определенные пользователем 341 
 10.12. Резюме 344 
 Глава 11. Организация многозадачной обработки 346 
 11.1. Введение 346 
 11.2. Состояния потоков: жизненный цикл потока 347 
 11.3. Приоритеты потоков и их планирование 349 
 11.4. Синхронизация потоков и класс Monitor 352 
 11.5. Отношение "производитель/потребитель" без синхронизации потоков 354 
 11.6. Отношение "производитель/потребитель" с синхронизацией потоков 359 
 11.7. Отношение "производитель/потребитель": кольцевой буфер 366 
 11.8. Резюме 374 
 Глава 12. Строки, символы и регулярные выражения 375 
 12.1. Введение 375 
 12.2. Основы понятий символов и строк 375 
 12.3. Конструкторы класса String 376 
 12.4. Индексатор класса String, свойство Length и метод CopyTo 377 
 12.5. Сравнительный анализ строк 379 
 12.6. Метод GetHashCode класса String 381 
 12.7. Расположение символов и подстрок в классе String 382 
 12.8. Извлечение подстрок из строк 384 
 12.9. Сцепление строк 385 
 12.10. Прочие методы класса String 386 
 12.11. Класс StringBuilder 387 
 12.12. Индексатор класса StringBuilder, свойства Length и Capacity и метод EnsureCapacity 388 
 12.13. Методы Append и AppendFormat класса StringBuilder 390 
 12.14. Методы Insert, Remove и Replace класса StringBuilder 392 
 12.15. Методы Char 395 
 12.16. Моделирование процессов тасования и раздачи карт 397 
 12.17. Регулярные выражения и класс Regex 400 
 12.18. Резюме 408 
 Глава 13. Графика и мультимедиа 410 
 13.1. Введение 410 
 13.2. Графические контексты и графические объекты 412 
 13.3. Управление цветом 413 
 13.4. Управление гарнитурами шрифтов 418 
 13.5. Рисование линий, прямоугольников и эллипсов 423 
 13.6. Рисование дуг 425 
 13.7. Рисование многоугольников и полилиний 427 
 13.8. Дополнительные графические возможности 431 
 13.9. Общие сведения о мультимедиа 435 
 13.10. Загрузка, отображение и масштабирование графических объектов 436 
 13.11. Анимация серии изображений 438 
 13.12. Windows Media Player 448 
 13.13. Microsoft Agent 450 
 13.14. Резюме 461 
 Глава 14. Файлы и потоки 462 
 14.1. Введение 462 
 14.2. Иерархия данных 462 
 14.3. Файлы и потоки 464 
 14.4. Классы File и Directory 465 
 14.5. Создание файла с последовательным доступом 473 
 14.6. Считывание данных из файла с последовательным доступом 482 
 14.7. Файлы с произвольном доступом 491 
 14.8. Создание файла с произвольном доступом 494 
 14.9. Произвольная запись данных в файл с произвольным доступом 497 
 14.10. Последовательное считывание данных из файла с произвольным доступом 500 
 14.11. Учебный пример: программа обработки транзакций 504 
 14.11.1. Поведение обработки транзакций 504 
 14.11.2. GUI обработчика транзакций 507 
 14.12. Резюме 521 
 Глава 15. Язык XML 522 
 15.1. Введение 522 
 15.2. Документы XML 522 
 15.3. Пространства имен XML 526 
 15.4. Объектная модель документа (DOM) 528 
 15.5. Document Type Definition, схемы и проверка 543 
 15.5.1. Определения типа документа 543 
 15.5.2. Microsoft XML Schema 547 
 15.5.3. W3С XML Schema 548 
 15.5.4. Проверка схемы в C# 550 
 15.6. Язык XSL и класс XslTransform 553 
 15.7. Microsoft BizTalk 558 
 15.8. Резюме 560 
 15.9. Ресурсы Интернета и WWW 561 
 Глава 16. Базы данных, SQL и ADO.NET 563 
 16.1. Введение 563 
 16.2. Модель реляционной базы данных 563 
 16.3. Обзор реляционной базы данных: база данных Books 564 
 16.4. Structured Query Language (SQL) 569 
 16.4.1. Базовый запрос SELECT 569 
 16.4.2. Выражение WHERE 570 
 16.4.3. Выражение ORDER BY 572 
 16.4.4. Слияние данных из нескольких таблиц: INNER JOIN 575 
 16.4.5. Объединение данных из таблиц Authors, AuthorISBN, Titles и Publishers 576 
 16.4.6. Оператор INSERT 578 
 16.4.7. Оператор UPDATE 579 
 16.4.8. Оператор DELETE 580 
 16.5. Объектная модель ADO.NET 580 
 16.6. Программирование с помощью ADO.NET: извлечение информации из базы данных 581 
 16.6.1. Подключение к источнику доступа к данным и запросы 581 
 16.6.2. Запросы базы данных Books 587 
 16.7. Программирование с помощью ADO.NET: модификация базы данных 589 
 16.8. Считывание файлов XML и запись в них 595 
 16.9. Резюме 597 
 Глава 17. ASP.NET, Web-формы и элементы управления Web 599 
 17.1. Введение 599 
 17.2. Простая транзакция HTTP 600 
 17.3. Системная архитектура 602 
 17.4. Создание и запуск простого примера Web-формы 602 
 17.5. Элементы управления Web 612 
 17.5.1. Элементы управления текстом и графикой 612 
 17.5.2. Элемент управления AdRotator 616 
 17.5.3. Контролирующие элементы управления 620 
 17.6. Контроль сеансов 628 
 17.6.1. Cookies 629 
 17.6.2. Контроль сеансов с помощью класса HttpSessionState 637 
 17.7. Учебный пример: гостевая книга в режиме on-line 644 
 17.8. Учебный пример: подключение к базе данных в ASP.NET 650 
 17.9. Трассировка 661 
 17.10. Резюме 663 
 17.11. Ресурсы Интернета и WWW 664 
 Глава 18. ASP.NET и Web-службы 666 
 18.1. Введение 666 
 18.2. Web-службы 667 
 18.3. Протокол SOAP и Web-службы 670 
 18.4. Публикация и использование Web-служб 671 
 18.5. Контроль сеансов в Web-службах 682 
 18.6. Использование Web-форм и Web-служб 692 
 18.7. Учебный пример: программа определения температуры 697 
 18.8. Пользовательские типы в Web-службах 706 
 18.9. Резюме 714 
 Глава 19. Организация сетей: сокеты на основе потоков и дейтаграммы 715 
 19.1. Введение 715 
 19.2. Создание простого сервера с помощью потоковых сокетов 716 
 19.3. Создание простого клиента с помощью потоковых сокетов 717 
 19.4. Взаимодействие "клиент-сервер" посредством потоковых сокетов 718 
 19.5. Взаимодействие системы "клиент-сервер" с дейтаграммами независимо от наличия соединения 725 
 19.6. Игра "Крестики-нолики" клиента с сервером через многопоточный сервер 730 
 19.7. Резюме 741 
 Глава 20. Структуры данных и коллекции 742 
 20.1. Введение 742 
 20.2. Самоотносимые классы 743 
 20.3. Связанные списки 744 
 20.4. Стеки 753 
 20.5. Очереди 757 
 20.6. Деревья 760 
 20.6.1. Дерево двоичного поиска целочисленных значений 761 
 20.6.2. Дерево двоичного поиска объектов IComparable 767 
 20.7. Коллекции классов 773 
 20.7.1. Класс Array 773 
 20.7.2. Класс ArrayList 775 
 20.7.3. Класс Stack 780 
 20.7.4. Класс Hashtable 784 
 20.8. Резюме 789 
 Глава 21. Обеспечение доступности программных приложений 791 
 21.1. Введение 791 
 21.2. Законодательство и компьютерные ресурсы 792 
 21.3. Инициатива доступности Web 793 
 21.4. Альтернативные способы просмотра изображений в сети 794 
 21.5. Повышение удобочитаемости совершенствованием структуры 795 
 21.6. Доступность в Visual Studio .NET 795 
 21.6.1. Увеличение размеров значков на панелях инструментов 796 
 21.6.2. Увеличение размера шрифта текста 796 
 21.6.3. Модификация панелей инструментов 797 
 21.6.4. Модификация клавиатуры 798 
 21.6.5. Перегруппировка окон 799 
 21.7. Доступность в C# 799 
 21.8. Доступность в таблицах XHTML 804 
 21.9. Доступность во фреймах XHTML 807 
 21.10. Доступность в XML 808 
 21.11. Использование речевого синтеза и распознавания с помощью пакета VoiceXML 808 
 21.12. CallXML 814 
 21.13. JAWS для Windows 819 
 21.14. Другие инструменты доступа 819 
 21.15. Доступность в операционной системе Microsoft Windows 2000 820 
 21.15.1. Инструментальные средства доступности для слабовидящих пользователей 821 
 21.15.2. Инструментальные средства доступности для слабослышащих пользователей 822 
 21.15.3. Инструментальные средства доступности для пользователей без возможности работы с клавиатурой 822 
 21.15.4. Microsoft Narrator 825 
 21.15.5. Экранная клавиатура Microsoft 826 
 21.15.6. Функции доступности в Internet Explorer 6.0 827 
 21.16. Резюме 828 
 21.17. Ресурсы Интернета и WWW 829 
 21.17.1. Общая информация, руководства и определения 829 
 21.17.2. Разработка приложений доступности по существующим технологиям 829 
 21.17.3. Информация о физических недостатках 831 
 Глава 22. Mobile Internet Toolkit 832 
 22.1. Введение 832 
 22.2. Клиентские устройства MIT 832 
 22.3. Введение в понятия MIT и мобильной Web-формы 833 
 22.4. Усовершенствованные элементы управления мобильными Web-формами 844 
 22.5. Пример: беспроводной портал Deitel 851 
 22.6. Аппаратно-независимый Web-дизайн с помощью таблиц стилей и шаблонов 855 
 22.7. Использование Web-служб в мобильном приложении 866 
 22.8. Резюме 870 
 22.9. Ресурсы Интернета и WWW 870 
 Приложение 1. Приоритет операций 871 
 Приложение 2. Системы счисления 873 
 П2.1. Введение 873 
 П2.2. Перевод двоичных чисел в восьмеричные и шестнадцатеричные числа 875 
 П2.3. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные 877 
 П2.4. Преобразование двоичных, восьмеричных или шестнадцатеричных чисел в десятичные 877 
 П2.5. Преобразование десятичных чисел в двоичные, восьмеричные или шестнадцатеричные 878 
 П2.6. Отрицательные двоичные числа: запись дополнения двойки 879 
 П2.7. Резюме 880 
 Приложение 3. Возможности карьерного роста 881 
 П3.1. Введение 881 
 П3.2. Интернет-ресурсы для соискателей 882 
 П3.3. Интерактивные возможности для работодателей 884 
 П3.3.1. Размещение в сети объявлений о вакансиях 884 
 П3.3.2. Недостатки трудоустройства через Интернет 885 
 П3.3.3. Разнородность рабочих мест 885 
 П3.4. Службы трудоустройства 886 
 П3.5. Web-сайты трудоустройства и вакансий 887 
 П3.5.1. Универсальные сайты трудоустройства 887 
 П3.5.2. Технические вакансии 887 
 П3.5.3. Вакансии в области беспроводных технологий 888 
 П3.5.4. Заключение контрактов через Интернет 888 
 П3.5.5. Управленческие должности 889 
 П3.5.6. Студенты и молодые специалисты 890 
 П3.5.7. Другие интерактивные службы трудоустройства 890 
 П3.6. Резюме 891 
 П3.7. Ресурсы Интернета и WWW 891 
 Сайты трудоустройства специалистов по информационным технологиям 891 
 Сайты трудоустройства 892 
 Управленческие должности 893 
 Разнородность 893 
 Сайты для людей с ограниченными физическими возможностями 893 
 Общие ресурсы 893 
 Сайты по интересам 894 
 Интерактивное заключение контрактов 894 
 Службы трудоустройства 894 
 Ресурсы трудоустройства в области беспроводных технологий 895 
 Приложение 4. Отладчик Visual Studio .NET 896 
 П4.1. Введение 896 
 П4.2. Точки прерывания 897 
 П4.3. Просмотр данных 899 
 П4.4. Управление программой 901 
 П4.5. Дополнительные возможности отладки методов 903 
 П4.6. Дополнительные возможности отладки классов 905 
 П4.7. Резюме 907 
 Приложение 5. Создание документации в Visual Studio .NET 909 
 П5.1. Введение 909 
 П5.2. Комментарии к документации 909 
 П5.3. Документирование исходного кода C# 910 
 П5.4. Создание Web-страниц документации 916 
 П5.5. Создание файлов XML-документации 917 
 П5.6. Резюме 922 
 Приложение 6. Набор символов ASCII 923 
 Приложение 7. Unicode 924 
 П7.1. Введение 924 
 П7.2. Форматы преобразования Unicode 925 
 П7.3. Символы и глифы 926 
 П7.4. Преимущества и недостатки Unicode 926 
 П7.5. Web-сайт Консорциума Unicode 927 
 П7.6. Использование кодировки Unicode 927 
 П7.7. Диапазоны символов 930 
 П7.8. Резюме 931 
 Приложение 8. Интеграция COM 932 
 П8.1. Введение 932 
 П8.2. Интеграция ActiveX 933 
 П8.3. Интеграция DLL 936 
 П8.4. Резюме 939 
 П8.5. Ресурсы Интернета и WWW 940 
 Приложение 9. Введение в HTML 4: часть 1 941 
 П9.1. Введение 941 
 П9.2. Языки разметки 941 
 П9.3. Редактирование кода HTML 942 
 П9.4. Общие элементы 942 
 П9.5. Заголовки 944 
 П9.6. Ссылки 945 
 П9.7. Изображения 947 
 П9.8. Специальные символы и разделительные линии 950 
 П9.9. Маркированные списки 951 
 П9.10. Вложенные и нумерованные списки 953 
 П9.11. Резюме 955 
 П9.12. Ресурсы Интернета и WWW 956 
 Приложение 10. Введение в HTML 4: часть 2 957 
 П10.1. Введение 957 
 П10.2. Базовые таблицы HTML 957 
 П10.3. Сложные таблицы HTML и их форматирование 959 
 П10.4. Базовые формы HTML 961 
 П10.5. Более сложные формы HTML 964 
 П10.6. Внутренние ссылки 969 
 П10.7. Создание и использование карт изображений 972 
 П10.8. Тег  974 
 П10.9. Тег  975 
 П10.10. Вложенные теги  977 
 П10.11. Резюме 979 
 П10.12. Ресурсы Интернета и WWW 980 
 Приложение 11. Введение в XHTML: часть 1 981 
 П11.1. Введение 981 
 П11.2. Редактирование XHTML 981 
 П11.3. Первый пример XHTML 982 
 П11.4. Служба контроля XHTML W3C 984 
 П11.5. Заголовки 985 
 П11.6. Ссылки 986 
 П11.7. Изображения 989 
 П11.8. Специальные символы и разрывы строк 992 
 П11.9. Маркированные списки 993 
 П11.10. Вложенные и нумерованные списки 995 
 П11.11. Резюме 997 
 П11.12. Ресурсы Интернета и WWW 998 
 Приложение 12. Введение в XHTML: часть 2 999 
 П12.1. Введение 999 
 П12.2. Базовые таблицы XHTML 999 
 П12.3. Сложные таблицы XHTML и их форматирование 1001 
 П12.4. Базовые формы XHTML 1003 
 П12.5. Более сложные формы XHTML 1006 
 П12.6. Внутренние ссылки 1012 
 П12.7. Создание и использование карт изображений 1014 
 П12.8. Тег  1016 
 П12.9. Тег  1017 
 П12.10. Вложенные теги  1020 
 П12.11. Резюме 1022 
 П12.12. Ресурсы Интернета и WWW 1023 
 Приложение 13. Специальные символы HTML/XHTML 1024 
 Приложение 14. Цвета HTML/XHTML 1025 
 Приложение 15. Поразрядные операции 1028 
 П15.1. Введение 1028 
 П15.2. Побитовые операции 1028 
 П15.3. Класс BitArray 1037 
 П15.4. Резюме 1039 
 Приложение 16. Crystal Reports для Visual Studio .NET 1041 
 П16.1. Введение 1041 
 П16.2. Ресурсы Web-сайта Crystal Reports 1041 
 П16.3. Crystal Reports и Visual Studio .NET 1041 
 П16.3.1. Crystal Reports в Web-приложениях 1043 
 П16.3.2. Crystal Reports и Web-службы 1044 
 Библиография 1045 
 Предметный указатель 1048 
 12 Оглавление 13 Оглавление