O documento discute o Entity Framework 7, incluindo: (1) O que é o EF7 e como ele fornece uma experiência semelhante ao EF anterior mas é mais leve; (2) A evolução do EF das versões anteriores para o EF7; (3) As novas plataformas e fontes de dados suportadas pelo EF7.
TDC 2011 Goiânia: Evolução da linguagem de programação JavaScript
The Developer’s Conference (TDC) 2015 Florianópolis: O Entity Framework 7 na evolução da plataforma .NET 2015
1. O Entity Framework 7
na evolução da plataforma .NET 2015
Rogério Moraes de Carvalho
VITA Informática
rogeriom.wordpress.com | @rogeriomc
2. Agenda
O Entity Framework 7 na evolução da plataforma .NET 2015
O que é o Entity Framework 7?
Evolução do Entity Framework
Plataformas
Fontes de dados
Provedores de fontes de dados
Novo núcleo
Novas características
Prioridades
Recursos adicionais
3. O que é o Entity Framework 7?
Entity Framework
Tecnologia de acesso a dados recomendada pela Microsoft para novas apps .NET
Entity Framework 7 (EF7)
Experiência de desenvolvimento similar a versões anteriores do EF
LINQ
POCO (Plain Old CLR Objects)
Code First
DbContext, DbSet, ...
Suporte a fontes de dados relacionais e não relacionais
Muito mais leve que as versões anteriores
Suporte na nuvem, em dispositivos e em cenários .NET tradicionais
4. Evolução do Entity Framework
Versão inicial do Entity Framework
Incluída no .NET 3.5 SP1 e VS 2008 SP1
Database First Workflow
EF /
EF 3.5
Incluída no .NET 4 e VS 2010
POCO, Lazy Loading, Custom Code Gen
Model First Workflow
EF 4
Primeira versão publicada via NuGet
API DbContext simplificada
Code First Workflow
EF 4.1
Code First Migrations
Mudanças incrementais no banco de
dados com a evolução do modelo
EF 4.3
Para .NET 4/VS 2010 e .NET 4.5/VS 2012
Para .NET 4.5 inclui suporte a: enum,
table-valued functions, spatial data types
EF 5
Incluída no VS 2013 e disponível para VS 2012
Diversos recursos funcionando em modelos
criados com Code First e EF Designer
EF 6
Consolidação de ferramentas, manipulação
de falhas em confirmações de transações, API
de mapeamento pública, ...
EF 6.1
Versão atual disponível
Correção de bugs de alta prioridade
Liberada em 10 de março de 2015
EF
6.1.3
Mais leve, suporte a dados não relacionais,
novas plataformas e fontes de dados, ...
EF 7
5. Plataformas
Aplicações tradicionais do .NET Framework
Console
Windows Forms
Windows Presentation Foundation (WPF)
ASP.NET 4
Novas plataformas
ASP.NET 5
Windows 10 Universal Application Platform (UAP)
Mac OS X
Linux
6. Fontes de dados
Fontes de dados relacionais e não relacionais no EF7
Não é uma abstração mágica
O núcleo do framework manipula conceitos comuns a muitas fontes de dados
Funcionalidades não comuns são manipuladas por extensões do provedor
7. Provedores de fontes de dados
Provedores relacionais
SQL Server
SQLite
PostgreSQL
In Memory (para testes)
Provedores não relacionais
Azure Table Storage (NoSQL datastore)
Redis (data structure server / key-value store)
Provedores em análise
DocumentDB, SQL Compact e MongoDB
8. Novo núcleo
O que representa o núcleo do EF?
Metadados
Rastreamento de mudanças
Pipeline de consultas, etc.
Componentes mais fáceis de estender e substituir
Componentes no estilo “pague pelo que você usa”
Substituição de APIs e comportamentos confusos
Uso otimizado de memória e CPU
9. Novas características
Instruções enviadas em lote durante SaveChanges
Unique constraints
Avaliação de consultas LINQ do lado do cliente
Objetos SEQUENCE do SQL Server 2012 em diante
Shadow state
10. Prioridades
Fornecer uma pilha de acesso a dados para o ASP.NET 5
Fornecer um provedor para SQL Server
Fornecer um provedor para PostgreSQL para suportar ambientes Mac OS X/Linux
Suporte a aplicações voltadas para o .NET Framework completo
Console, Windows Forms, Windows Presentation Foundation e ASP.NET 4/5
Implementação de novas funcionalidades
Suporte ao EF7 em outras plataformas
Windows 10 Universal App Platform, ...
Provedores adicionais
SQLite, Azure Table Storage, Redis, ...
11. Recursos adicionais
Entity Framework 7 no GitHub
github.com/aspnet/EntityFramework
UnicornStore – Aplicação ASP.NET MVC 6 demo para Entity Framework 7
github.com/rowanmiller/UnicornStore/
ADO.NET Blog
blogs.msdn.com/b/adonet/
EF7 - Priorities, Focus, and Initial Release (Rowan Miller – 02 dez 2014)
blogs.msdn.com/b/adonet/archive/2014/12/02/ef7-priorities-focus-and-initial-release.aspx
Build 2015
Session 2-693: Entity Framework 7: Data for Web, Phone, Store, and Desktop
channel9.msdn.com/Events/Build/2015/2-693 (30 abr 2015 / 55 min)