![Page 1: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/1.jpg)
![Page 2: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/2.jpg)
Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NETРоман ЗдебскийЭксперт по технологиям разработки ПОДепартамент стратегических технологий[email protected]://blogs.msdn.com/roman
![Page 3: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/3.jpg)
СодержаниеLINQADO.NET Entity FrameworkADO.NET Data Services Codename ‘Astoria’
Sync FrameworkОбщая картина подхода Microsoft к технологиям доступа к даннымДемонстрации, демонстрации и еще раз демонстрации
Доступ к данным
![Page 4: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/4.jpg)
Краткая ретроспектива
ODBC (1.0 –1992) – низкоуровневый APIOLE DB – COM APIADO – объектная модель - Recordset ADO.NET – объектная модель .NET Dataset
MDAC (Windows DAC) -1996
Microsoft Jet Database EngineDB-LibraryData Access Objects (DAO)Remote Data Objects (RDO)
![Page 5: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/5.jpg)
Доступ к данным
SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");
SqlCommand catCMD = nwindConn.CreateCommand();catCMD.CommandText = "SELECT CategoryID,
CategoryName FROM Categories WHERE CategoryName LIKE ‘B%’ ORDER BY 1“; nwindConn.Open(); SqlDataReader myReader = catCMD.ExecuteReader(); while (myReader.Read()) { Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));
} myReader.Close(); nwindConn.Close();
DataSet DS=new DataSet();XQueryNavigatorCollection oXQ = new XQueryNavigatorCollection();string strXML = "";string fileName1="c:\\Test\\T1.xml";string alias1 = "MyDataTest.xml";oXQ.AddNavigator( fileName1, alias1 );string strQuery = "<NewDataSet> { " +" let $bb := document(\"MyDataTest.xml\")/*/* " +" let $cc := document(\"MyDatattt.xml\")/*/* " +" for $c in $cc " +" for $b in $bb " +" where $c/kod = $b/kod " +" return <Table> { $b/nazv,$b/dat,$c/naim } </Table> " +" }</NewDataSet> “ ;XQueryExpression xExpression = new XQueryExpression(strQuery);strXML = xExpression.Execute(oXQ).ToXml();StringReader strReader = new StringReader(strXML);XmlTextReader reader = new XmlTextReader(strReader);DS.ReadXml(reader);DataGrid1.DataSource = DS.Tables[0];DataGrid1.DataBind();
Dim xmldoc As New System.Xml.XPath.XPathDocument("c:\books.xml") Dim nav As System.Xml.XPath.XPathNavigator = xmldoc.CreateNavigator()Dim expr As System.Xml.XPath.XPathExpression = nav.Compile( "//Publisher[. = 'MSPress']/parent::node()/Title" )
![Page 6: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/6.jpg)
Типовые уровни при работе с данными
КонцептуальныйБизнес сущности и логикаОбъекты и объектные коллекции
ЛогическийРеляционное представлениеТаблицы, отношенияjunction tables
Физическийфизическое хранение и манипулированиестраницы, экстенты, индексы ограничения (constraints) …
![Page 7: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/7.jpg)
Сложности в работе с даннымиНетипизированные острова
разные для каждого источникаспецифические знания для каждого источникаотсутствие проверок на этапе компиляциисложность в поддержке …… и даже нет IntelliSence
Проблема:Data != Objects
Dataset – реляционное представление в объектном видеСкрытые знания о структуре хранения и объектно–реляционном маппинге (ORM) в виде строкData Access Layer - спасение?
![Page 8: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/8.jpg)
Entity Framework
LINQ
Решение – основные идеиТипизированные запросы Типизированные результаты
Объектное представление схемы храненияОбщее решение для целого ряда продуктовИспользование преимуществ ADO.NET
Создание концептуальной объектной моделиЯвное декларативное представление схемы объектно–реляционного маппинга (ORM) между концептуальной моделью и моделью хранения
![Page 9: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/9.jpg)
LINQ
Подробный вебкаст по основным возможностям LINQ в Visual Studio 2008 -Интегрированные в язык запросы (LINQ) в Microsoft Visual Studio 2008 http://platforma2008.ru/Materials.aspx?EventID=55 Достаточно просто зарегистрироваться на сайте, промокода не нужно.Секция – Средства разработки (DT).
http://www.platforma2008.ru
![Page 10: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/10.jpg)
Language Integrated Query
Единообразные типизированные запросы к любому источнику данных
Методы расширения интерфейса IEnumerable (Select, OrderBy, GroupBy, Join, Where)Возвращаемый результат как объектная коллекция (IEnumerable<T>)
Intellisence, проверка на этапе компиляцииСпециальный синтаксис выражений запросов
![Page 11: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/11.jpg)
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 initializersAnonymous
types
Local variable type inference
![Page 12: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/12.jpg)
VB 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
![Page 13: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/13.jpg)
Проект LINQC# 3.0 VB 9.0 Другие
.NET Language Integrated Query
LINQ toDataSet
s
LINQ toEntities
LINQ toObjects
Объекты
LINQ toXML
<book> <title/>
<author/> <year/> <price/>
</book>
XML
Реляционные
источники
LINQ toSQL
![Page 14: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/14.jpg)
LINQ
Краткий обзор
Демонстрация
![Page 15: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/15.jpg)
LINQ текущий статус
Вышел (RTM) в ноябре 2007 года вместе с Visual Studio 2008 и .NET Framework 3.5Поддерживает модель провайдеров, существуют реализации:
LINQ to NHibernateLINQ to AmazonSharePoint, ….
Развивается в направлении параллелизма (manycore) –
PLINQ
![Page 16: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/16.jpg)
Entity Framework
LINQ
Решение – основные идеиТипизированные запросы Типизированные результаты
Объектное представление схемы храненияОбщее решение для целого ряда продуктовИспользование преимуществ ADO.NET
Создание концептуальной объектной моделиЯвное декларативное представление схемы объектно–реляционного маппинга (ORM) между концептуальной моделью и моделью хранения
![Page 17: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/17.jpg)
Entity Framework
Инфраструктура формирования концептуального объектного представления данных с помощью сущностей (Entities)Реализация классических задач ORMАбстрагирование от схемы храненияГибкий маппинг
![Page 18: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/18.jpg)
Архитектура Entity Framework
![Page 19: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/19.jpg)
Гибкий маппингТаблица на иерархию
![Page 20: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/20.jpg)
Гибкий маппингТаблица на тип
![Page 21: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/21.jpg)
Гибкий маппингТаблица на класс
![Page 22: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/22.jpg)
Гибкий маппингРазделение сущности
![Page 23: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/23.jpg)
Гибкий маппингХранимые процедуры
![Page 24: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/24.jpg)
Гибкий маппингХранимые процедуры
![Page 25: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/25.jpg)
Гибкий маппингСоздание представлений (QueryView)
![Page 26: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/26.jpg)
Гибкий маппингСоздание представлений (Defining Query)
![Page 27: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/27.jpg)
ADO.NET Entity Framework
Основные возможности
Демонстрация
![Page 28: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/28.jpg)
Entity Framework – текущий статус
Доступен в Beta 3Релиз (RTM) ожидается во второй половине 2008
Провайдеры третьих производителей для различных баз данных
В течение 3 месяцев после выхода (RTM)
Oracle, IBM DB2, MySQL, PostgreSQL, Informix, Ingres, Sybase, SQLite, SQL Anywhere, Progress …
В течение 2008 годаFirebird
![Page 29: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/29.jpg)
Роль Entity FrameworkЕдиный движок концептуального представления и ORM для ряда ключевых продуктов Microsoft
![Page 30: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/30.jpg)
Сравнивая LINQ и Entity FrameworkLINQЕдинообразные запросы
Единообразные типизированные запросы к любому источникуТипизированные результаты
LINQ to SQL -Типизированное представление логической схемы данных 1:1 ORM LINQ to SQL – возможности переименований объектов данных и поддержка TPH
Entity FrameworkГибкий маппинг
Создание концептуального объектного уровня, абстрагированного от логики хранения
Типизированное представление концептуальной схемы с гибким маппингом – полноценный ORM
Основное назначение
Возможности маппинга
![Page 31: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/31.jpg)
LINQ + Entity FrameworkC# 3.0 VB 9.0 Другие
.NET Language Integrated Query
LINQ toDataSets
LINQ toEntities
LINQ toObjects
Объекты
LINQ toXML
<book> <title/>
<author/> <year/> <price/>
</book>
XML
LINQ toSQL
Реляционные источники
Entity FrameworkКонцептуальна
я схема (CSDL)
Microsoft SQL Server, Oracle, DB2, MySQL…
Маппинг (MSL)
Схема хранения (CSDL)
ADO.NET
![Page 32: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/32.jpg)
ADO.NET Data Services Framework"Project Astoria"
![Page 33: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/33.jpg)
Доступ к данным для интернет приложений
HTML + Javascript
Данные(XML, и т.п.)
DLL + XAML
Данные(XML, и т.п.)
Данные(XML, и т.п.)
Mashup UI
Потоки данны
х
AJAX приложения
Silverlight приложения
Онлайн сервисы
Мэшапы(Mashups)
![Page 34: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/34.jpg)
REST и WS-* сервисы
Очень интересный вебкаст Дэвида Чеппелла с переводом на русский -SOAP/WS-* и REST – удобная организация коммуникаций https://platforma2008.ru/Materials.aspx?EventID=72 Достаточно просто зарегистрироваться на сайте, промокода не нужно.Секция – Сервис-ориентированная архитектура и бизнес-процессы (SA)
http://www.platforma2008.ru
![Page 35: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/35.jpg)
REST-Интерфейс для данных • Основа модели данных
• Сущности и ассоциации ресурсы и ссылки
Entity Data Model
• Каждый ресурс адресуется через URI• Гибкая схема URI для получения
данныхURI
• Данные как ресурсы, HTTP команды - манипулирование
• Использование кэширования, прокси, аутентификации, …
HTTP
• AtomPub, JSONФорматы
• Entity Framework• Источники данных на базе IQueryableИсточники
![Page 36: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/36.jpg)
ADO.NET Data Services
Основные возможности
Демонстрация
![Page 37: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/37.jpg)
ADO.NET Data ServicesC# 3.0 VB 9.0 Другие
.NET Language Integrated Query
LINQ toDataSets
LINQ toEntities
LINQ toObjects
Объекты
LINQ toXML
<book> <title/>
<author/> <year/> <price/>
</book>
XML
LINQ toSQL
Microsoft SQL Server, Oracle, DB2, MySQL…
Entity Framework
ADO.NET
REST API
Client LINQ Rest
Provider
HTTP
Сервер
Клиент
![Page 38: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/38.jpg)
Sync Framework
![Page 39: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/39.jpg)
Ключевые сценарии для синхронизации
Offline• Outlook Cached Mode
• Мобильные сотрудники
• Богатый интерфейс к веб-сервисам
Совместная работа• Мои контакты и
календарь доступны везде
• Документы групп Groove доступны
везде• Моя музыка доступна везде
Microsoft Sync Framework
![Page 40: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/40.jpg)
Типовая структура приложения Sync Framework
Sync Provider
Приложение
Sync Provider
Sync Agent
DataStore
Data Store
изменения
изменения изменения
Microsoft Sync Framework
![Page 41: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/41.jpg)
Возможности синхронизации БД
• Фокус на администратора баз данных, специфично для SQL Server
• Богатый набор возможностей, мало программного контроля
Merge Replicatio
n• Фокус на разработчиков - Sync Runtime
• Синхронизация данных, а не замена записей БД• Компонентная, SOA ориентированная
инфраструктура• Поддержка любого ADO.NET Provider
• Дополнительные возможности с SQL Server 2008• ADO.NET Provider for the Microsoft Sync Framework
Sync Services for
ADO.NET
• Доступно только с SQL Server Compact• Фокус на разработчиков, простота, ограниченные
сценарии (download w/incremental upload)• Sync Services for ADO.NET позволяет работать с
такой же простотой, но с большей масштабируемостью
Remote Data Access
(RDA)
![Page 42: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/42.jpg)
Server
DB
Доступ к данным в ADO.NET• Запрос к серверу• DataAdapter.SelectCommand вызывается, возвращая DataSet• Изменения делаются в RAM над DataSet и возвращаются назад• DataAdapter преобразует изменения в Insert, Update and Delete команды
Forms
DataAdapter
SelectCommand
InsertCommand
UpdateCommand
DeleteCommand
Connection
• Работа через сервисы• Операции приводят к запросу к серверу
• Частичное использование клиента – операции в RAM• Неустойчиво к проблемам в сети
![Page 43: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/43.jpg)
Sync Services for ADO.NET• Построены на DataAdapter• Добавляют Commands инкрементальных обновлений• Добавляют Commands обработки конфликтов• Принимают и возвращают DataSets
FormsSyncAdapter
Select Incremental Deletes
InsertCommand
UpdateCommand
DeleteCommand
Connection
Select Incremental Updates
Select Incremental Inserts
Select Conflict Updated Rows…
Select Conflict Deleted Rows…
SelectCommand
DataAdapter
Server
DB
![Page 44: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/44.jpg)
SQL Server Compact
3.5
Sync Services for ADO.NET• Локальная БД для фоновой синхронизацииoperations• Синхронизация перемещает данные между локальной БД и удаленным
сервисом• Приложение также работает с данными, но локально• Приложение теперь устойчиво к проблемам сети
Forms
Select Incremental Inserts
SyncAdapter
Select Incremental Deletes
InsertCommand
UpdateCommand
DeleteCommand
Connection
Select Incremental Updates
Select Conflict Updated Rows…
Select Conflict Deleted Rows…
Server
DB
Services & Transports
![Page 45: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/45.jpg)
• Небольшая (~1MB) встроенная, in-proc БД• Подмножество ключевых типов SQL
Server и T-SQL• Нет: Stored Procs, Views, Xquery
Что это:
• Mobile & Embedded устройства• Windows Vista, Media Center PC, MSN Client,
ZUNE, Windows Media Player, …• Локальная клиентская БД в VS 2008 по
умолчанию
Где используется
• Локальный online / offline кэш• Локальная, независимая БД приложения
• Сохранение In-Memory данных в БД• Структурированный формат документов
для приложений
Сценарии
![Page 46: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/46.jpg)
Сравнение с SQL Server ExpressSQL Server Compact SQL Server Express
Для чего Ключевой функционал БД в компактном исполнении
Идеален для малых серверов и desktop где нужен более богатый функционал - full text search и мощная поддержка XML в БД
Идеален для мобильных устройств, когда подключение происходит периодически
Легкая миграция на Workgroup, Standard и Enterprise редакции
Внедряется в приложение
Бесплатен Бесплатен
Не для Работы как сервиса Когда нужно минимальное использование памяти
Работы сервера для нескольких пользователей
in-process решений
Когда нужен более полный функционал SQL Server
Работы на мобильных устройствах
![Page 47: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/47.jpg)
Sync Services for ADO.NET
Основные возможности
Демонстрация
![Page 48: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/48.jpg)
Sync Services for ADO.NETC# 3.0 VB 9.0 Другие
.NET Language Integrated Query
LINQ toDataSets
LINQ toEntities
LINQ toObjects
Объекты
LINQ toXML
<book> <title/>
<author/> <year/> <price/>
</book>
XML
LINQ toSQL
Microsoft SQL Server Compact
Microsoft SQL Server
Entity Framework
ADO.NET
Сервер
Клиент
TDS, WCF
![Page 49: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/49.jpg)
Полная картина
Microsoft SQL ServerOracle, DB2, MySQL…
Entity Framework
ADO.NET
REST API LINQ
ASP.NET App
Microsoft SQL Server Compact
HTTP
LINQ
EF
СерверКлиент
TDS, WCF
Data
Services
Sync Services
![Page 50: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/50.jpg)
Microsoft Express EditionsПоказанные примеры используют бесплатные Express версии
Удобны для: прототипирования, изучения, начала разработки
![Page 51: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/51.jpg)
Ссылки по темеLINQ http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx
ADO.NET Entity Frameworkhttp://msdn.microsoft.com/datahttp://blogs.msdn.com/adonet/http://blogs.msdn.com/data/
ADO.NET Data Serviceshttp://astoria.mslivelabs.com/ http://blogs.msdn.com/astoriateam
Sync Services for ADO.NET http://msdn.microsoft.com/sync http://blogs.msdn.com/sync/
![Page 52: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/52.jpg)
Спасибо за внимание!
![Page 53: Visual Studio 2008 - развитие технологий доступа к данным на платформе Microsoft.NET](https://reader034.vdocument.in/reader034/viewer/2022042822/56815e3d550346895dcca73c/html5/thumbnails/53.jpg)