Введение
Для вас ли эта книга
Как использовать эту книгу
Глава 1. Введение в .NET
Что такое .NET?
Введение в ключевые технологии
IL и Common Language Specification (промежуточный язык, общеязыковая спецификация)
Common Language Runtime
Base Class Library (библиотека базовых классов)
ASP.NET
Windows Forms
XML
C#
Как работает архитектура .NET?
IL и метаданные
ДТ-компеляция
Контролируемый кол и сборка мусора
Пространства имен
Сборки
Области применения
Как .NET повлияла на Visual C++?
Visual C++
Visual Basic
А вотиС#
Как насчет COM?
Глава 2. Модель программирования .NET
Теория
ОО-программирование с высоты птичьего полета
Классы и объекты п коле
Классы и объекты в коле
Наследование и полиморфизм
11сбоды1ЮЙ экскурс в UML
Интерфейсы
Классы
Элементы классов
Характерце гики классов
Ссылочные типы и типы значений
Структуры
Наследование
Интерфейсы
Делегаты
События
Метаданные и атрибуты
1Лг-к-пк->читрп1.ные ситуации
oПрактика
Создание классов
Методы перегрузки и переопределения
Реализация полей и методов принадлежащих классу ..
Создание структур
Создание и уничтожение объектов в VB
Как управлять очисткой в объектах .NET?
Использование наследования
Методы подмены
Создание абстрактных классов
Создание закрытых классов и методов
Создание свойств
Создание интерфейсов
Реализация интерфейсов
Использование объектов через интерфейсы
Создание и использование делегатов
Создание и использование событий
Как прикрепить атрибуты к моим классам и методам?
Как создать шаблонные атрибуты?
Как запрашивать атрибуты?
Как отлавливать исключительные ситуации\'\'
Как генерировать исключительные ситуации?
Как получить типовой объект представляющий тип? .
Как узнать все о типе?
Как динамически создавать объекты?
шава 3. Пространство имен System
Теория
\' Основные типы
Основные типы и CLS
Туты значений с гьчавакмцей точкой
Преобразования
Интерфейсы
Класс Object
Равенство объектов
Завершение существования объекта (фипализация) .
GetHashCodeQ
GetTypeO
Клонирование и копирование
ToStringO
Массивы
Другие типы
String
DateTime и TimeSpan
TimeZone
Decimal
Перечисления
Исключительные ситуации
Класс Console
Класс Math
Класс Туре
Как осуществлять доступ к классам определенным в пространстве имен System?
Какая связь между типами языка и типами определенными в системе?
Как создать новый тип значений?\'.
Как проверить являются ли два объекта одинаковыми?
Ссылочные типы
Типы Value
Как реализовывать поверхностное и глубокое копирование для класса?
Как реализовывать метод ToStringO для класса?
Работа с массивом с отсчетом индексов от нуля в Visual Basic
Как работать с массивами .NET?
Создание массивов
Нахождение свойств массивов
Получение и установление значений
Операции с массивами
Как работать со строками?
Создание строк
Сравнение строк
Копирование и изменение объектов String
Поиск строк
Преобразование строк
Как представлять и использовать дату и время?
Создание объектов TimeSpan
Запрашивание объектов TimeSpan
Манипулирование объектами TimeSpan
Создание объектов DateTime
Печать даты и времени
Запрашивание объектов DateTime
Операции над объектами DateTime
Как объявлять и использовать перечисления?
Как узнать какая исключительная ситуация произошла и где?
Как использовать внутренние исключительные ситуации?
В чем различие между Console.WriteLineQ и Console.Out.WriteLineQ?
Как осуществлять форматный вывод?
Форматирование по изображению
Метод ToString()
Как генерировать случайные значения?
Глава 4. Пространство имен System.Collections.
Теория
Интерфейсы System.Collections
lEnumerable
[Enumerator
(Collection
\'IList
IComparer
IDictionary
IDictionaryEnumerator
IHashCodeProvider :
ArrayList
BitArray
Hashtable
NameValueCollection
Очередь
SortedList
Стек
StringCollection и StringDictionary
Практика
Какую коллекцию следует использовать?
Какие коллекции потокобезопасны?
Как итерировать по коллекции?
Как использовать Array List?
Создание и заполнение Array Lists
Удаление элементов
Операции с ArrayLists
Использование интерфейсных методов
Как хранить значения по ключу?
Создание и заполнение объектов Hashtable
Поиск ключей и значений
Удаление элементов
Использование интерфейсных методов
Использование SortedLists
Создание и заполнение SortedLists
Извлечение элементов
Изменение элементов
Удаление элементов
Использование потокобезопасных объектов SortedList
Как осуществлять доступ к элементам в том же порядке в котором они были получены? 157
Как использовать Stack?
Как хранить флаги в Bit Array?
Хранение строк в StringCollection
Хранение строк поключув NameValueCollection
Поиск и извлечение элементов
Удаление элементов
Как реализовать свою собственную сортировку?
Как создавать свои собственные коллекции?
Глава 5. Пространства имен XML.
Теория
XML с высоты 30000 футов
Что такое XML?
Структура документа XML
Атрибуты
Сущности и разделы CDATA
Проверка правильностиXML
Пространства имен
Обработка XML
XSL трансформации
Пространство имен System.XML
XmlTextReader
XmlValidatingReader
XmlTextWriter
XmlDocument
XmlNode
XmlElement\'.
Члены XmlDocument
XmlNavigator
XslTransform
Практика
Какой класс XML следует использовать?
Парсинг документа XML с использованием
XmlTextReader
Создание считывателя (Reader)
Чтение элементов
Работа с атрибутами
Работа с пространствами имен
Разбор документа с проверкой правильности
Написание документа XML с использованием XmlTexlWriter
Добавление инструкций обработки и комментариев
Работа с пространствами имен
Использование XPathNavigator
Создание навигатора
Перемещение по дереву
Перемещение по атрибутам
Создание и использование деревьев DOM с применением XmlDocument
Загрузка существующего документа XML
Навигация
Работа с узлами-потомками
Создание и изменение узлов
Использование XPalh
Компилирование выражений XPath
Преобразование XML с использованием XslTransform
ава 6. Пространства имен ввода/вывода и для работы в сети
Теория
Потоки
Класс Stream
Асинхронные операции
Поиск
FileStream
MemoryStream
Другие классы Stream
Ввод/вывод текста с использованием
Readers и Writers
Классы TextWriter
StreamWriter
StringWriter
Классы TextReader:
StreamReader
StringReader.-.-.тттттт;:..-
Файлы и директории
Класс Fil\'eSystemlnfo
Класс File
Кпярр FilpTnfV*
Класс Directory
Класс Directory Info
Класс Path
FileSystemWalcher
Пространство имен System.Net
Классы IPAddress IPEndPoint и Dns
Классы WcbRequest и WcbResponse
Пространство имен System.Net.Sockets
Что такое сокеты?
Как использовать сокеты?
Практика
Использование двоичного ввода/выьола с потоками
Чтение и запись текстовых файлов
Запись файлов
Чтение файла
Как работать с файлами и директориями на диске? .
Создание проекта
Получение списка меток всех дисков
Смена дисков
Обработка директорий
Отображение деталей файлов и директорий
Изменение директории
Перемещение по уровням
Как отображать изменения файлов и директорий? ...
Создание проекта
Создание пользовательскою интерфейса
Использование сокетов
Написание сокетного клиента
Настройка сокета
Получение потока
Запись данных в сокет
Написание сокетного сервера
Глава 7. Безопасность в .NET
Теория
Модель безопасности .NET
Как безопасность .NET взаимодействует с безопасностью Windows?
Code access permissions
Identity permissions
Role-based security permissions
Security policies
Установка политик безопасности
Разрешения в коде
Класс CodeAccessPermission
Запрос разрешений
Отказ в разрешениях
Обеспечение разрешений
Практика
Подписание сборок защищенными именами
Использование Visual Studio .NET
Использование инструментария генерации сборок
Как ограничивать доступ компонентов к файлам и директориям?
Как убедиться в том что код в методе исполняют только заданные пользователи?
Обязательная проверка безопасности:
Декларативная проверка безопасности
Использование объекта Principal
Глава 8. Пространство имен System.Web
Теория
Введение в ASP .NET
От ASP к ASP .NET
Как работают Web-страницы
Протокол HTTP
Связь без установления соединения (connectionless) и с неизменным состоянием (stateie
Сохранение данных
Методы форм GET и POST
Интегрирование ASP .NET в ваши приложения
Web-формы
Как работают Web-формы
Код после
События ASP .NET
Событие Page_Load
Событие Page_Unload
Интегрирование Web-форм в проект приложения
Элементы управления Web
Элементы управления HTML
Элементы управления Web
Элементы управления Web генерирующие HTML
Элементы управления проверки достоверности
Преобразование элементов управления HTML в серверные элементы управления
События элементов управления
AutoPostBack
Web-службы
Введение в Web-службы
Примеры Web-служб
.NET My Services
Устройства с выходом Web
Как работают Web-службы
Изменения принципов (парадигмы) разработки
Интегрирование Web-служб в проекты приложений
Создание Web-служб
Вызов Web-служб
SOAP GET и POST
Обнаружение
WSDL язык описания Web-служб
XML в Web-службах
Вопросы работоспособности Web-служб
Практика
Создание Web-форм
Добавление Web controls на Web-форму
Режим компоновки Web-формы
Работа с элементами управления и режимами компоновки Web-формы
Создание кода для обработки элементов управления Web
Обнаружение вызовов postback в событии Page_Load
Работа с отложенными событиями Web controls
Использование элемента управления Web DataGrid
Работа с элементами управления Web проверки достоверности
Котированные данные в сеансе Web-сервера
Тестирование и отладка Web-форм
Точки прерывания и инструменты отладки
Свойств Trace Web-форм
Создание Web-служб
BookService
Перемещение библиотек классов в Web-службы
Исследование Web Service Discovery и WSDL
Web Service Discovery
WSDL
Доступ к Web-службам из приложений
Тестирование и отладка Web-служб
Отладка автономной Web-службы в Visual Studio .NET
Точки прерывания и отладочные инструменты
Использование удаленных Web-служб
Глава 9. Формы Windows
Теория
Формы и элементы управления
Анатомия приложений форм Windows
Создание скелета приложения
Понимание кода приложения и командной строки
Класс Form
Свойства форм
Отношения между формами
Использование форм MDI
Использование диалогов
Обработка событий
Класс Application
Визуальное наследование
Общие диалоги
Практика
Как создавать приложения форм Windows?
Как создавать новую форму и выводить ее на экран?
Создание форм MDI
Создание и использование диалогов
Создание диалога
Использование диалога
Вывод на экран MessageBox (окон сообщений)
Как работать с меню в формах?
Обработка событий меню
Работа с меню в коде
Как связывать контекстное меню с формой?
Вывод диалогов открытия и закрытия файлов
Как создать форму на основе уже созданной формы?
Как использовать разделитель в форме?
Глава 10. Формы Windows и элементы управления
Теория
Формы и элементы управления
Класс Control
Стили элементов управления
Перерисовка и обявление данных недействительными
Работа с элементами управления
Labels (метки) и LinkLabels (метки-ссылки)
Кнопки
CheckBox (флажки) и RadioButton (переключатели)
Группировка кнопок RadioButton
Listbox (списковые окна)
CheckedListBoxes
ComboBox (комбинированный управляющий элемент)
TextBoxes
Класс TextBox
Класс RichTextBox
DataGrid
DatcTimePicker
MonthCalendar
Управляющие стрелки (Up-Down Controls)
GroupBox
Panel
Scrollbars и TrackBars
ImageList
ListView и Tree View
Элемент у правления Tree View
Элемент управления ListView
Меню
PictureBox
ProgressBar
SlatusBar
ToolBar
Systemlnformation
TabContiol
Timer
Tray Icon
Элементы управления-поставщики (provider controls)
Практика
Размещение элементов управления на формах
Установка порядка перемещения по элементам управления с помощью клавиши Tab
Использование меток для навигации по форме
Имитирование ссылок браузера
Как создать группу кнопок RadioButton?
Работа с TextBox
Получение и установка содержимого
Одно- и многострочные текстовые окна
Работа с выборками
Изменение регистра символов
Как узнать что содержимое текстового элемента управления изменилось?
Ввод скрытых паролей в TextBox
Как позволить пользователю выбрать один из массивов строк?
Как показать значение Trnrlf Вяг9
Как использовать ListBox CheckedListBox и ComboBox?
Установка свойств
Добавление элементов
Определение того что было выбрано
Обработка уведомлений о выбранных элементах
Работа с CheckedListBox
Работа ComboBoxes
Работа со StatusBars
Текст и панели
Работа с ToolBar (инструментальная линейка)
Установка Toolbar
Обработка событий кнопок
Использование DropDownButlon ToggleButton и Separaior
Использование TreeView
Установка Tree View
Добавление узлов
Опции вывода TreeView
Обработка событий
Использование ListVievv
Установка ListView
Добавление элементов
Обработка событий
Создание форм снабженных закладками
Использование таймеров\'
Как размещать элементы управления ActiveX на форме Windows?
Как создавать свои собственные элементы управления?
Инициализация элемента управления
Переопределение метода OnPaint
Обработка событий мыши
Тестирование элементов управления
Глава 11. Графические пространства имен.
Теория
Основы графики GDI
Класс Graphics
Основные структуры данных
Цвет
Графические инструменты: карандаши и кисти
Pens (карандаши)
Использование стандартных карандашей
Brush (кисти)
Использование стандартных кистей
Кисти с расширенными возможностями
Детали класса Graphics
Графические объекты и рисование
Шрифты
Обработка изображений
Класс Image
Класс Bitmap
Класс icon
Printing (Печать)
Класс PrintDocument
Классы Settings
Как рисовать на форме\'.\'
Использование членов класса Graphics
Работа с цветом
Преобразование цвета
Работа с карандашами и кистями
Создание и использование карандашей ...
Создание и использование кисте\'й
Кисти с расширенными возможностями ...
Использование преобразований
Представление преобразований
Как управлять перерисовкой?
Работа с шрифтами
Создание шрифтов
Вывод текста
Вывод контуров букв
Вывод повернутого текста
Итерирование по шрифтам
Как отображать изображения на форме?
Как осуществлять печать?
Обнаружение и выбор принтера
Установка документа для печати
Создание обработчика печати
Печать многостраничных документов
Глава 12. Другие пространства имен
Теория
Другие пространства имен .NET
Работа с потоками
Что такое потоки?
Когда полезны потоки?
Синхронизация потоков
Класс Thread
Управление потоками
Состояние потока и приоритет
Классы Synchronization
Класс Mutex
Оператор SyncLock в Visual Basic
Класс Monitor
Глобализация
Культурная информация
Календарная информация
Форматная информация
Службы Windows
Взаимодействие со службами
Архитектура процесса службы (service process)
Пространство имен System.ServiceProcess
Класс ServiceBase
Класс Servicelnstaller
Класс ServiceController
System.Diagnostics
Использование утверждений для проверки правильности работы
Классы Trace и Debug
Трассировка выполнения программы
Контроль трассировки
Журнал регистрации событий
Использование журнала регистрации событий в.NET
Текстовые пространства имен
Классы кодировок
Класс StringBuilder
Регулярные выражения
Практика
Написание многопоточиого кода
Создание основного приложения
Установка
Потоковая функция
Добавление дополнительных потоков
Управление потоками
Создание приложений служб Windows
Создание структуры службы
Добавление функций служб
Создание и запуск потока
Управление потоком
Создание компонентов инсталляции для службы
Установка службы
Использование утверждений
Трассировка выполнения программы
Контроль трассировки
Использование журнала регистрации событий
Запись в журнал регистрации событий
Чтение из журнала регистрации событий
Использование StringBuilder
Использование регулярных выражений для подбора комбинаций (символов) в тексту
Более глубокие примеры
Глава 13. Удаленные вызовы методов в .NET.
Теория
Основы Remoting
Технологии Remoling
Клиенты и серверы Remoting
Активизация и время жизни
Single call
Singleton
Client Activated Objects
Объекты stateless против объектов stateful
Сравнение Remoting и DCOM
Сравнение Remoting и Web-служб
Remoting и многоуровневое проектирование приложений ....
Каналы
Канал TCP
Канал HTTP
Стоки (sink)
Порты
Регистрация канала
Удаленные взаимодействия
Сообщения Remoting
Маршализация данных в Remoling
Форматтеры
Proxy в Remoting
Контекст вызова
SOAP eRemoting
Серверы Remoting
Разработка серверов Remoting
Серверные приложения
Кофшл\'рированиесервера Remoling
Загрузка конфигурации
Конфигурационный файл
Программное конфигурирование
Регистрация объекта-сервера
Управление версиями
Клиенты Remoting
Вызов сервера Remoting
Активизация объекта-сервера Remoting
Client Activated Objects
Activator
Клиентские конфигурационные файлы
Безопасность Remoting
Безопасность связи
Безопасность объектов
Практика
Создание сервера Remoting
Программное конфигурирование сервера Remoting
Создание приложения клиента Remoting
Программное конфигурирование клиента Remoting
Использование HTTP-канала для вызова удаленных объектов
Установка запрашиваемого времени жизни
Создание объекта САО и определение его запрашиваемого времени жизни
Шифрование сообщений вашего объекта Remoting
Глава 14. SOAP и XML
Теория
Расширенный XML
XML и ADO.NET
Хранение данных с помощью XML
ХРат
XmlConvert
Схемы XML
Рассмотрение схем XML
Типы Simple
Тины Complex
Элементы (Element)
Атрибуты
Группы
Ключ
Фацеты
Отношения
Внутренние схемы (internal schema)
Внешние схемы (external schema)
Преобразования XML
XslTransform
Введение в SOAP
Конверт SOAP
SOAP и Web-службы XML
SOAP в Visual Studio .NET
Обмен сообщениями: DCOM против XML
Практика
Создание сообщений XML в Visual Studio .NET
Использование Document Outline Tool для просмотра структуры сообщений XML
Создание схемы XSD в Visual Studio .NET
Создание схемы XSD из существующего сообщения XML
Проверка правильности сообщения XML посредством схемы XSD
Проектирование файла преобразования XSLT
Преобразование сообщений XML в новую схему
Глава 15. ADO .NET
Теория
Введение в ADO .NET
Сравнение ADO и ADO .NET
Доступ к базе данных без соединения (disconnected) и доступ с соединением (connectec
Курсоры баз данных (Database Cursors)
Блокировка данных
Использование прошлых версий ADO в .NET Projects
Уровни доступа к данным в ADO .NET
Провайдер OLE DB
Провайдер SQL Server
Выбор между источниками OleDb и SQL Server
DataSet?.
DataTable
DataRow
DataColumn
Отношения DataSet
Типизированные и нетипизированные DalaSet
Ограничения
Подсоединение к источникам данных
DataAdapter
Объект Connection
Объект Command
DataReader
Работа с объектами DataSet ADO .NET
Заполнение объектов DataSet данными
Три копии ваших данных
Изменение данных в DataSet
Проверка RowStale
Подтверждение и отмена изменений
XML в ADO .NET
Запись XML
Чтение XML
Схемы XML \'
Использование инструментальных средств для работы с данными в Visual!
.NET
Использование компонентов данных Visual Studio .NET
Доступ к данным с помощью Visual Studio .NET Server Explorer
Проекты баз данных и инструментарий проектирования запросов
Data Form Wizard
Более сложные темы ADO .NET
События ADO .NET
Ошибки ADO .NET
Работа с хранимыми процедурами в ADO .NET
Практика
Программное создание DataSet
Добавление отношения в DataSet
Добавление связи данных в окно Server Explorer
Использование компонентов данных для быстрого доступа к источникам данных
Использование компонентов данных из окна Toolbox
Компоненты данных Server Explorer
Заполнение DataSet из базы данных
Изменение данных в DataSet
Добавление и удаление строк.\'.
Поиск данных в таблице DataTabie
Принятие и отмена изменений
Сохранение изменений в DataSet в базе данных
Создание типизированного DataSet
Создание схемы объекта DataSet
Добавление схемы в объект DataSet и заполнение объекта DataSet
Использование объектов DataSet для генерирования сообщений XML
Заполнение DataSet из сообщения XML
Использование DataReader для доступа к данным
Задание команд непосредственно базе данных
Использование хранимых процедур ADO .NET
Работа с событиями в ADO .NET
Проверка на ошибки в ADO .NET
Генерирование запросов SQL посредством использования Query Designer
Глава 16. Работа с СОМ и Win32 API
Теория
Работа с СОМ
Что такое СОМ?
Библиотеки типов и 1DL (Type Libraries and 1DL)
Диспетчерские интерфейсы и автоматизация
Использование объектов СОМ в коде .NET
Использование элементов управления ActiveX в коде .NET
Использование объктов .NET в качестве объектов СОМ
Работа с Win32 API
Выбор наборов символов
Переименование функций DLL
Практика
Использование объекта СОМ в проекте .NET
Использование позднего связывания с объектами СОМ
Использование объектов СОМ в управляемом C++
Использование элемента управления ActiveX в проекте .NET
Вызов неуправляемой функции в DLL посредством использования Platform Invoke
Пример Visual Basic
Пример С#
Предметны и указатель