Download - Entity Framework 6 [MVP ShowCast 2013 - DEV - Plataforma de dados & Business Intelligence (DEV)]
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
MVP ShowCast 2013
Entity Framework 6
Rogério Moraes de Carvalho
Visual C#
Diretor de Tecnologia – VITA Informática
@rogeriomc rogeriomc.wordpress.com
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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 doEntity Framework
♦Perguntas & Respostas
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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)
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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)
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Modelos de desenvolvimento
Novobanco
Bancoexistent
e
Database First♦ Engenharia reversa para o
modelo .edmx♦ Geração automática de classes
do .edmx
Model First♦ Criação do modelo .edmx no
designer♦ Geração do banco de dados
do .edmx♦ Geração automática de classes
do .edmx Code First♦ Definição de classes e mapeamento no código
(ferramentas de engenharia reversa disponíveis)
Code First♦ 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
Baseado no designer Baseado em codificação
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Entity Framework eLINQ para Entidades
Aplicação
Banco de dados
Entity Framework
from f in db.Fornecedoreswhere f.UF == "DF"select f
Consulta LINQdb: instância de DbContext
Consulta SQL
SELECT Id, NomeEmpresa, ...FROM FornecedoresWHERE UF = 'DF'
Registros
Entidades db.SaveChanges()
DML ou Stored Procedures
db.Fornecedores.Add(f1);f2.UF = "SP";db.Fornecedores.Remove(f3);
INSERT INTO Fornecedores …UPDATE Fornecedores …DELETE FROM Fornecedores …
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Code First & EF Designer♦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
Somente Code First♦Convenções personalizadas
♦Stored procedures de inclusão, atualização e exclusão
Novidades do Entity Framework 6EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Do time do EF na Microsoft♦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
Dos contribuidores♦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
Novidades do Entity Framework 6EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Instalação do Entity Framework 6
♦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)
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
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>
♦ 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
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Logging de comandos debanco 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
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Demonstração 2: Logging de comandos de banco de dados
♦DbContext.Database.Log: Action<string>
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Mapeamento Code First destored procedures
♦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
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Demonstração 3: MapeamentoCode First de stored procedures
♦API Fluente do Code First♦modelBuilder.Entity<TEntidade>().MapToStoreProcedures()
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Consulta e salvamento assíncrono
♦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
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Demonstração 4:Consulta e salvamento assíncrono
♦DbContext.SaveChangesAsync()♦Método de extensão ToListAsync()
EF6
NOVO
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Alguns recursos para estudo doEntity 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
SESSÃO: DESENVOLVIMENTO
TRILHA: PLATAFORMA DE DADOS & BUSINESS INTELLIGENCE (DEV)
© 2013, MVP ShowCast. Evento organizado por MVPs do Brasil com apoio da Microsoft.
Perguntas & RespostasEntity Framework 6
Rogério Moraes de Carvalho Visual C#Diretor de Tecnologia – VITA Informática @rogeriomc rogeriomc.wordpress.com