SlideShare uma empresa Scribd logo
1 de 20
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

MVP ShowCast 2013

Entity Framework 6
Rogério Moraes de Carvalho
Visual C#
Diretor de Tecnologia – VITA Informática
@rogeriomc

rogeriomc.wordpress.com

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Agenda
♦ Object-Relational Mapping (ORM)
♦ Entity Framework
♦ Código aberto
♦ Modelos de desenvolvimento
♦ Entity Framework e LINQ para
Entidades
♦ Novidades do Entity Framework 6
♦ Instalação do Entity Framework 6

♦ Convenções Code First
personalizadas (Demonstração 1)
♦ Logging de comandos de banco
de dados (Demonstração 2)
♦ Mapeamento Code First de stored
procedures (Demonstração 3)

♦ Consulta e salvamento assíncrono
(Demonstração 4)
♦ Alguns recursos para estudo do
Entity Framework

♦ Perguntas & Respostas
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Object-Relational Mapping (ORM)
♦ O que é Object-Relational Mapping (ORM)?
♦ Técnica de desenvolvimento que permite automatizar tarefas de POO com
dados armazenados em bancos de dados relacionais
♦ Frameworks mapeiam objetos de domínio a objetos de banco de dados e
geram comandos em SQL

♦ Principais frameworks de ORM para .NET
♦ Entity Framework (Open Source – Microsoft)
♦
(Open Source – http://nhforge.org)

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Entity Framework
♦ O que é o Entity Framework (EF)?
♦ Framework da Microsoft para mapear objetos de domínio para dados
relacionais

♦ Versão estável atual
♦ Entity Framework 6.0.1
♦ Liberada em 18 de outubro de 2013
♦ Junto com o Visual Studio 2013 RTM e o Windows 8.1 GA

♦ Desenvolvimento do Entity Framework
♦ Time do Entity Framework da Microsoft em colaboração com a comunidade
de desenvolvedores open source
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Código aberto
♦ Entity Framework no CodePlex
♦ http://entityframework.codeplex.com

♦ Diversos recursos disponíveis
♦
♦
♦
♦
♦
♦

Código-fonte (Source code)
Compilações noturnas (Nightly builds)
Documentação (Documentation)
Especificações de características (Feature specs)
Acompanhamento de problemas (Issue tracking)
Notas de reuniões de design (Design meeting notes)

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Modelos de desenvolvimento
Baseado no designer

Baseado em codificação

Banco
existente

Code First

Database First

Novo
banco

Model First

Code First

♦ Criação do modelo .edmx no designer
♦ Geração do banco de dados do .edmx
♦ Geração automática de classes do .edmx

♦
♦

Engenharia reversa para o modelo .edmx
Geração automática de classes do .edmx

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

♦ Definição de classes e mapeamento no código
♦ Criação do banco de dados do código
♦ Migrations aplica mudanças do modelo no banco

♦ Definição de classes e mapeamento no código
(ferramentas de engenharia reversa disponíveis)
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Entity Framework e
LINQ para Entidades
from f in db.Fornecedores
where f.UF == "DF"
select f

Consulta LINQ
db: instância de DbContext

Aplicação
Entidades

db.Fornecedores.Add(f1);
f2.UF = "SP";
db.Fornecedores.Remove(f3);

db.SaveChanges()

Entity Framework
Registros
Consulta SQL
SELECT Id, NomeEmpresa, ...
FROM Fornecedores
WHERE UF = 'DF'

DML ou Stored Procedures

Banco de dados

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

INSERT INTO Fornecedores …
UPDATE Fornecedores …
DELETE FROM Fornecedores …
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
NOVO

Novidades do Entity Framework 6

EF6

Code First & EF Designer

Somente Code First

Consulta e salvamento assíncrono
Resiliência de conexão
Configuração baseada em código
Intercepção/Logging de comandos
de banco de dados
♦ Melhorias de desempenho

♦ Convenções personalizadas
♦ Stored procedures de
inclusão, atualização e exclusão

♦
♦
♦
♦

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
NOVO

Novidades do Entity Framework 6

EF6

Do time do EF na Microsoft

Dos contribuidores

Tipos entidades aninhados
Suporte melhorado a transações
Múltiplos contextos por banco
DbModelBuilder.HasDefaultSchema
Histórico de migrações configurável
Criação de contexto com uma
conexão aberta
♦ Enums e tipos espaciais no .NET 4
♦ READ_COMMITTED_SNAPSHOT

♦ Operações de migração
personalizadas
♦ Melhorias de carregamento para
grandes modelos
♦ Serviço de pluralização e
singularização possível de plugar
♦ DbModelBuilder.Configurations
.AddFromAssembly
♦ DbSet.AddRange/RemoveRange

♦
♦
♦
♦
♦
♦

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
NOVO

Instalação do Entity Framework 6

EF6

♦ O Entity Framework tem dois componentes:
♦ EF Tools for Visual Studio
♦ EF Runtime

♦ EF Tools for Visual Studio
♦ O Entity Framework 6 Tools já vem incluído no Visual Studio 2013
♦ No Visual Studio 2012, ele está disponível no Microsoft Download Center
♦ http://www.microsoft.com/en-us/download/details.aspx?id=40762

♦ EF Runtime
♦ A última versão do EF está disponível no pacote NuGet EntityFramework
♦ Última versão estável do pacote publicada: 6.0.1 (17/10/2013)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
NOVO

Convenções Code First personalizadas
♦ Descrição
♦ Configurações em massa para múltiplas entidades e propriedades

♦ Necessidade
♦ Evitar configurações repetitivas e sujeitas a erro

♦ Casos de uso
♦ Padrões no seu modelo que não seguem as convenções Code First
♦ Como em nomenclaturas de chaves primárias

♦ Mudança de convenções padrão que não te agradam
♦ Como nomenclatura de colunas e mapeamento de tipos de dados

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

EF6
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Demonstração 1:
Convenções Code First personalizadas
♦ Criação de uma Class Library
♦ MvpShowCast.Dados
♦ Criação de entidades
♦ Trilha
♦ IdTrilha: int
♦ Nome: string
♦ Palestras: List<Palestra>
♦ Palestrante
♦ IdPalestrante: int
♦ Nome: string
♦ Empresa: string
♦ Ocupacao: string
♦ Palestras: List<Palestra>
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

NOVO

EF6

♦ Palestra
♦ IdPalestra: int
♦ Titulo: string
♦ Inicio: DateTime
♦ IdTrilha: int
♦ Trilha: Trilha
♦ IdPalestrante: int
♦ Palestrante: Palestrante

♦ Criação do MvpShowCastContext
♦ Criação de convenções personalizadas

♦ Criação de uma Aplicação Console
♦ MvpShowCast.ConsoleApp
♦ Para consulta e salvamento de dados
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Logging de comandos de
banco de dados
♦ Descrição
♦ Log de todo comando enviado para o banco de dados

♦ Necessidade
♦ Maneira simples de verificar o que está acontecendo nos bastidores

♦ Casos de uso
♦ Entendimento e aprendizado do Entity Framework
♦ Como a tradução de instruções LINQ para o dialeto SQL do banco de dados

♦ Depuração de resultados e comportamentos inesperados
♦ Auxiliar na solução de problemas de desempenho

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

NOVO

EF6
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Demonstração 2: Logging de
comandos de banco de dados
♦ DbContext.Database.Log: Action<string>

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

NOVO

EF6
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Mapeamento Code First de
stored procedures

NOVO

EF6

♦ Descrição
♦ Configuração de stored procedures para inclusão, atualização e exclusão

♦ Necessidade
♦ Muitas empresas obrigam o uso de stored procedures

♦ Casos de uso
♦ Mapeamento para bancos de dados existentes que usam stored procedures
♦ Regras de modelagem que obrigam o uso de stored procedures
♦ Necessidade de executar regras de negócios com melhor desempenho
dentro do banco de dados
♦ O EF não pode mapear para o esquema do seu banco de dados
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Demonstração 3: Mapeamento
Code First de stored procedures
♦ API Fluente do Code First
♦ modelBuilder.Entity<TEntidade>().MapToStoreProcedures()

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

NOVO

EF6
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
NOVO

Consulta e salvamento assíncrono

EF6

♦ Descrição
♦ Task-based Asynchronous Pattern (TAP) para consulta e salvamento

♦ Necessidade
♦ Apropriado para melhorar o desempenho e a escalabilidade

♦ Casos de uso
♦ Redução no uso de recursos do servidor
♦ Liberação de threads bloqueadas

♦ Melhoria na resposta de aplicações com interface gráfica
♦ Liberação da thread principal, responsável pela “renderização” da interface gráfica

♦ Paralelismo

♦ Num contexto de instância distinto
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Demonstração 4:
Consulta e salvamento assíncrono
♦ DbContext.SaveChangesAsync()
♦ Método de extensão ToListAsync()

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

NOVO

EF6
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Alguns recursos para estudo do
Entity Framework
♦ MSDN Data Developer Center – Entity Framework
♦ http://msdn.com/data/ef

♦ Projeto do Entity Framework no CodePlex
♦ http://entityframework.codeplex.com

♦ Rowan Miller – Program Manager do time de ADO.NET Entity Framework
♦ http://romiller.com

♦ Livros da Julia Lerman
♦ Programming Entity Framework: Code First
♦ http://shop.oreilly.com/product/0636920022220.do

♦ Programming Entity Framework: DbContext
♦ http://shop.oreilly.com/product/0636920022237.do
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
SESSÃO: DESENVOLVIMENTO

TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)

Perguntas & Respostas
Entity Framework 6

Rogério Moraes de Carvalho
Visual C#
Diretor de Tecnologia – VITA Informática
@rogeriomc
rogeriomc.wordpress.com

© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.

Mais conteúdo relacionado

Destaque

Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Rogério Moraes de Carvalho
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemRogério Moraes de Carvalho
 
Desenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored ProcedureDesenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored ProcedureFernando Roberto Proença
 
Manual java swing
Manual java swingManual java swing
Manual java swingRobert Wolf
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaRogério Moraes de Carvalho
 
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework CoreUm novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework CoreRogério Moraes de Carvalho
 
Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Proceduresalexdutra
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012Rodrigo Ribeiro
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosFábio dos Reis
 

Destaque (9)

Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
 
Desenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored ProcedureDesenvolvimento de um CRUD utilizando Stored Procedure
Desenvolvimento de um CRUD utilizando Stored Procedure
 
Manual java swing
Manual java swingManual java swing
Manual java swing
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
 
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework CoreUm novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
 
Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Procedures
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 

Mais de Rogério Moraes de Carvalho

dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoreRogério Moraes de Carvalho
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroRogério Moraes de Carvalho
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7Rogério Moraes de Carvalho
 
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...Rogério Moraes de Carvalho
 
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...Rogério Moraes de Carvalho
 
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...Rogério Moraes de Carvalho
 
MVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo realMVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo realRogério Moraes de Carvalho
 
MVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebMVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebRogério Moraes de Carvalho
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisRogério Moraes de Carvalho
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...Rogério Moraes de Carvalho
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5Rogério Moraes de Carvalho
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#Rogério Moraes de Carvalho
 

Mais de Rogério Moraes de Carvalho (18)

Docker com ASP.NET Core e Hospedagem no Azure
Docker com ASP.NET Core e Hospedagem no AzureDocker com ASP.NET Core e Hospedagem no Azure
Docker com ASP.NET Core e Hospedagem no Azure
 
Tecnologias XML e XML no SQL Server 2016
Tecnologias XML eXML no SQL Server 2016Tecnologias XML eXML no SQL Server 2016
Tecnologias XML e XML no SQL Server 2016
 
Cebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET CoreCebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET Core
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
 
Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016Suporte XML nativo no SQL Server 2014/2016
Suporte XML nativo no SQL Server 2014/2016
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
 
`
``
`
 
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
HTML5 + CSS3 em múltiplos browsers, em múltiplas plataformas e em múltiplos d...
 
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
 
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...The Developer's Conference (TDC) 2013 - Florianópolis:  HTML5 + CSS3 em múlti...
The Developer's Conference (TDC) 2013 - Florianópolis: HTML5 + CSS3 em múlti...
 
MVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo realMVP Virtual Conference 2013: Cenário do mundo real
MVP Virtual Conference 2013: Cenário do mundo real
 
MVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebMVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões Web
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
 
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
TDC 2012 Goiânia: Trilha Windows Phone / Windows 8 - Desenvolvimento de apps ...
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
 
TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#TechEd 2011 Review - Evolução da linguagem de programação C#
TechEd 2011 Review - Evolução da linguagem de programação C#
 
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
TechEd Brasil 2011 Review - Evolução da linguagem de programação C#
 

Entity Framework 6 [MVP ShowCast 2013 - DEV - Plataforma de dados & Business Intelligence (DEV)]

  • 1. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) MVP ShowCast 2013 Entity Framework 6 Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 2. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Agenda ♦ Object-Relational Mapping (ORM) ♦ Entity Framework ♦ Código aberto ♦ Modelos de desenvolvimento ♦ Entity Framework e LINQ para Entidades ♦ Novidades do Entity Framework 6 ♦ Instalação do Entity Framework 6 ♦ Convenções Code First personalizadas (Demonstração 1) ♦ Logging de comandos de banco de dados (Demonstração 2) ♦ Mapeamento Code First de stored procedures (Demonstração 3) ♦ Consulta e salvamento assíncrono (Demonstração 4) ♦ Alguns recursos para estudo do Entity Framework ♦ Perguntas & Respostas © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 3. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Object-Relational Mapping (ORM) ♦ O que é Object-Relational Mapping (ORM)? ♦ Técnica de desenvolvimento que permite automatizar tarefas de POO com dados armazenados em bancos de dados relacionais ♦ Frameworks mapeiam objetos de domínio a objetos de banco de dados e geram comandos em SQL ♦ Principais frameworks de ORM para .NET ♦ Entity Framework (Open Source – Microsoft) ♦ (Open Source – http://nhforge.org) © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 4. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Entity Framework ♦ O que é o Entity Framework (EF)? ♦ Framework da Microsoft para mapear objetos de domínio para dados relacionais ♦ Versão estável atual ♦ Entity Framework 6.0.1 ♦ Liberada em 18 de outubro de 2013 ♦ Junto com o Visual Studio 2013 RTM e o Windows 8.1 GA ♦ Desenvolvimento do Entity Framework ♦ Time do Entity Framework da Microsoft em colaboração com a comunidade de desenvolvedores open source © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 5. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Código aberto ♦ Entity Framework no CodePlex ♦ http://entityframework.codeplex.com ♦ Diversos recursos disponíveis ♦ ♦ ♦ ♦ ♦ ♦ Código-fonte (Source code) Compilações noturnas (Nightly builds) Documentação (Documentation) Especificações de características (Feature specs) Acompanhamento de problemas (Issue tracking) Notas de reuniões de design (Design meeting notes) © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 6. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Modelos de desenvolvimento Baseado no designer Baseado em codificação Banco existente Code First Database First Novo banco Model First Code First ♦ Criação do modelo .edmx no designer ♦ Geração do banco de dados do .edmx ♦ Geração automática de classes do .edmx ♦ ♦ Engenharia reversa para o modelo .edmx Geração automática de classes do .edmx © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. ♦ Definição de classes e mapeamento no código ♦ Criação do banco de dados do código ♦ Migrations aplica mudanças do modelo no banco ♦ Definição de classes e mapeamento no código (ferramentas de engenharia reversa disponíveis)
  • 7. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Entity Framework e LINQ para Entidades from f in db.Fornecedores where f.UF == "DF" select f Consulta LINQ db: instância de DbContext Aplicação Entidades db.Fornecedores.Add(f1); f2.UF = "SP"; db.Fornecedores.Remove(f3); db.SaveChanges() Entity Framework Registros Consulta SQL SELECT Id, NomeEmpresa, ... FROM Fornecedores WHERE UF = 'DF' DML ou Stored Procedures Banco de dados © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. INSERT INTO Fornecedores … UPDATE Fornecedores … DELETE FROM Fornecedores …
  • 8. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) NOVO Novidades do Entity Framework 6 EF6 Code First & EF Designer Somente Code First Consulta e salvamento assíncrono Resiliência de conexão Configuração baseada em código Intercepção/Logging de comandos de banco de dados ♦ Melhorias de desempenho ♦ Convenções personalizadas ♦ Stored procedures de inclusão, atualização e exclusão ♦ ♦ ♦ ♦ © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 9. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) NOVO Novidades do Entity Framework 6 EF6 Do time do EF na Microsoft Dos contribuidores Tipos entidades aninhados Suporte melhorado a transações Múltiplos contextos por banco DbModelBuilder.HasDefaultSchema Histórico de migrações configurável Criação de contexto com uma conexão aberta ♦ Enums e tipos espaciais no .NET 4 ♦ READ_COMMITTED_SNAPSHOT ♦ Operações de migração personalizadas ♦ Melhorias de carregamento para grandes modelos ♦ Serviço de pluralização e singularização possível de plugar ♦ DbModelBuilder.Configurations .AddFromAssembly ♦ DbSet.AddRange/RemoveRange ♦ ♦ ♦ ♦ ♦ ♦ © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 10. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) NOVO Instalação do Entity Framework 6 EF6 ♦ O Entity Framework tem dois componentes: ♦ EF Tools for Visual Studio ♦ EF Runtime ♦ EF Tools for Visual Studio ♦ O Entity Framework 6 Tools já vem incluído no Visual Studio 2013 ♦ No Visual Studio 2012, ele está disponível no Microsoft Download Center ♦ http://www.microsoft.com/en-us/download/details.aspx?id=40762 ♦ EF Runtime ♦ A última versão do EF está disponível no pacote NuGet EntityFramework ♦ Última versão estável do pacote publicada: 6.0.1 (17/10/2013) © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 11. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) NOVO Convenções Code First personalizadas ♦ Descrição ♦ Configurações em massa para múltiplas entidades e propriedades ♦ Necessidade ♦ Evitar configurações repetitivas e sujeitas a erro ♦ Casos de uso ♦ Padrões no seu modelo que não seguem as convenções Code First ♦ Como em nomenclaturas de chaves primárias ♦ Mudança de convenções padrão que não te agradam ♦ Como nomenclatura de colunas e mapeamento de tipos de dados © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. EF6
  • 12. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Demonstração 1: Convenções Code First personalizadas ♦ Criação de uma Class Library ♦ MvpShowCast.Dados ♦ Criação de entidades ♦ Trilha ♦ IdTrilha: int ♦ Nome: string ♦ Palestras: List<Palestra> ♦ Palestrante ♦ IdPalestrante: int ♦ Nome: string ♦ Empresa: string ♦ Ocupacao: string ♦ Palestras: List<Palestra> © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. NOVO EF6 ♦ Palestra ♦ IdPalestra: int ♦ Titulo: string ♦ Inicio: DateTime ♦ IdTrilha: int ♦ Trilha: Trilha ♦ IdPalestrante: int ♦ Palestrante: Palestrante ♦ Criação do MvpShowCastContext ♦ Criação de convenções personalizadas ♦ Criação de uma Aplicação Console ♦ MvpShowCast.ConsoleApp ♦ Para consulta e salvamento de dados
  • 13. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Logging de comandos de banco de dados ♦ Descrição ♦ Log de todo comando enviado para o banco de dados ♦ Necessidade ♦ Maneira simples de verificar o que está acontecendo nos bastidores ♦ Casos de uso ♦ Entendimento e aprendizado do Entity Framework ♦ Como a tradução de instruções LINQ para o dialeto SQL do banco de dados ♦ Depuração de resultados e comportamentos inesperados ♦ Auxiliar na solução de problemas de desempenho © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. NOVO EF6
  • 14. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Demonstração 2: Logging de comandos de banco de dados ♦ DbContext.Database.Log: Action<string> © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. NOVO EF6
  • 15. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Mapeamento Code First de stored procedures NOVO EF6 ♦ Descrição ♦ Configuração de stored procedures para inclusão, atualização e exclusão ♦ Necessidade ♦ Muitas empresas obrigam o uso de stored procedures ♦ Casos de uso ♦ Mapeamento para bancos de dados existentes que usam stored procedures ♦ Regras de modelagem que obrigam o uso de stored procedures ♦ Necessidade de executar regras de negócios com melhor desempenho dentro do banco de dados ♦ O EF não pode mapear para o esquema do seu banco de dados © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 16. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Demonstração 3: Mapeamento Code First de stored procedures ♦ API Fluente do Code First ♦ modelBuilder.Entity<TEntidade>().MapToStoreProcedures() © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. NOVO EF6
  • 17. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) NOVO Consulta e salvamento assíncrono EF6 ♦ Descrição ♦ Task-based Asynchronous Pattern (TAP) para consulta e salvamento ♦ Necessidade ♦ Apropriado para melhorar o desempenho e a escalabilidade ♦ Casos de uso ♦ Redução no uso de recursos do servidor ♦ Liberação de threads bloqueadas ♦ Melhoria na resposta de aplicações com interface gráfica ♦ Liberação da thread principal, responsável pela “renderização” da interface gráfica ♦ Paralelismo ♦ Num contexto de instância distinto © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 18. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Demonstração 4: Consulta e salvamento assíncrono ♦ DbContext.SaveChangesAsync() ♦ Método de extensão ToListAsync() © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft. NOVO EF6
  • 19. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Alguns recursos para estudo do Entity Framework ♦ MSDN Data Developer Center – Entity Framework ♦ http://msdn.com/data/ef ♦ Projeto do Entity Framework no CodePlex ♦ http://entityframework.codeplex.com ♦ Rowan Miller – Program Manager do time de ADO.NET Entity Framework ♦ http://romiller.com ♦ Livros da Julia Lerman ♦ Programming Entity Framework: Code First ♦ http://shop.oreilly.com/product/0636920022220.do ♦ Programming Entity Framework: DbContext ♦ http://shop.oreilly.com/product/0636920022237.do © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
  • 20. SESSÃO: DESENVOLVIMENTO TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV) Perguntas & Respostas Entity Framework 6 Rogério Moraes de Carvalho Visual C# Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com © 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.