Скачать презентацию Delivering Excellence in Software Engineering Технология ADO NET Скачать презентацию Delivering Excellence in Software Engineering Технология ADO NET

Технология ADO.ppt

  • Количество слайдов: 28

Delivering Excellence in Software Engineering Технология ADO. NET Введение ® 2008. EPAM Systems. All Delivering Excellence in Software Engineering Технология ADO. NET Введение ® 2008. EPAM Systems. All rights reserved.

ADO. NET • ADO. NET – это программный интерфейс (API), предназначенный для обеспечения доступа ADO. NET • ADO. NET – это программный интерфейс (API), предназначенный для обеспечения доступа к данным. • Поддерживаемые технологии – SQL Server – Oracle – OLE DB – XML 2 ® 2008. EPAM Systems. All rights reserved.

Модели доступа к данным • Присоединенная – Предполагается наличие постоянного соединения между источником и Модели доступа к данным • Присоединенная – Предполагается наличие постоянного соединения между источником и приемником данных вне зависимости от того, осуществляется ли непосредственная передача данных в текущий момент времени • Отсоединенная – Соединение устанавливается только на момент обмена данными 3 ® 2008. EPAM Systems. All rights reserved.

Присоединенная модель • Примеры – Интернет-соединение – Телефонный разговор – Чат – Удаленная хирургия Присоединенная модель • Примеры – Интернет-соединение – Телефонный разговор – Чат – Удаленная хирургия – Правительственные линии связи 4 ® 2008. EPAM Systems. All rights reserved.

Присоединенная модель • Плюсы – При запросе данных не тратится время на установку соединения Присоединенная модель • Плюсы – При запросе данных не тратится время на установку соединения – Всегда доступны свежие данные • Минусы – Необходимо постоянное наличие соединения и средств для его обеспечения – При отсутствии необходимости передачи данных соединение все равно остается занятым 5 ® 2008. EPAM Systems. All rights reserved.

Отсоединенная модель • Примеры – Почтовый сервер – Доступ к web-приложениям – Библиотека – Отсоединенная модель • Примеры – Почтовый сервер – Доступ к web-приложениям – Библиотека – Системы контроля версий 6 ® 2008. EPAM Systems. All rights reserved.

Отсоединенная модель • Плюсы – Более низкие требования к соединению – Можно работать при Отсоединенная модель • Плюсы – Более низкие требования к соединению – Можно работать при отсутствии связи – Можно обработать больше запросов • Минусы – Больше времени непосредственно на доступ к данным – Локальная копия данных может быть неактуальной – Возможно наличие конфликтов 7 ® 2008. EPAM Systems. All rights reserved.

Классы ADO. NET • Основные классы доступа к данным – Connection (Sql. Connection) – Классы ADO. NET • Основные классы доступа к данным – Connection (Sql. Connection) – Command (Sql. Command) – Parameter (Sql. Parameter) – Data. Reader (Sql. Data. Reader) – Transaction (Sql. Transaction) 8 ® 2008. EPAM Systems. All rights reserved.

Доступ к базе • Порядок действий: 1. Получить строку подключения 2. Создать объект Sql. Доступ к базе • Порядок действий: 1. Получить строку подключения 2. Создать объект Sql. Command (задать ему строку подключения, собственно SQL команду, параметры) 3. Установить соединение 4. Скачать или записать данные (выполнить команду) 5. Разорвать соединение 9 ® 2008. EPAM Systems. All rights reserved.

Строка подключения • Место хранения: – Конфигурационный файл – Ввод данных пользователем • Основные Строка подключения • Место хранения: – Конфигурационный файл – Ввод данных пользователем • Основные элементы – Data Source – Initial Catalog – Integrated Security – User ID – Password 10 ® 2008. EPAM Systems. All rights reserved.

Строка подключений • Формат «Setting 1 = Value 1; Setting 2 = Value 2; Строка подключений • Формат «Setting 1 = Value 1; Setting 2 = Value 2; …» • Пример “Data Source=. Sql. Express; Initial Catalog=Northwind; User ID=User; Password=12345” “Data Source=Nt-server; Initial Catalog=Base; Integrated Security=True” 11 ® 2008. EPAM Systems. All rights reserved.

Строка подключения в конфигурационном файле 12 ® 2008. EPAM Systems. All rights reserved.

Загрузка строки подключения string connection. String = System. Configuration. Manager. Connection. Strings[ Загрузка строки подключения string connection. String = System. Configuration. Manager. Connection. Strings["connection. String"]. Connection. String; 13 ® 2008. EPAM Systems. All rights reserved.

Неправильная установка соединения Sql. Connection connection = new Sql. Connection(connection. String); connection. Open(); // Неправильная установка соединения Sql. Connection connection = new Sql. Connection(connection. String); connection. Open(); // действия с базой connection. Close(); 14 ® 2008. EPAM Systems. All rights reserved.

Правильная установка соединения (вариант 1) try { Sql. Connection connection = new Sql. Connection(connection. Правильная установка соединения (вариант 1) try { Sql. Connection connection = new Sql. Connection(connection. String); connection. Open(); // действия с базой } finally { connection. Close(); } 15 ® 2008. EPAM Systems. All rights reserved.

Правильная установка соединения (вариант 2) • Интерфейс IDisposable using(Sql. Connection connection = new Sql. Правильная установка соединения (вариант 2) • Интерфейс IDisposable using(Sql. Connection connection = new Sql. Connection(connection. String)) { connection. Open(); // действия с базой } 16 ® 2008. EPAM Systems. All rights reserved.

Класс Sql. Command • Основные свойства – Command. Text – Command. Type (Storage Procedure, Класс Sql. Command • Основные свойства – Command. Text – Command. Type (Storage Procedure, Text, Table. Direct) – Connection – Parameters 17 ® 2008. EPAM Systems. All rights reserved.

Класс Sql. Command • Основные методы – Execute. Non. Query (int) – Execute. Reader Класс Sql. Command • Основные методы – Execute. Non. Query (int) – Execute. Reader (Data. Reader) – Execute. Scalar (object) – Execute. Xml. Reader (Xml. Data. Reader) 18 ® 2008. EPAM Systems. All rights reserved.

Класс Sql. Data. Reader • Свойства – Field. Count – Has. Rows • Основные Класс Sql. Data. Reader • Свойства – Field. Count – Has. Rows • Основные методы – [] параметры int и string – Get…(int column. Number) – Next. Result – Read 19 ® 2008. EPAM Systems. All rights reserved.

Пример string connection. String = System. Configuration. Manager. Connection. Strings[ Пример string connection. String = System. Configuration. Manager. Connection. Strings["connection. String"]. Connection. String; using(Sql. Connection connection = new Sql. Connection(connection. String)) { Sql. Command command = new Sql. Command(); command. Connection = connection; command. Command. Type = Command. Type. Text; command. Command. Text = "SELECT * FROM users"; connection. Open(); Sql. Data. Reader reader = command. Execute. Reader(); while (reader. Read()) { Console. Write. Line("{0} - {1}", reader["name"], reader["surname"]); } } 20 ® 2008. EPAM Systems. All rights reserved.

SQL Injection • Грубейшая ошибка: command. Command. Text = SQL Injection • Грубейшая ошибка: command. Command. Text = "SELECT * FROM users WHERE name = ‘" + txt. Name + "’"; • Причина Иванов’; DROP TABLE users; SELECT * FROM users WHERE name=‘user • Правильное решение command. Command. Text = "SELECT * FROM users WHERE name = @name"; command. Parameters. Add(new Sql. Parameter("@name", txt. Name. Text)); • Хранимые процедуры 21 ® 2008. EPAM Systems. All rights reserved.

Трехслойная архитектура • Presentation Layer (PL) • Business Logic Layer (BLL) • Data Access Трехслойная архитектура • Presentation Layer (PL) • Business Logic Layer (BLL) • Data Access Layer (DAL) 22 ® 2008. EPAM Systems. All rights reserved.

Presentation Layer • Цели – Отображение данных пользователю – Манипуляции, связанные с отображением (сортировка, Presentation Layer • Цели – Отображение данных пользователю – Манипуляции, связанные с отображением (сортировка, фильтрация) – Получение данных – Первичная «защита от дурака» • Чего быть не может – Обращений к базе – Операций, имеющих отношение к логике работы программы 23 ® 2008. EPAM Systems. All rights reserved.

Business Logic Layer • Цели – Предоставление данных PL – Функциональное обеспечение работы системы Business Logic Layer • Цели – Предоставление данных PL – Функциональное обеспечение работы системы (вся логика) • Чего быть не может – Обращения к базе данных – Любого кода, имеющего отношения к интерфейсу (Console. Write. Line, Text. Box 1. Text…) 24 ® 2008. EPAM Systems. All rights reserved.

Data Access Layer • Цели – Обращения к базе (чтение/сохранение данных) • Чего быть Data Access Layer • Цели – Обращения к базе (чтение/сохранение данных) • Чего быть не может – Функциональной логики – Любого кода, имеющего отношения к интерфейсу (Console. Write. Line, Text. Box 1. Text…) 25 ® 2008. EPAM Systems. All rights reserved.

Два подхода к формированию Бизнес-логики • Anemic – есть сущности (Entities) и есть код Два подхода к формированию Бизнес-логики • Anemic – есть сущности (Entities) и есть код для их обработки (Logic Classes) • Rich – Entities и Logic Classes объединены 26 ® 2008. EPAM Systems. All rights reserved.

27 ® 2008. EPAM Systems. All rights reserved. 27 ® 2008. EPAM Systems. All rights reserved.

Delivering Excellence in Software Engineering Presentation Title For more information, please contact: Name Title Delivering Excellence in Software Engineering Presentation Title For more information, please contact: Name Title EPAM Systems, Inc. Address City, State, Zip Code Phone: Fax: Email: http: //www. epam. com ® 2008. EPAM Systems. All rights reserved.