Презентация Марья Сергеевна лк 1 б Net

Скачать презентацию  Марья Сергеевна лк 1 б Net Скачать презентацию Марья Сергеевна лк 1 б Net

maryya_sergeevna_lk_1_b_net.ppt

  • Размер: 4.9 Mегабайта
  • Количество слайдов: 28

Описание презентации Презентация Марья Сергеевна лк 1 б Net по слайдам

 1 Обзор технологий доступа к данным: LINQ и и ADO. NET Entity Framework 1 Обзор технологий доступа к данным: LINQ и и ADO. NET Entity Framework

 2 Содержание LINQ ADO. NET Entity Framework ADO. NET Data Services Codename ‘Astoria’ Sync Framework 2 Содержание LINQ ADO. NET Entity Framework ADO. NET Data Services Codename ‘Astoria’ Sync Framework Общая картина подхода Microsoft к к технологиям доступа к данным

 3 История OLE DB(1. 0 – 1992) – низкоуровневый API OLE DB - COM API 3 История OLE DB(1. 0 – 1992) – низкоуровневый API OLE DB — COM API ADO – объектная модель — Recordset ADO. NET – объектная модель . NET — Dataset MCAD (Windows DAC) -1996 Microsoft Jet Database Engine DB-Library Data Access Objects (DAO) Remote Data Objects (RDO)

 4 Доступ к данным Sql. Connection nwind. Conn = new Sql. Connection(Data Source=localhost; Integrated Security=SSPI; 4 Доступ к данным Sql. Connection nwind. Conn = new Sql. Connection(«Data Source=localhost; Integrated Security=SSPI; Initial Catalog=northwind»); Sql. Command cat. CMD = nwind. Conn. Create. Command(); cat. CMD. Command. Text = «SELECT Category. ID, Category. Name FROM Categories WHERE Category. Name LIKE ‘B%’ ORDER BY 1“; nwind. Conn. Open(); Sql. Data. Reader my. Reader = cat. CMD. Execute. Reader(); while (my. Reader. Read()) { Console. Write. Line(«\t{0}\t{1}», my. Reader. Get. Int 32(0), my. Reader. Get. String(1)); } my. Reader. Close(); nwind. Conn. Close(); Data. Set DS=new Data. Set(); XQuery. Navigator. Collection o. XQ = new XQuery. Navigator. Collection(); string str. XML = «»; string file. Name 1=»c: \\Test\\T 1. xml»; string alias 1 = «My. Data. Test. xml»; o. XQ. Add. Navigator( file. Name 1, alias 1 ); string str. Query = » { » + » let $bb : = document(\»My. Data. Test. xml\»)/*/* » + » let $cc : = document(\»My. Datattt. xml\»)/*/* » + » for $c in $cc » + » for $b in $bb » + » where $c/kod = $b/kod » + » return

{ $b/nazv, $b/dat, $c/naim }
» + » } “ ; XQuery. Expression x. Expression = new XQuery. Expression(str. Query); str. XML = x. Expression. Execute(o. XQ). To. Xml(); String. Reader str. Reader = new String. Reader(str. XML); Xml. Text. Reader reader = new Xml. Text. Reader(str. Reader); DS. Read. Xml(reader); Data. Grid 1. Data. Source = DS. Tables[0]; Data. Grid 1. Data. Bind(); Dim xmldoc As New System. Xml. XPath. Document(«c: \book s. xml») Dim nav As System. Xml. XPath. Navigator = xmldoc. Create. Navigator() Dim expr As System. Xml. XPath. Expression = nav. Compile( «//Publisher[. = ‘MSPress’]/parent: : node()/Title» )

 5 Типовые уровни при работе с данными Концептуальный Бизнес сущности и логика Объекты и объектные 5 Типовые уровни при работе с данными Концептуальный Бизнес сущности и логика Объекты и объектные коллекции Логический Реляционное представление Таблицы, отношения junction tables Физический физическое хранение и манипулирование страницы, экстенты, индексы ограничения ( constraints) …C on cetual P h ysical Log ical

 6 Сложности в работе с данными Нетипизированные острова разные для каждого источника специфические знания для 6 Сложности в работе с данными Нетипизированные острова разные для каждого источника специфические знания для каждого источника отсутствие проверок на этапе компиляции сложность в поддержке … … и даже нет Intelli. Sence Проблема : Data != Objects Dataset – реляционное представление в объектном виде Скрытые знания о структуре хранения и объектно–реляционном маппинге (ORM) в виде строк Data Access Layer — спасение ?

 7 Решение – основные идеи Типизированные запросы  Типизированные результаты Объектное представление схемы хранения Общее 7 Решение – основные идеи Типизированные запросы Типизированные результаты Объектное представление схемы хранения Общее решение для целого ряда продуктов Использование преимуществ ADO. NET Создание концептуальной объектной модели Явное декларативное представление схемы объектно–реляционного маппинга ( ORM ) между концептуальной моделью и моделью хранения LINQ Entity Framework

 8 Language Integrated Query Единообразные типизированные запросы к любому источнику данных Методы расширения интерфейса IEnumerable 8 Language Integrated Query Единообразные типизированные запросы к любому источнику данных Методы расширения интерфейса IEnumerable (Select, Order. By, Group. By, Join. Where) Возвращаемый результат как объектная коллекция (IEnumerable ) Intellisence – проверка на этапе компиляции Специальный синтаксис выражений запросов

 9 C# 3. 0 var contacts = from c in customers where c. State == 9 C# 3. 0 var contacts = from c in customers where c. State == «WA» select new { c. Name, c. Phone }; var contacts = customers . Where(c => c. State == «WA») . Select(c => new { c. Name, c. Phone }); Extension methods Lambda expressions Query expressions Object initializers. Anonymous types. Local variable type inference

 10 VBA 9 Dim contacts = From c In customers _ Where c. State = 10 VBA 9 Dim contacts = From c In customers _ Where c. State = «WA“ _ Select c. Name, c. Phone Dim contacts = _ customers _ . Where(Function (c) c. State = «WA»)_ . Select(Function(c) New With { c. Name, c. Phone }) Extension methods Lambda expressions Query expressions Object initializers. Anonymous types. Local variable type inference

 11 Проект LINQ C# 3. 0 VB 9. 0 Другие. NET Language Integrated Query Реляционн 11 Проект LINQ C# 3. 0 VB 9. 0 Другие. NET Language Integrated Query Реляционн ые ые источники

 12 LINQ Поддерживает модель провайдеров,  существуют реализации:  LINQ to NHibernate LINQ to Amazon 12 LINQ Поддерживает модель провайдеров, существуют реализации: LINQ to NHibernate LINQ to Amazon Share. Point, …. Развивается в направлении параллелизма ( manycore ) – PLINQ

 13 Entity Framework Инфраструктура формирования концептуального представления данных с помощью сущностей  (Entities) Реализация классических 13 Entity Framework Инфраструктура формирования концептуального представления данных с помощью сущностей (Entities) Реализация классических задач ORM Абстрагирование от схемы хранения Гибкий маппинг

 14 Архитектура Entity Framework 14 Архитектура Entity Framework

 15 Гибкий маппинг Mapping. Таблица на иерархию 15 Гибкий маппинг Mapping. Таблица на иерархию

 16 Гибкий маппинг.  Таблица на тип 16 Гибкий маппинг. Таблица на тип

 17 Гибкий маппинг.  Таблица на класс 17 Гибкий маппинг. Таблица на класс

 18 Гибкий маппинг.  Разделение сущности 18 Гибкий маппинг. Разделение сущности

 19 Гибкий маппинг.  Хранимые процедуры 19 Гибкий маппинг. Хранимые процедуры

 20 Гибкий маппинг.  Хранимые процедуры 20 Гибкий маппинг. Хранимые процедуры

 21 Гибкий маппинг.  Создание представлений ( Query. View) 21 Гибкий маппинг. Создание представлений ( Query. View)

 22 Гибкий маппинг.  Создание представлений  (Defining Query) 22 Гибкий маппинг. Создание представлений (Defining Query)

 23 Entity Framework - текущее состояние Доступен в Beta 3 RTM вышел во второй половине 23 Entity Framework — текущее состояние Доступен в Beta 3 RTM вышел во второй половине 2008 Провайдеры третьих производителей для различных баз данных В течение 3 месяцев после выхода ( RTM ) Oracle, IBM DB 2 , My. SQL, Postgre. SQL , Informix, Ingres, Sybase , SQLite , SQL Anywhere , Progress … Firebird

 24 Роль Entity Framework  Единый движок концептуального представления и ORM для ряда ключевых продуктов 24 Роль Entity Framework Единый движок концептуального представления и ORM для ряда ключевых продуктов Microsoft

 25 Сравнение LINQ и Entity Framework Единообразные запросы Единообразные типизированные запросы к любому источнику Типизированные 25 Сравнение LINQ и Entity Framework Единообразные запросы Единообразные типизированные запросы к любому источнику Типизированные результаты LINQ to SQL — типизированное представление логической схемы данных 1: 1 ( ORM ) LINQ to SQL – возможности переименования объектов данных и поддержка TPH Гибкий маппинг Создание концептуального объектного уровня, абстрагированного от логики хранения Типизированное представление концептуальной схемы с гибким маппингом — полноценный ORM LINQ Entity Framework Основное назначение Возможности маппинга

 26 C# 3. 0 VB 9. 0 Другие. NET Language Integrated Query Microsoft  SQL 26 C# 3. 0 VB 9. 0 Другие. NET Language Integrated Query Microsoft SQL Server, Oracle, DB 2, My. SQL… Реляционные источники. LINQ + Entity Framework

 27

 28 Ссылки LINQ  http: //msdn 2. microsoft. com/en-us/netframework/aa 904594. aspx  ADO. NET Entity 28 Ссылки LINQ http: //msdn 2. microsoft. com/en-us/netframework/aa 904594. aspx ADO. NET Entity Framework http: //msdn. microsoft. com/data http: //blogs. msdn. com/adonet/ http: //blogs. msdn. com/data/