
- •1. Язык программирования c# 3
- •2. Базовые элементы .Net Framework 67
- •3. ТЕхнология .Net Remoting 144
- •Введение
- •1. Язык программирования c#
- •1.1. Платформа .Net – обзор архитектуры
- •1.2. Язык c# - общие концепции синтаксиса
- •1.3. Система типов языка c#
- •1.4. Преобразования типов
- •1.5. Идентификаторы, ключевые слова и литералы
- •1.6. Объявление переменных, полей и констант
- •1.7. Выражения и операции
- •1.8. Операторы языка c#
- •1.9. Объявление и вызов методов
- •1.10. Массивы в c#
- •1.11. Работа с символами и строками в c#
- •1.12. Синтаксис объявления класса, Поля и методы класса
- •1.13. Свойства и индексаторы
- •1.14. Конструкторы класса и Жизненный цикл объекта
- •1.15. Наследование классов
- •1.16. Перегрузка операЦий
- •1.17. Делегаты
- •1.18. События
- •1.19. Интерфейсы
- •1.20. Структуры и перечисления
- •1.21. Пространства имен
- •1.22. Генерация и обработка исключительных ситуаций
- •1.23. Нововведения в языке c# 2.0
- •1.24. Обобщенные типы (generics)
- •2. Базовые элементы .Net Framework
- •2.1. Метаданные и механизм отражения
- •2.2. Пользовательские и встроенные атрибуты
- •2.3. Пространство имен system.Collections
- •2.4. Работа с файлами и директориями
- •2.5. Использование потоков данных
- •2.6. Сериализация
- •2.7. Сериализация объектов в нестандартном формате
- •2.8. Введение в xml
- •2.9. Работа с xml-документами в .Net framework
- •2.10. МНогопоточное программирование
- •2.11. Синхронизация потоков
- •2.12. Асинхронный вызов методов
- •2.13. Состав и взаимодействие сборок
- •2.14. Конфигурирование сборок
- •3. ТЕхнология .Net Remoting
- •3.1. Домены приложений
- •3.2. Архитектура .Net Remoting
- •3.3. Активация удаленных объектов и их время жизни
- •3.4. Программная настройка Remoting
- •3.5. Удаленные Объекты с клиентской активацией
- •3.6. Настройка Remoting при помощи конфигурационных файлов
- •3.7. Хостинг распределенных приложений
- •3.8. Объекты-сообщения
- •3.9. Пользовательские канальные приемники
- •4.1. Архитектура ado.Net
- •4.2. Учебная база cd Rent
- •4.3. Соединение с базой данных
- •4.4. Выполнение команд и запросов к базе данных
- •4.5. Чтение данных и объект DataReader
- •4.6. Параметризированные запросы
- •4.7. Рассоединенный набор данных
- •4.8. Заполнение Рассоединенного набора данных
- •4.9. Объект класса DataColumn – колонка таблицы
- •4.10. Объекты класса DataRow – строки таблицы
- •4.11. Работа с объектом класса DataTable
- •4.12. DataSet и схема рассоединенного набора данных
- •4.13. Типизированные DataSet
- •4.14. Поиск и фильтрация данных в DataSet
- •4.15. Класс DataView
- •4.16. СиНхронизация набора данных и базы
- •5.1. Архитектура и общие концепции asp.Net
- •5.2. Пример aspx-страницы. Структура страницы
- •5.3. Директивы страницы
- •5.4. Класс System.Web.Ui.Page. События страницы
- •5.5. Серверные элементы управления
- •5.6. Элементы управления Web Controls
- •5.7. Проверочные элементы управления
- •5.8. Списковые элементы управления
- •5.9. Связывание данных
- •5.11. Управление состояниями в web-приложениях
- •5.12. Кэширование
- •5.13. Безопасность в web-приложениях
- •5.14. Создание пользовательских элементов управления
- •Литература
4.1. Архитектура ado.Net
Практически в любом серьезном приложении возникает необходимость работы с базами данных (БД). Обычно для этого используются некие стандартные интерфейсы и библиотеки, вместе составляющие технологию работы с БД. Примерами таких технологий являются ODBC, JDBC, OLE DB, ADO. При создании платформы .NET фирма Microsoft представила новую технологию доступа к данным – ADO.NET. Особенностями ADO.NET являются интеграция с XML и ориентированность на рассоединенные данные. Последнее означает, что для обработки данных в приложении не требуется постоянное соединение с БД. Данные перемещаются в специальную структуру для хранения и соединение с базой разрывается. Данные обрабатываются в спецструктуре, далее устанавливается соединение, и обновленные данные «закачиваются» обратно в базу.
Рассмотрим общую схему архитектуры ADO.NET, показанную на рис. 10.
Рис. 10. Общая схема архитектуры ADO.NET
Одним из основных элементов архитектуры является поставщик (провайдер) данных (data provider). Поставщик данных – это совокупность классов, предназначенных для непосредственного взаимодействия с базой. Поставщики данных не универсальны, они специфичны для каждой СУБД: Oracle, MS SQL Server, MySQL и т. д. Унификация поставщиков достигается благодаря тому, что классы любого поставщика реализуют некие стандартные интерфейсы. С платформой .NET 1.0 инсталлируются два поставщика: поставщик OLE DB и поставщик для Microsoft SQL Server. Классы данных поставщиков находятся в пространствах имен System.Data.OleDb и System.Data.SqlClient соответственно. Кроме этого, пространство имен System.Data.SqlTypes содержит структуры для описания типов, используемых в СУБД SQL Server.
Любой поставщик данных содержит четыре основных класса1: Connection, Command, DataReader и DataAdapter. Назначение класса Connection – установка и поддержка соединения с базой данных. Класс Command служит для выполнения запросов и команд. Можно выполнить как команды, не возвращающие данных (например, создание таблицы в базе), так и запросы, возвращающие скалярное значение или набор данных (SELECT). В последнем случае для чтения данных, полученных командой, используется объект класса DataReader – ридер. Отличительной чертой ридера является то, что он представляет собой однонаправленный курсор данных в режиме «только-для-чтения». Класс DataAdapter служит своеобразным «мостом» между поставщиком данных и рассоединенным набором данных. Этот класс содержит четыре команды для выборки, обновления, вставки и удаления данных.
Вторым важным элементом ADO.NET является набор классов, представляющих рассоединенный набор данных из базы. Главным компонентом данного набора является класс DataSet, агрегирующий объекты остальных классов. Класс DataTable служит для описания таблиц базы. Класс DataRelation описывает связи между таблицами. Класс PropertyCollection представляет произвольный набор пользовательских свойств. Элементами класса DataTable являются объекты классов DataColumn (колонки таблицы), DataRow (строки таблицы) и Constraint (ограничения на значения элементов таблицы).