Книга "C#. Разработка компонентов в MS Visual Studio 2005/2008" содержит всю необходимую информацию для создания полноценных компонентов Win Forms на языке C# в MS Visual Studio 2005/2008, начиная с разработки и отладки и заканчивая лицензированием и распространением. Рассмотрены дизайнеры, конвертеры типа, сервисы, редакторы типов и многое другое. Информация о каждом классе, описанном в книге, сопровождается примером его использования. Весь программный код является авторской разработкой и проверен на практике.
Содержание
Оглавление
Введение 9
Программные требования 10
Аппаратные требования 10
О программном коде 10
Краткое описание глав 11
Обозначения 12
Благодарности 13
Обратная связь 13 Глава 1. Что такое компоненты 15
1.1. Компоненты: достоинства и недостатки 15
1.2. Особенности разработки компонентов 17 Глава 2. Дизайнер MS Visual Studio 19
2.1. Среда Visual Studio 19
2.2. Дизайнер формы 20
2.3. Визуальные и невизуальные компоненты в дизайнере формы 23
2.4. Палитра компонентов 23
2.5. Окно свойств 24
2.6. Редакторы свойств 25 Глава 3. Немного теории 29
3.1. Свойства и события 29
3.2. Интерфейсы 34
3.3. Метаинформация, отражение и атрибуты 35 Глава 4. Начнем с нуля 43
4.1. Общая архитектура 43
4.2. Класс Component 45
4.3. Контейнеры 47
4.4. Хосты 51
4.5. Дескрипторы свойств 52
4.6. Определение режима разработки 58
4.7. Компоненты или элементы управления? 62
4.8. Выбор базового класса 63
4.9. Отладка компонентов в режиме разработки 65 Глава 5. Создаем первый компонент 69
5.1. Создаем проект 69
5.2. Добавляем информацию о свойствах 72
5.3. Свойство, событие и значение по умолчанию 74
5.4. Дополнительные атрибуты свойств 76
5.5. Реакция на изменение свойств 78
5.6. Описание и значок компонента 79
5.7. События 81
5.8. Установка компонентов 82
5.9. Первые итоги 84 Глава 6. Дизайнеры 85
6.1. Что такое дизайнер 85
6.2. Добавление дизайнера в проект 87
6.3. Привязка дизайнера к компоненту 88
6.4. Смарт-теги 89
6.5. Контекстное меню компонента 100
6.6. Скрытие элементов из редактора свойств 103
6.7. Виртуальные свойства 104
6.8. Дополнительная отрисовка компонентов 107
6.9. Обработка событий мыши в режиме разработки 109
6.10. Линии взаимного расположения компонентов 111
6.11. Действие по умолчанию 112
6.12. Прямая обработка очереди сообщений 113
6.13. Встроенные компоненты 114
6.14. Слои и маркеры 117
6.15. Реализация дополнительного меню с помощью маркера 125
6.16. Правила изменения размера и положения компонента 129
6.17. Расположение компонентов друг на друге 131
6.18. Сетка дизайнера 132
6.19. Инициализация компонентов 133 Глава 7. Сервисы 135
7.1. Сервисы режима разработки 135
7.2. Управление окном смарт-тега 138
7.3. Управление слоями и маркерами 138
7.4. Обработка изменений компонентов и их свойств 139
7.5. Управление выделенными компонентами 145
7.6. Расширение контекстного меню формы 149
7.7. "Горячие" команды формы 150
7.8. Работа с именами и типами компонентов 154
7.9. Управление событиями компонента 158
7.10. Доступ к параметрам дизайнера 161
7.11. Нотификации о смене дизайнера 164
7.12. Пользовательские данные времени разработки 168
7.13. Получение информации о проекте 171
7.14. Вывод отладочной информации 175
7.15. Встроенные компоненты 176
7.16. Взаимодействие с палитрой компонентов 179
7.17. Контекстная подсказка компонента 188
7.18. Добавление и удаление свойств, событий и атрибутов компонентов 190
7.19. Работа с файлами ресурсов 195
7.20. Создание диалоговых окон в режиме разработки 196
7.21. Управление окнами Visual Studio 200
7.22. Сервис IPropertyValueUIService 201
7.23. Добавление специальной области в редактор формы 206 Глава 8. Конвертеры типов 209
8.1. Сложное свойство 210
8.2. Конвертеры типов 214
8.3. Конвертеры типов .NET Framework 2.0 215
8.4. Реализация собственного конвертера типа 220
8.5. Стандартный набор значений 224
8.6. Класс SimplePropertyDescriptor 233
8.7. Редактирование флагов 234
8.8. Динамическое управление набором свойств 239
8.9. Стандартное сложное свойство 246
8.10. Стандартный набор значений-классов 247
8.11. Определение порядка отображения свойств 254 Глава 9. Редактор типа 255
9.1. Класс UITypeEditor 255
9.2. Классы стандартных редакторов типов 256
9.3. Реализация собственного редактора типа 258
9.3.1. Выпадающий диалог 259
9.3.2. Модальный диалог 267
9.3.3. Изображение значений 270
9.3.4. Использование стандартных редакторов типов 272
9.3.5. Редактор с параметрами 294 Глава 10. Сериализация времени разработки 299
10.1. Провайдеры 299
10.2. Преимущества модели провайдеров 300
10.3. Принцип работы провайдеров 301
10.4. Управление сериализацией 305
10.5. Динамическое управление сериализацией 312
10.6. Локализация 313
10.7. Настраиваемые свойства 316
10.8. Управление кодом сериализации 318 Глава 11. Рендеринг, расположение и поведение компонентов 323
11.1. Рендеринг компонентов 323
11.2. Стандартный рендеринг 324
11.3. Управление отрисовкой и поведением компонентов 326
11.4. Компонент, невидимый в режиме выполнения 328
11.5. Управление расположением элементов 328 Глава 12. Копаем глубже 333
12.1. Компоненты-расширители и глобальные свойства 333
12.2. Транзакции дизайнера 347
12.3. Добавление закладки в редактор свойств 349
12.4. Обобщения 352
12.5. Потоки 357
12.6. Взаимодействие с Win32 API 365 Глава 13. Компоненты работы с данными 381
13.1. Несколько слов о привязке данных 381
13.2. Стандартная привязка данных 386
13.3. Интерфейсы источника данных 390
13.4. Разработка компонентов работы с данными 393
13.5. Связь свойств между собой 409 Глава 14. Распространение компонентов 411
14.1. Три составляющие и позднее связывание 411
14.2. Где Visual Studio ищет сборки 413
14.2.1. Подпись сборок 414
14.2.2. Установка сборок в GAC 416
14.3. Установка компонентов 419
14.3.1. Программная установка компонентов 421
14.4. Процедура разработки 432
14.5. Лицензирование 433
14.5.1. Провайдер лицензий 433
14.5.2. Класс LicFileLicenseProvider 433
14.5.3. Подключение провайдера лицензий к компоненту 434
14.5.4. Класс License 434
14.5.5. Класс LicenseContext 435
14.5.6. Класс LicenseManager 435
14.5.7. Реализация собственного алгоритма лицензирования 436
14.5.8. Получение уникальной информации о компьютере 437 Глава 15. Атрибуты времени разработки 449 Глава 16. FAQ 453
16.1. Общие определения 455
16.2. Режим разработки 455
16.3. Дизайнер формы и компонентов 457
16.4. Отрисовка компонентов 459
16.5. Редактирование свойств и сериализация 460
16.6. Редактирование размеров и положения компонентов 463
Приложение 1. Полезные ссылки 465
Приложение 2. Описание компакт-диска 469
Литература 473
Предметный указатель 475
Первое издание этой книги Язык программирования C# 2010 и платформа .NET 4. вышло в свет во время проведения конференции Tech-Ed в 2001 г. в Атланте (шт. Джорджия). На тот момент платформа .NET пребывала в стадии бета-тестирования.
В этой книге C++: базовый курс. Изд.3. Шилдт описаны все основные средства языка С++ — от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм обработки исключительных ситуаций...