Mais conteúdo relacionado
Mais de Rogério Moraes de Carvalho (18)
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.