Оглавление Об авторах 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 Оглавление