SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
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

Último

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

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.