C# для профессионалов Том II Глава 13 XML Стандарты W3C Пространство имен System.Xml XML 3.0 (MSXML3.DLL) в C# System.Xml Чтение и запись XML XmlTextReader Проверка Запись XML Объектная модель документа в .NET XPath и XslTransform XML и ADO.NET Данные ADO.NET в документе XML Преобразование документа XML в данные ADO.NET Запись и чтение DiffGram Сериализация объектов в XML Заключение Глава 14 Операции с файлами и реестром Управление файловой системой Классы .NET, представляющие файлы и папки Класс Path Пример: файловый браузер Перемещение, копирование и удаление файлов Пример FilePropertiesAndMovement Чтение и запись файлов Потоки Чтение и запись двоичных файлов Класс FileStream Пример: объект чтения двоичного файла Чтение и запись текстовых файлов Класс StreamReader Класс StreamWriter Пример: ReadWriteText Чтение и запись в реестр Реестр Классы реестра в .NET Пример: SelfPlacingWindow Заключение Глава 15 Работа с активным каталогом Архитектура активного каталога Свойства Концепции активного каталога Объекты Схема Конфигурация Домен активного каталога Контроллер домена Сайт Дерево домена Лес Глобальный каталог Репликация Характеристики данных активного каталога Схема Управление активным каталогом Active Directory Users and Computers ADSI Edit ADSI Viewer Интерфейсы службы активного каталога (ADSI) Программирование активного каталога Классы в System.DirectoryServices Связывание Протокол Имя сервера Номер порта Известное имя Имя пользователя Аутентификация Связывание с помощью класса DirectoryEntry Получение записей каталога Свойства объектов пользователей Коллекции объектов Кэш Обновление записей каталога Создание новых объектов Поиск в активном каталоге Пределы поиска Поиск объектов пользователей Интерфейс пользователя Получение именующего контекста схемы Получение имен свойств класса пользователя Поиск объектов User Заключение Глава 16 Страницы ASP.NET Введение в ASP.NET Управление состоянием в ASP.NET Формы Web ASP.NET Серверные элементы управления ASP.NET Палитра элементов управления Пример серверного элемента управления ADO.NET и связывание данных Модернизация приложения заказа помещения База данных Соединение с базой данных Модификация элемента управления календарем Запись мероприятий в базу данных Еще о связывании данных Вывод данных с помощью шаблонов Конфигурация приложения Заключение Глава 17 Службы Web SOAP WSDL Службы Web Создание служб Web Типы данных, доступные для служб Web Использование служб Web Расширение примера заказа помещения для проведения мероприятий Служба Web заказа помещения для проведения мероприятий Клиент приложения предварительного заказа помещения для проведения мероприятия Заключение Глава 18 Специальные элементы управления Элементы управления пользователя Простой элемент управления пользователя Преобразование приложения предварительного заказа мероприятия в элемент управления пользователя Специальные элементы управления Конфигурация проекта специального элемента управления Базовые специальные элементы управления Производный элемент управления RainbowLabel Поддержание состояния в специальном элементе управления Создание композитного специального элемента управления Элемент управления выборочным опросом Элемент управления Option Построитель элемента управления StrawPoll Стиль StrawPoll Элемент управления StrawPoll Добавление обработчика событий Заключение Глава 19 Взаимодействие с COM Сравнение COM и .NET Принципы работы COM Недостатки COM Как работают компоненты .NET COM или .NET? Использование компонентов COM в .NET Диалоговое окно ссылок Оболочки времени выполнения TlbImp.exe Позднее связывание с компонентами COM Использование элементов управления ActiveX в .NET AxImp.exe Ссылка на сборку прокси ActiveX Размещение элемента управления ActiveX в WinForm Использование компонентов .NET в COM RegAsm.exe TlbExp.exe Службы вызова платформы Неуправляемый код и ненадежный код Доступ к неуправляемому коду Недостатки PInvoke Заключение Главa 20 Службы COM+ Введение Службы COM+ в ретроспективе Состав служб COM+ Snap-in служб компонентов Транзакции COM+ Назначение транзакций Принципы транзакций Транзакции в N-звенной архитектуре Службы COM+ и время жизни объекта Создание пулов объектов Оперативная активизация (JIT) Безопасность Новые службы COM+ События Очереди сообщений Выравнивание нагрузки компонентов Использование служб COM со сборками .NET Подготовка сборок .NET для служб COM+ Предоставление атрибутов сборок Развертывание сборки для служб COM+ Предварительные итоги Использование транзакций со сборками .NET Определение транзакционной поддержки Кодирование транзакций с помощью ContextUtil Другие полезные методы ContextUtil Использование пудов объектов со сборками .NET Атрибут ObjectPooling Интерфейс ServicedComponent Использование активизации JIT со сборками .NET Заключение Глава 21 Графические возможности GDI+ Основные принципы рисования GDI и GDI+ Контексты устройств и объект Graphics Пример: рисование контуров Рисование фигур с помощью OnPaint Использование области вырезания Измерение координат и областей Point и PointF Size и SizeF Rectangle и RectangleF Region Замечание об отладке Изображение прокручиваемых окон Координаты мировые, страницы и устройства Цвета Значения красный-зеленый-синий (RGB) Именованные цвета Режимы вывода графики и палитра безопасности Палитра безопасности Перья и кисти Кисти Перья Рисование фигур и линий Вывод изображений Вопросы, возникающие при манипуляциях с изображениями Рисование текста Простой пример с текстом Шрифты и семейства шрифтов Пример: перечисление семейств шрифтов Редактирование текстового документа: пример CapsEditor Метод Invalidate() Вычисление размеров объектов и размера документа OnPaint() Преобразования координат Ответ на ввод пользователя Печать Заключение Глава 22 Доступ в Интернет Класс WebClient Загрузка файлов Пример: базовый клиент Web Выгрузка файлов Классы WebRequest Другие свойства WebRequest и WebResponse Отображение выходных данных в виде страницы HTML Иерархия классов WebRequest и WebResponse Служебные классы URI Пример вывода страницы Адреса IP и имена DNS Классы .NET для адресов IP Пример: DnsLookup Протоколы нижнего уровня Классы нижнего уровня Заключение Главa 23 Создание распределенных приложений с помощью .NET Remoting Что такое .NET Remoting Web Services Anywhere CLR Object Remoting Обзор .NET Remoting Контексты Активизация Атрибуты и свойства Коммуникация между контекстами Удаленные объекты, клиенты и серверы Удаленные объекты Простой сервер Простой клиент Архитектура .NET Remoting Каналы Задание свойств канала Подключаемость канала Форматтеры ChannelServices и RemotingContiguration Сервер для активизированных клиентом объектов Активизация объектов URL-приложения Активация хорошо известных объектов Активизация объектов, активизированных клиентом Объекты прокси Сообщения Приемники сообщений Уполномоченный приемник Приемник серверного контекста Объектный приемник Передача объектов в удаленные методы Направляющие атрибуты Управление временем жизни Обновление аренды Классы, используемые для управления временем жизни Пример: получение информации об аренде Изменение используемых по умолчанию конфигураций аренды Конфигурационные файлы Конфигурация сервера для хорошо известных объектов Конфигурация клиента для хорошо известных объектов Серверная конфигурация для активизированных клиентом объектов Клиентская конфигурация для активизированных клиентом объектов Серверный код, использующий конфигурационные файлы Клиентский код, использующий конфигурационные файлы Службы времени жизни в конфигурационных файлах Инструменты для файлов удаленной конфигурации Приложения хостинга Хостинг удаленных серверов в ASP.NET Классы, интерфейсы и SOAPSuds Интерфейсы SOAPSuds Отслеживание служб Асинхронная удаленная работа Атрибут OneWay Удаленное выполнение и события Удаленный объект Аргументы событий Сервер Приемник событий Клиент Выполнение программы Контексты вызова Заключение Глава 24 Службы Windows Понятие службы Архитектура Служебная программа Управляющий менеджер служб Служебная управляющая программа Конфигурационная программа службы Пространство имен System.ServiceProcess Создание службы Библиотека классов, использующая сокеты Пример TcpClient Проект Windows Service Класс ServiceBase Потоки выполнения и службы Установка службы Программы установки Класс Installer Классы ServiceProcessInstaller и ServiceInstaller ServiceInstallerDialog InstallUtil Клиент Мониторинг и управление службой Консоль управления Microsoft (ММС) net.exe sc.exe Server Explorer Класс ServiceController Управление службой Поиск неисправностей Интерактивные службы Регистрация событий Архитектура регистрации событий Классы регистрации событий Добавление регистрации событий Трассировка Создание приемника событий Мониторинг производительности Классы мониторинга производительности Построитель счетчиков производительности Добавление счетчиков производительности perfmon.exe Служба счетчика производительности Свойства служб Windows 2000 Изменения сетевого соединения и события электропитания Восстановление Приложения COM+ в роли служб Заключение Глава 25 Система безопасности .NET Система безопасности доступа к коду Группы кода Caspol.exe — утилита политики системы безопасности доступа к коду Полномочия доступа к коду и множества полномочий Просмотр полномочий сборки Уровни политики: машина, пользователь и предприятие Поддержка безопасности в .NET Требуемые полномочия Запрашиваемые полномочия Неявное полномочие Отказ от полномочий Заявляемые полномочия Создание полномочий доступа к коду Декларативная безопасность Система безопасности на основе ролей Принципал Принципал Windows Роли Система безопасности на основе декларативной роли Управление политикой системы безопасности Конфигурационный файл системы безопасности Простой пример Управление группами кода и полномочиями Включение и выключение системы безопасности Восстановление политики системы безопасности Создание группы кода Удаление группы кода Изменение полномочий группы кода Создание и применение множеств полномочий Распространение кода с помощью строгого имени Распространение кода с помощью сертификатов Управление зонами Заключение Пpиложeние A C# для разработчиков C++ Введение Соглашения в этом приложении Терминология Сравнение C# и C++ Различия Сходства Новые свойства Новые свойства базовых классов Неподдерживаемые свойства Пример Hello World Инструкции #include Пространства имен Точка входа: Main() и main() Вывод сообщения Сравнение свойств Архитектура программы Программные объекты Файловая структура Точка входа программы Синтаксис языка Опережающие объявления Отсутствие разделения определения и объявления Поток выполнения программы if…else while и do…while switch foreach Переменные Базовые типы данных Базовые типы данных как объекты Преобразования базовых типов данных Проверяемое (checked) преобразование типов данных Строки Последовательности кодирования Типы значений и ссылочные типы Инициализация переменных Упаковка Управление памятью Оператор new Методы Параметры методов Перезагрузка методов Свойства Операторы Оператор присваивания (=) this new Классы и структуры Классы Определение класса Инициализация полей членов Конструкторы Статические конструкторы Конструкторы по умолчанию Списки инициализации конструктора Деструкторы Наследование Виртуальные и невиртуальные функции Структуры Константы Константы, ассоциированные с классом (статические константы) Константы экземпляра Перезагрузка операторов Индексаторы Определенные пользователем преобразования типов данных Массивы Одномерные массивы Многомерные массивы Проверка границ Изменение размера массивов Перечисления Исключения Указатели и небезопасный код Фиксация донных в куче Объявление массивов в стеке Интерфейсы Делегаты События Атрибуты Директивы препроцессора Пpиложение B C# для разработчиков Java Основы Идентификаторы Стандарты именования Ключевые слова Входные и выходные данные Компиляция Пространства имен Создание и добавление библиотек при компиляции Обнаружение и разрешение Строгие имена и глобальный кэш Типы данных Простые типы Типы перечислений Структуры Ссылочные типы Операторы Присваивание Сравнение Операторы равенства aрифметические, условные, побитовые, битового дополнения и сдвига Преобразование типов Перезагрузка sizeof и typeof Делегаты Подробно о классах Модификаторы Конструкторы Методы Свойства и индексаторы События Исключения Условная компиляция Вопросы безопасности Заключение Приложение C C# для разработчиков VB6 Различия между C# и VB Классы Компиляция Базовые классы .NET Соглашения Пример: Форма для извлечения квадратного корня Версия SquareRoot на VB Версия SquareRoot на C# Базовый синтаксис С# требует, чтобы все переменные были объявлены Комментарии Разделение и группировка инструкций Использование заглавных букв Методы Переменные Объявления Присваивание значений переменным Классы Инструкции If Вычисление квадратного корня: еще один метод класса Строки Дополнительный код в C# Что происходит при выполнении программы Код C# для оставшейся части программы Пространства имен Инструкция using Определение класса: наследование Точка входа в программу Создание экземпляров классов Классы С# Вход в цикл сообщений Класс формы SquareRoot Подводя итог Пример: Employees и Managers Модуль класса Employee в VB Класс Employee в C# Конструктор Employee Свойства класса Employee Методы класса Employee Статические члены Наследование Наследование от класса Employee Класс Manager Переопределение метода Конструкторы класса Manager Перезагрузка методов Использование классов Employee и Manager Ссылки на производные классы Массивы объектов Цикл for Другие свойства C# Типы данных Типы данных значений и ссылочные типы данных Операторы Тернарный оператор Заключение Приложeниe D Параметры компиляции C# C# Сегодня Программное соединение событий в C# Другой пример Загрузка сборки Заключение
Глава 13 XML XML играет очень большую роль в платформе .NET. Платформа не только позволяет использовать XML в приложениях, но сама применяет XML для таких вещей, как конфигурационные файлы и документация исходного кода. Для XML платформа .NET содержит пространство имен System.Xml
. Это пространство имен загружается вместе с классами, задействованными при обработке XML.
В этой главе говорится о том, как использовать реализацию DOM, и что предлагает .NET в качестве замены SAX. Будет показана совместная работа XML и ADO.NET и их преобразования. Мы узнаем так же, как можно сериализовать объекты в документ XML и создать объект из документа XML (десериализовать). Кроме того увидим, как включать XML в приложения C#. Следующие классы будут рассмотрены более подробно:
#9633; XmlReader
и XmlTextReader
#9633; XmlWriter
и XmlTextWriter
#9633; XmlDocument
и DOM
#9633; XPath
и XslTransform
#9633; ADO.NET
и XmlDataDocument
#9633; XmlSerialization
Начнем эту главу с текущего состояния стандартов XML.