SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Entity Framework 7
and co.
Speaker: Dekhtiar Oleksandr
.NET developer, DCT
Стартуем. Поговорим о:
• Доступе к данным на начальных этапах
• Что такое ORM
• Entity Framework что это такое и с чем его едят
• История Entity Framework
• Что нового в EF 7
• Demo. Использование EF в мобильных решениях
Что было до ORM
private static void ReadOrderData(string connectionString)
{
string queryString="SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =new SqlConnection)
{
var command=new SqlCommand(queryString,connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}
}
finally
{
reader.Close();
}
}
}
Новый подход - использование ORM
ORM(Object Relational Mapping) - отображение объектов
какого-либо объектно - ориентированного языка в структуры
реляционных баз данных. Эта технология позволяет
разработчику уменьшить зависимость от реляционных баз.
Популярные ORM для .NET это Entity Framework, Nhibernate,
LightSpeed (платный)
Entity Framework
Entity Framework – Разработанная Microsoft фреймверк для
работы с сущностями(entities). Сущностью является таблица
базы данных и ее связи. Т.е. грубо говоря Entity Framework
интерпритирует данные БД в коллекцию объектов.
Cуществует три подхода работы с Entity Framework:
• Code first
• Model first
• Database first
Подходы для работы с EF
История EF
• EF 1. Это был первый релиз, который представил
разработчикам Database-First подход. Также был внедрен
EF Designer and Tools для Visual Studio 2008 (with SP1)
• EF 4. За первым последовал 4-й фреймверк. В нем
появился Code-first подход, POCO entity
generator(генератор сущнестей по модели), T4 templates,
Повышение производительности.
• EF5. Поддержка Enum, возвращающих табличное значение
функций, пространственные типы данных(например тип
geography), а так же ряд улучшений производительности.
• EF6. Асинхронные запросы и сохранение, Code First
Mapping для Insert/Update/Delete хранимых процедур.
Entity Framework 7. Чего стоит ждать
EF6 по прежнему продолжает дорабатываться. EF7- это
достаточно революционный проект.
А 7-ая ли это версия в принципе или это новый продукт
похожий на EF по основному API, но сильно разный внутри?
Векторы развития EF7
Команда выбрала путь более частых обновлений EF7,
чтобы не заставлять всех ждать полного комплекта
изменений.
Обозначены 2 вектора развития EF7:
• MobilePlatforms;
• NoSQL.
Оптимизация использования
RAM/CPU
Уменьшение потребления ресурсов — это обязательное
условие для нормальной работы на мобильных девайсах,
где объем RAM – 2 Гб на топовых моделях и 512 Мб на
стоковых. Рефакторинг и разбиение проекта на разные
сборки – это поддержка обоих векторов одновременно.
Именно к этому и пригли разработчики из команды EF
Сборки
Если EF 6 состоял из 2-х сборок:EntityFramework и
EntityFramework.SqlServer. Новый фреймверк будет состоять
из 10 сборок
Старая музыка по-новому
• Переработка логики DetectChanges
• Отказ от DBFirst и Model First. Только Code First
• Отказ от DatabaseInitializer
DetectChanges
Основной претензией было то, что за счет отслеживания
состояний объектов и вызова на каждый чих DetectChanges,
он жутко тормозил.
Это все решалось установкой настройки
AutoDetectChanges=false при массовых операциях вставки,
но об этом надо было знать.
В 7-ой версии настройку AutoDetectChanges удалили за
ненадобностью, т.к. DetectChanges перестал вызываться
постоянно, только на EF7 DbContext.SaveChanges, DbSet.Local,
DbContext.Entry, DbChangeTracker.Entries.
EDMX. Его Вы больше не увидите
DatabaseInitializer, good bye
• База данных будет инициализироваться только с помощью
миграций.
• Миграция баз данных-это поддержка актуального
состояния базы данных. Это делается путем сравнения
текущего списка миграций в коде с таблицей миграциий в
БД(присутствует в каждой бд при первой миграции), при
их отличии будет ошибка
Поговорим о NoSQL
NoSQL (Not only SQL) — это ряд технологий, подходов,
проектов направленных на реализацию моделей баз
данных, имеющих существенные отличия от традиционных
СУБД, работающих с языком SQL.
Системой хранения NoSQL может быть как «ключ-значение»,
так и “BSON”
EF7 поддерживает нереляционные хранилища данных такие
как Redis(REmote DIctionary Server), Azure Table Storage.
Известно лишь, что для доступа будет использоваться
стороння библиотека StackExchange
EF для мобильных платформ
Ранее Entity Framework поддерживалась только в ASP.NET,
WPF, Windows Forms приложениях. Этого хватало долгое
время до появления мобильных платформ таких как
Windows Phone.
В Windows Phone и WinRT desktop поддерживается SQLite-
облегченное хранилище данных. Доступ к данным
происходит таким же образом, как и ранее в .NET
приложениях на низком уровне.
Microsoft решила выпустить Entity Framework для
мобильных платформ, т.к. мобильные приложения с
каждым днем становятся все более зависимыми от баз
данных.
Demo
Давайте посмотрим на демо, в котором я попытался
продемонстрировать всю прелесть Entity Framework 7 для
мобильных платформ.
Идея приложения:
Summary
• Ознакомились с такими понятиями как ORM, NoSQL
• Познакомились с представителем ORM- Entity Framework
• Кратко пробежались по истории EF
• Ознакомились с нововведениями 7 версии:
 Отказ от DB First и Model First подхода
Переработка поведеия DetectChanges
Поддержка SQLite
Поддержка NoSQL
• Демо
Спасибо за внимание!

Más contenido relacionado

Ähnlich wie Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.

Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0beloslab
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализpcweek_ua
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKCisco Russia
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...DevDay
 
AZadonsky Exalogic
AZadonsky ExalogicAZadonsky Exalogic
AZadonsky ExalogicVasily Demin
 
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван МоскалёвYandex
 
Управление гибридным ландшафтом с помощью Cisco CloudCenter
Управление гибридным ландшафтом с помощью Cisco CloudCenterУправление гибридным ландшафтом с помощью Cisco CloudCenter
Управление гибридным ландшафтом с помощью Cisco CloudCenterCisco Russia
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.Igor Shkulipa
 
начинаем работать с Sql server compact
начинаем работать с Sql server compactначинаем работать с Sql server compact
начинаем работать с Sql server compactДенис Резник
 

Ähnlich wie Uneta 17.04.15 Dekhtiar - Entity framework 7 and co. (20)

Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
 
Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
Net framework
Net frameworkNet framework
Net framework
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Dotnet
DotnetDotnet
Dotnet
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализ
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
 
V1
V1V1
V1
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
 
AZadonsky Exalogic
AZadonsky ExalogicAZadonsky Exalogic
AZadonsky Exalogic
 
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  МоскалёвПереводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван  Москалёв
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван Москалёв
 
Управление гибридным ландшафтом с помощью Cisco CloudCenter
Управление гибридным ландшафтом с помощью Cisco CloudCenterУправление гибридным ландшафтом с помощью Cisco CloudCenter
Управление гибридным ландшафтом с помощью Cisco CloudCenter
 
0. hello java world
0. hello java world0. hello java world
0. hello java world
 
C# Web. Занятие 04.
C# Web. Занятие 04.C# Web. Занятие 04.
C# Web. Занятие 04.
 
начинаем работать с Sql server compact
начинаем работать с Sql server compactначинаем работать с Sql server compact
начинаем работать с Sql server compact
 
Java: вчера, сегодня, завтра
Java: вчера, сегодня, завтраJava: вчера, сегодня, завтра
Java: вчера, сегодня, завтра
 

Mehr von UNETA

Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?
Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?
Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?UNETA
 
Система анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктовСистема анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктовUNETA
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...UNETA
 
SQL Rally 2012 - масштабируемость SQL Server и SQL Azure
SQL Rally 2012 - масштабируемость SQL Server и SQL AzureSQL Rally 2012 - масштабируемость SQL Server и SQL Azure
SQL Rally 2012 - масштабируемость SQL Server и SQL AzureUNETA
 
Gamification
GamificationGamification
GamificationUNETA
 
Преимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBПреимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBUNETA
 

Mehr von UNETA (6)

Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?
Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?
Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?
 
Система анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктовСистема анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктов
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 
SQL Rally 2012 - масштабируемость SQL Server и SQL Azure
SQL Rally 2012 - масштабируемость SQL Server и SQL AzureSQL Rally 2012 - масштабируемость SQL Server и SQL Azure
SQL Rally 2012 - масштабируемость SQL Server и SQL Azure
 
Gamification
GamificationGamification
Gamification
 
Преимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDBПреимущества NoSQL баз данных на примере MongoDB
Преимущества NoSQL баз данных на примере MongoDB
 

Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.

  • 1. Entity Framework 7 and co. Speaker: Dekhtiar Oleksandr .NET developer, DCT
  • 2. Стартуем. Поговорим о: • Доступе к данным на начальных этапах • Что такое ORM • Entity Framework что это такое и с чем его едят • История Entity Framework • Что нового в EF 7 • Demo. Использование EF в мобильных решениях
  • 3. Что было до ORM private static void ReadOrderData(string connectionString) { string queryString="SELECT OrderID, CustomerID FROM dbo.Orders;"; using (SqlConnection connection =new SqlConnection) { var command=new SqlCommand(queryString,connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); } } finally { reader.Close(); } } }
  • 4. Новый подход - использование ORM ORM(Object Relational Mapping) - отображение объектов какого-либо объектно - ориентированного языка в структуры реляционных баз данных. Эта технология позволяет разработчику уменьшить зависимость от реляционных баз. Популярные ORM для .NET это Entity Framework, Nhibernate, LightSpeed (платный)
  • 5. Entity Framework Entity Framework – Разработанная Microsoft фреймверк для работы с сущностями(entities). Сущностью является таблица базы данных и ее связи. Т.е. грубо говоря Entity Framework интерпритирует данные БД в коллекцию объектов. Cуществует три подхода работы с Entity Framework: • Code first • Model first • Database first
  • 7. История EF • EF 1. Это был первый релиз, который представил разработчикам Database-First подход. Также был внедрен EF Designer and Tools для Visual Studio 2008 (with SP1) • EF 4. За первым последовал 4-й фреймверк. В нем появился Code-first подход, POCO entity generator(генератор сущнестей по модели), T4 templates, Повышение производительности. • EF5. Поддержка Enum, возвращающих табличное значение функций, пространственные типы данных(например тип geography), а так же ряд улучшений производительности. • EF6. Асинхронные запросы и сохранение, Code First Mapping для Insert/Update/Delete хранимых процедур.
  • 8. Entity Framework 7. Чего стоит ждать EF6 по прежнему продолжает дорабатываться. EF7- это достаточно революционный проект. А 7-ая ли это версия в принципе или это новый продукт похожий на EF по основному API, но сильно разный внутри?
  • 9. Векторы развития EF7 Команда выбрала путь более частых обновлений EF7, чтобы не заставлять всех ждать полного комплекта изменений. Обозначены 2 вектора развития EF7: • MobilePlatforms; • NoSQL.
  • 10. Оптимизация использования RAM/CPU Уменьшение потребления ресурсов — это обязательное условие для нормальной работы на мобильных девайсах, где объем RAM – 2 Гб на топовых моделях и 512 Мб на стоковых. Рефакторинг и разбиение проекта на разные сборки – это поддержка обоих векторов одновременно. Именно к этому и пригли разработчики из команды EF
  • 11. Сборки Если EF 6 состоял из 2-х сборок:EntityFramework и EntityFramework.SqlServer. Новый фреймверк будет состоять из 10 сборок
  • 12. Старая музыка по-новому • Переработка логики DetectChanges • Отказ от DBFirst и Model First. Только Code First • Отказ от DatabaseInitializer
  • 13. DetectChanges Основной претензией было то, что за счет отслеживания состояний объектов и вызова на каждый чих DetectChanges, он жутко тормозил. Это все решалось установкой настройки AutoDetectChanges=false при массовых операциях вставки, но об этом надо было знать. В 7-ой версии настройку AutoDetectChanges удалили за ненадобностью, т.к. DetectChanges перестал вызываться постоянно, только на EF7 DbContext.SaveChanges, DbSet.Local, DbContext.Entry, DbChangeTracker.Entries.
  • 14. EDMX. Его Вы больше не увидите
  • 15. DatabaseInitializer, good bye • База данных будет инициализироваться только с помощью миграций. • Миграция баз данных-это поддержка актуального состояния базы данных. Это делается путем сравнения текущего списка миграций в коде с таблицей миграциий в БД(присутствует в каждой бд при первой миграции), при их отличии будет ошибка
  • 16. Поговорим о NoSQL NoSQL (Not only SQL) — это ряд технологий, подходов, проектов направленных на реализацию моделей баз данных, имеющих существенные отличия от традиционных СУБД, работающих с языком SQL. Системой хранения NoSQL может быть как «ключ-значение», так и “BSON” EF7 поддерживает нереляционные хранилища данных такие как Redis(REmote DIctionary Server), Azure Table Storage. Известно лишь, что для доступа будет использоваться стороння библиотека StackExchange
  • 17. EF для мобильных платформ Ранее Entity Framework поддерживалась только в ASP.NET, WPF, Windows Forms приложениях. Этого хватало долгое время до появления мобильных платформ таких как Windows Phone. В Windows Phone и WinRT desktop поддерживается SQLite- облегченное хранилище данных. Доступ к данным происходит таким же образом, как и ранее в .NET приложениях на низком уровне. Microsoft решила выпустить Entity Framework для мобильных платформ, т.к. мобильные приложения с каждым днем становятся все более зависимыми от баз данных.
  • 18. Demo Давайте посмотрим на демо, в котором я попытался продемонстрировать всю прелесть Entity Framework 7 для мобильных платформ. Идея приложения:
  • 19. Summary • Ознакомились с такими понятиями как ORM, NoSQL • Познакомились с представителем ORM- Entity Framework • Кратко пробежались по истории EF • Ознакомились с нововведениями 7 версии:  Отказ от DB First и Model First подхода Переработка поведеия DetectChanges Поддержка SQLite Поддержка NoSQL • Демо