Entity Framework 6 [MVP ShowCast 2013 - DEV - Plataforma de dados & Business Intelligence (DEV)]
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 1,129 views
Uploaded on

Palestra: Entity Framework 6 ...

Palestra: Entity Framework 6
Palestrante: Rogério Moraes de Carvalho (MVP Visual C#)
Realização: 06/12/2013 17h
Trilha: Plataforma de dados & Business Intelligence (DEV)
Sessão: Desenvolvimento
Evento: MVP ShowCast 2013
Site: http://mvpshowcast.azurewebsites.net

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,129
On Slideshare
485
From Embeds
644
Number of Embeds
4

Actions

Shares
Downloads
5
Comments
0
Likes
1

Embeds 644

http://rogeriomc.wordpress.com 498
https://rogeriomc.wordpress.com 141
https://www.google.com.br 4
http://feedly.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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.