SlideShare una empresa de Scribd logo
1 de 35
Entity Framework 4.0 Luciano Condé Arquiteto de Soluções http://blogs.msdn.com/conde http://twitter.com/luconde
Agenda Por que ORMs? O que é Entity Framework Modelos no Entity Framework Considerações
<1>
Acesso a dados Acessando dados em 1990ODBC, SQL embutido Acessando dados em 2000ADO, Stored Procedures Acessando dados em 2005ADO.NET, Datasets, DataReaders Acessando dados em 2010ORM
ObjectRelationalMapping O que é? Uma abstração Técnica para mapear estruturas relacionais de bancos dados como objetos em linguagens OO Esconder detalhes de complexidade do acesso a tabelas Por que? Produtividade em desenvolvimento Independência de banco de dados
ORM em Windows Diversos Nhibernate EntitySpaces Open Access DevForce XPO Nãohá um “vencedor” em definitivo
Trajetória para um ORM by MS DatasetsTipados – Entregue  Objectspaces “v1” – Nunca entregue  Objectspaces “v2” – Nunca entregue  Microsoft Business Framework – nunca entregue  WinFS – Nunca entregue  LINQ TO SQL – Entregue (Novembro/2007)  Entity Framework v1 – Entregue (Agosto/2008) 
</1>
<2>
Evolução do .NET Framework SP1 3.5 3.0 .NET 1.0 .NET 1.1 .NET 2.0 .NET 4 2002 2003 2010 2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4
Entity Framework Um ORM quesepara o modeloconceitual do físico Permite a programação OO sobre as entidades – herança EF “como” um DAL Feitoparaser multi-banco Suportaações CRUD (views, procs e tables) Vários providers disponíveis SQL Server, Oracle, Mysql, DB2… Suportatransação, concorrência, procs, views
Arquitetura
Entity Framework 1.0 - Recursos Geração de modelo a partir de um banco de dados (databasefirst) Operações CRUD estão simplificadas Suporte a LINQ (LinqToEntities) Possibilidade de trabalhar com diversos banco de dados Suporte para SP (retornar, modificar) Ferramenta de Designer embutida
Entity Framework 1.0 - Dores O EF designer! Model First nãosuportado Baixosuportepara Stored Procedures SemPluralization/Singularization Foreign Keys escondidas Lazy Loading nãosuportado Falta de operadores LINQ Geração do SQL a desejar Semsuportepara POCO (Plain Old CLR Objects) Dificuldadeemmontagem de N-Tier
Entity Framework 4.0 Self-tracking entities Melhoria da geração SQL  Melhoria do suporte a LINQ ExecuteStoreQuery ExecuteStoreCommand Melhoria no suporte a SPROC Code-First development (Versãoem CTP) Suportepara Model-first Pluralizationautomática Foreign keys nosmodelos Suportepara POCO Lazy loading Geraçãode códigoporT4 IObjectSet Virtual SaveChanges ObjectStateManagercontrol
</2>
<3>
Como começar?
Banco de dados é a verdade Onde eu uso? Você já tem um banco de dados definido O banco de dados requer um controle próximo Como eu uso? Importe o banco de dados para dentro do modelo EDMX Use os recursos do Entity Framework Banco de dados Modelo Código
Demo
O modelo é a verdade Onde eu uso? Definir um modelo de classes sem se preocupar com o banco de dados Gerar o script a partir do modelo Como eu uso? Gere o modelo EDMX Gere o script do banco de dados Banco de dados Modelo Código
Demo
O código é a verdade Onde eu uso? Definir a suas próprias classes Banco de dados é apenas um detalhe de implementação Como eu uso? Gere as classes Gere o Object de Context Banco de dados Código
Demo
</3>
<4>
Considerações - ObjectContext Vocêcontrola Pense no tempo de vida de ObjectContext Attached X Detached dos objetos Possotermúltiplos EDMXs – Organizaçãoporcenáriosoutransaçõessemconhecimentomútuo
Considerações - Consultas Queries Linq to Entities Entity SQL Querybuilder Preferência para Linq to Entities Lazy loading X Early loading
Considerações – Extensão Entidades Propriedades OnPropertyChange ObjectContext SavingChanges OnContextCreated Uso de DTOs para transportar os dados Considere o uso de T4 Procs e views Continuam sendo utilizadas
Considerações - Concorrência Modelootimista Escolhas as colunasquedeseja “monitorar” – Concurrence Mode para “Fixed” Implemente o tratamento da Exceção “OptimisticConcurrencyException” Emcaso de conflito utilize o método Refresh paradeterminarquem tem a prioridade Você é quemcontrola a frequência de atualização
Considerações - Transação Implícitas Explícitas
Considerações – POCO, WCF A existência das propriedades ChangeObjectState Use self-trackingscomoaceleradorpara n-tier Desabilite o lazy loading Cuidado com as colisões de EntityKey Usando o WCF habilite sempre o log para saber os problemas de conversão de tipos Use DTOs para auxiliar na redução da transferência de classes entre as camadas Use a geração de código T4 para facilitar Estude Proxies
</4>
Links http://msdn.microsoft.com/en-us/magazine/ee236639.aspx - Boas práticas EF e arquitetura de acesso a dados http://blogs.msdn.com/adonet  - Time do Entity Framework http://blogs.msdn.com/efdesign - Time do Design do Entity Framework http://blogs.msdn.com/adonet/archive/2008/10/07/migrating-from-linq-to-sql-to-entity-framework-eager-loading.aspx - Migrando de Linq To sqlpara Entity Framework http://msdn.microsoft.com/en-us/magazine/cc163286.aspx- Modelando um Entity Data Model http://msdn.microsoft.com/en-us/magazine/cc700340.aspx - Entity Framework sobre arquiteturas de n-layers http://msdn.microsoft.com/en-us/magazine/cc507640.aspx- Q & A de Entity Framework  http://msdn.microsoft.com/en-us/library/bb399572.aspx 34
© 2010 Microsoft Corporation. All rights reserved. Microsoft, MSDN, the MSDN logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.   The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Más contenido relacionado

La actualidad más candente

Windows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaWindows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaFabio Hara
 
Azure Stack | Visão Geral
Azure Stack | Visão GeralAzure Stack | Visão Geral
Azure Stack | Visão GeralFabio Hara
 
Fim do Suporte do Windows Server 2008 e SQL Server 2008
Fim do Suporte do Windows Server 2008 e SQL Server 2008Fim do Suporte do Windows Server 2008 e SQL Server 2008
Fim do Suporte do Windows Server 2008 e SQL Server 2008Fabio Hara
 
Windows Admin Center
Windows Admin CenterWindows Admin Center
Windows Admin CenterFabio Hara
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...Walter Coan
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
Microsoft Azure Fundamentals | Everis - Julho-2021
Microsoft Azure Fundamentals | Everis - Julho-2021Microsoft Azure Fundamentals | Everis - Julho-2021
Microsoft Azure Fundamentals | Everis - Julho-2021Renato Groffe
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
Windows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSWindows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSFabio Hara
 
Aprimore seus servidores de arquivos com Azure File Sync
Aprimore seus servidores de arquivos com Azure File SyncAprimore seus servidores de arquivos com Azure File Sync
Aprimore seus servidores de arquivos com Azure File SyncInvent IT Solutions
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Mathias Brem
 
Azure Fundamentals (Intensivão Azure)
Azure Fundamentals (Intensivão Azure)Azure Fundamentals (Intensivão Azure)
Azure Fundamentals (Intensivão Azure)Resource IT
 
Por que computação em nuvem?
Por que computação em nuvem?Por que computação em nuvem?
Por que computação em nuvem?Dervanil Junior
 

La actualidad más candente (20)

Sql server 2019 big data cluster
Sql server 2019 big data clusterSql server 2019 big data cluster
Sql server 2019 big data cluster
 
Azure @ Rio Cloud Meetup
Azure @ Rio Cloud MeetupAzure @ Rio Cloud Meetup
Azure @ Rio Cloud Meetup
 
Windows Server 2016 | Hyperconvergência
Windows Server 2016 | HyperconvergênciaWindows Server 2016 | Hyperconvergência
Windows Server 2016 | Hyperconvergência
 
Azure Stack | Visão Geral
Azure Stack | Visão GeralAzure Stack | Visão Geral
Azure Stack | Visão Geral
 
Fim do Suporte do Windows Server 2008 e SQL Server 2008
Fim do Suporte do Windows Server 2008 e SQL Server 2008Fim do Suporte do Windows Server 2008 e SQL Server 2008
Fim do Suporte do Windows Server 2008 e SQL Server 2008
 
Windows Admin Center
Windows Admin CenterWindows Admin Center
Windows Admin Center
 
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
TDC Transformation 2021 - Certificação AZ-900 Azure Fundamental: Conceitos, d...
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
Microsoft Azure Fundamentals | Everis - Julho-2021
Microsoft Azure Fundamentals | Everis - Julho-2021Microsoft Azure Fundamentals | Everis - Julho-2021
Microsoft Azure Fundamentals | Everis - Julho-2021
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
Azure Fundamentals
Azure FundamentalsAzure Fundamentals
Azure Fundamentals
 
SQL over SMB3
SQL over SMB3SQL over SMB3
SQL over SMB3
 
Windows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSWindows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMS
 
Aprimore seus servidores de arquivos com Azure File Sync
Aprimore seus servidores de arquivos com Azure File SyncAprimore seus servidores de arquivos com Azure File Sync
Aprimore seus servidores de arquivos com Azure File Sync
 
Flisol 2015
Flisol 2015 Flisol 2015
Flisol 2015
 
Gab2018 - Introdução ao Azure
Gab2018 - Introdução ao AzureGab2018 - Introdução ao Azure
Gab2018 - Introdução ao Azure
 
Azure Backup
Azure BackupAzure Backup
Azure Backup
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7
 
Azure Fundamentals (Intensivão Azure)
Azure Fundamentals (Intensivão Azure)Azure Fundamentals (Intensivão Azure)
Azure Fundamentals (Intensivão Azure)
 
Por que computação em nuvem?
Por que computação em nuvem?Por que computação em nuvem?
Por que computação em nuvem?
 

Destacado

Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Luciano Condé
 
Sharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureSharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureLuciano Condé
 
Fórum de Aplicações - Visão de nuvem da Microsoft
Fórum de Aplicações - Visão de nuvem da MicrosoftFórum de Aplicações - Visão de nuvem da Microsoft
Fórum de Aplicações - Visão de nuvem da MicrosoftLuciano Condé
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight Luciano Condé
 
Visual Studio Summit 2012 - Novidades do Windows Azure
Visual Studio Summit 2012 - Novidades do Windows AzureVisual Studio Summit 2012 - Novidades do Windows Azure
Visual Studio Summit 2012 - Novidades do Windows AzureLuciano Condé
 
Cloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows AzureCloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows AzureLuciano Condé
 
Windows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefoneWindows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefoneLuciano Condé
 
Demonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure DriveDemonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure DriveLuciano Condé
 
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows AzureAzure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows AzureLuciano Condé
 
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows AzureTDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows AzureLuciano Condé
 
Cloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows AzureCloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows AzureLuciano Condé
 
ALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows AzureALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows AzureLuciano Condé
 
TDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureTDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureLuciano Condé
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureLuciano Condé
 

Destacado (14)

Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7Visão Geral sobre a plataforma de aplicações do Windows Phone 7
Visão Geral sobre a plataforma de aplicações do Windows Phone 7
 
Sharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows AzureSharepoint360 - Hospedando Sharepoint no Windows Azure
Sharepoint360 - Hospedando Sharepoint no Windows Azure
 
Fórum de Aplicações - Visão de nuvem da Microsoft
Fórum de Aplicações - Visão de nuvem da MicrosoftFórum de Aplicações - Visão de nuvem da Microsoft
Fórum de Aplicações - Visão de nuvem da Microsoft
 
Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight  Construindo aplicações para o Windows Phone com Silverlight
Construindo aplicações para o Windows Phone com Silverlight
 
Visual Studio Summit 2012 - Novidades do Windows Azure
Visual Studio Summit 2012 - Novidades do Windows AzureVisual Studio Summit 2012 - Novidades do Windows Azure
Visual Studio Summit 2012 - Novidades do Windows Azure
 
Cloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows AzureCloud Day III - Visão Geral do Windows Azure
Cloud Day III - Visão Geral do Windows Azure
 
Windows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefoneWindows Azure - Verificação anti-fraude, alterando o número do telefone
Windows Azure - Verificação anti-fraude, alterando o número do telefone
 
Demonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure DriveDemonstração de como usar o Windows Azure Drive
Demonstração de como usar o Windows Azure Drive
 
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows AzureAzure Summit 2013 - Keynote - Visão Geral do Windows Azure
Azure Summit 2013 - Keynote - Visão Geral do Windows Azure
 
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows AzureTDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
TDC 2012 Florianópolis - Padrões (Patterns) de desenvolvimento com Windows Azure
 
Cloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows AzureCloud Day III - Programas para parceiros com Windows Azure
Cloud Day III - Programas para parceiros com Windows Azure
 
ALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows AzureALM Summit 2013 - Implantação contínua com Windows Azure
ALM Summit 2013 - Implantação contínua com Windows Azure
 
TDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureTDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows Azure
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL Azure
 

Similar a Entity Framework 4.0 ORM

Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Luciano Condé
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4CDS
 
Entity Framework 4 & WCF Data Services
Entity Framework 4 & WCF Data ServicesEntity Framework 4 & WCF Data Services
Entity Framework 4 & WCF Data ServicesMarcelo Paiva
 
DotNetDay novidades entityframework 4
DotNetDay novidades entityframework 4DotNetDay novidades entityframework 4
DotNetDay novidades entityframework 4Marcelo Paiva
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4CDS
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftLuciano Condé
 
[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4Felipe Pimentel
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
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
 
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...Rogério Moraes de Carvalho
 
Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.Joao Livio
 
Migrations com Entity Framework Core
Migrations com Entity Framework CoreMigrations com Entity Framework Core
Migrations com Entity Framework CoreCaio Lorensetti
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPElton Minetto
 

Similar a Entity Framework 4.0 ORM (20)

Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 
Introdução ao Entity Framework 4
Introdução ao Entity Framework 4Introdução ao Entity Framework 4
Introdução ao Entity Framework 4
 
Entity Framework 4 & WCF Data Services
Entity Framework 4 & WCF Data ServicesEntity Framework 4 & WCF Data Services
Entity Framework 4 & WCF Data Services
 
DotNetDay novidades entityframework 4
DotNetDay novidades entityframework 4DotNetDay novidades entityframework 4
DotNetDay novidades entityframework 4
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Aula1
Aula1Aula1
Aula1
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
 
[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4
 
ORM e EF
ORM e EFORM e EF
ORM e EF
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
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
 
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
 
`
``
`
 
Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.Exchange Online with SharePoint - Improve Your App.
Exchange Online with SharePoint - Improve Your App.
 
Migrations com Entity Framework Core
Migrations com Entity Framework CoreMigrations com Entity Framework Core
Migrations com Entity Framework Core
 
Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHP
 

Más de Luciano Condé

TDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows AzureTDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows AzureLuciano Condé
 
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows AzureTDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows AzureLuciano Condé
 
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOSSucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOSLuciano Condé
 
Fórum de Aplicações - Cenários de Windows Azure
Fórum de Aplicações - Cenários de Windows AzureFórum de Aplicações - Cenários de Windows Azure
Fórum de Aplicações - Cenários de Windows AzureLuciano Condé
 
S+S Day - Segurança na nuvem
S+S Day - Segurança na nuvemS+S Day - Segurança na nuvem
S+S Day - Segurança na nuvemLuciano Condé
 
Overview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesOverview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesLuciano Condé
 
Show do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em NuvemShow do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em NuvemLuciano Condé
 
Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4Luciano Condé
 
Innovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+ServicesInnovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+ServicesLuciano Condé
 
Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09Luciano Condé
 

Más de Luciano Condé (10)

TDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows AzureTDC 2012 Florianópolis - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Visão Geral do Windows Azure
 
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows AzureTDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
TDC 2012 Florianópolis - Keynote - Visão Geral do Windows Azure
 
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOSSucesu - Visão Geral do Windows Azure e a Era do CloudOS
Sucesu - Visão Geral do Windows Azure e a Era do CloudOS
 
Fórum de Aplicações - Cenários de Windows Azure
Fórum de Aplicações - Cenários de Windows AzureFórum de Aplicações - Cenários de Windows Azure
Fórum de Aplicações - Cenários de Windows Azure
 
S+S Day - Segurança na nuvem
S+S Day - Segurança na nuvemS+S Day - Segurança na nuvem
S+S Day - Segurança na nuvem
 
Overview do Windows Phone 7 Series
Overview do Windows Phone 7 SeriesOverview do Windows Phone 7 Series
Overview do Windows Phone 7 Series
 
Show do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em NuvemShow do Varejo Bematech - Entendendo Computação em Nuvem
Show do Varejo Bematech - Entendendo Computação em Nuvem
 
Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4Novidades sobre o Silverlight 4
Novidades sobre o Silverlight 4
 
Innovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+ServicesInnovation Days 2009 - Inovação e Software+Services
Innovation Days 2009 - Inovação e Software+Services
 
Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09Monitoring e Logging no Windows Azure - S+S Day 09
Monitoring e Logging no Windows Azure - S+S Day 09
 

Entity Framework 4.0 ORM

  • 1. Entity Framework 4.0 Luciano Condé Arquiteto de Soluções http://blogs.msdn.com/conde http://twitter.com/luconde
  • 2. Agenda Por que ORMs? O que é Entity Framework Modelos no Entity Framework Considerações
  • 3. <1>
  • 4. Acesso a dados Acessando dados em 1990ODBC, SQL embutido Acessando dados em 2000ADO, Stored Procedures Acessando dados em 2005ADO.NET, Datasets, DataReaders Acessando dados em 2010ORM
  • 5. ObjectRelationalMapping O que é? Uma abstração Técnica para mapear estruturas relacionais de bancos dados como objetos em linguagens OO Esconder detalhes de complexidade do acesso a tabelas Por que? Produtividade em desenvolvimento Independência de banco de dados
  • 6. ORM em Windows Diversos Nhibernate EntitySpaces Open Access DevForce XPO Nãohá um “vencedor” em definitivo
  • 7. Trajetória para um ORM by MS DatasetsTipados – Entregue  Objectspaces “v1” – Nunca entregue  Objectspaces “v2” – Nunca entregue  Microsoft Business Framework – nunca entregue  WinFS – Nunca entregue  LINQ TO SQL – Entregue (Novembro/2007)  Entity Framework v1 – Entregue (Agosto/2008) 
  • 9. <2>
  • 10. Evolução do .NET Framework SP1 3.5 3.0 .NET 1.0 .NET 1.1 .NET 2.0 .NET 4 2002 2003 2010 2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4
  • 11. Entity Framework Um ORM quesepara o modeloconceitual do físico Permite a programação OO sobre as entidades – herança EF “como” um DAL Feitoparaser multi-banco Suportaações CRUD (views, procs e tables) Vários providers disponíveis SQL Server, Oracle, Mysql, DB2… Suportatransação, concorrência, procs, views
  • 13. Entity Framework 1.0 - Recursos Geração de modelo a partir de um banco de dados (databasefirst) Operações CRUD estão simplificadas Suporte a LINQ (LinqToEntities) Possibilidade de trabalhar com diversos banco de dados Suporte para SP (retornar, modificar) Ferramenta de Designer embutida
  • 14. Entity Framework 1.0 - Dores O EF designer! Model First nãosuportado Baixosuportepara Stored Procedures SemPluralization/Singularization Foreign Keys escondidas Lazy Loading nãosuportado Falta de operadores LINQ Geração do SQL a desejar Semsuportepara POCO (Plain Old CLR Objects) Dificuldadeemmontagem de N-Tier
  • 15. Entity Framework 4.0 Self-tracking entities Melhoria da geração SQL Melhoria do suporte a LINQ ExecuteStoreQuery ExecuteStoreCommand Melhoria no suporte a SPROC Code-First development (Versãoem CTP) Suportepara Model-first Pluralizationautomática Foreign keys nosmodelos Suportepara POCO Lazy loading Geraçãode códigoporT4 IObjectSet Virtual SaveChanges ObjectStateManagercontrol
  • 16. </2>
  • 17. <3>
  • 19. Banco de dados é a verdade Onde eu uso? Você já tem um banco de dados definido O banco de dados requer um controle próximo Como eu uso? Importe o banco de dados para dentro do modelo EDMX Use os recursos do Entity Framework Banco de dados Modelo Código
  • 20. Demo
  • 21. O modelo é a verdade Onde eu uso? Definir um modelo de classes sem se preocupar com o banco de dados Gerar o script a partir do modelo Como eu uso? Gere o modelo EDMX Gere o script do banco de dados Banco de dados Modelo Código
  • 22. Demo
  • 23. O código é a verdade Onde eu uso? Definir a suas próprias classes Banco de dados é apenas um detalhe de implementação Como eu uso? Gere as classes Gere o Object de Context Banco de dados Código
  • 24. Demo
  • 25. </3>
  • 26. <4>
  • 27. Considerações - ObjectContext Vocêcontrola Pense no tempo de vida de ObjectContext Attached X Detached dos objetos Possotermúltiplos EDMXs – Organizaçãoporcenáriosoutransaçõessemconhecimentomútuo
  • 28. Considerações - Consultas Queries Linq to Entities Entity SQL Querybuilder Preferência para Linq to Entities Lazy loading X Early loading
  • 29. Considerações – Extensão Entidades Propriedades OnPropertyChange ObjectContext SavingChanges OnContextCreated Uso de DTOs para transportar os dados Considere o uso de T4 Procs e views Continuam sendo utilizadas
  • 30. Considerações - Concorrência Modelootimista Escolhas as colunasquedeseja “monitorar” – Concurrence Mode para “Fixed” Implemente o tratamento da Exceção “OptimisticConcurrencyException” Emcaso de conflito utilize o método Refresh paradeterminarquem tem a prioridade Você é quemcontrola a frequência de atualização
  • 31. Considerações - Transação Implícitas Explícitas
  • 32. Considerações – POCO, WCF A existência das propriedades ChangeObjectState Use self-trackingscomoaceleradorpara n-tier Desabilite o lazy loading Cuidado com as colisões de EntityKey Usando o WCF habilite sempre o log para saber os problemas de conversão de tipos Use DTOs para auxiliar na redução da transferência de classes entre as camadas Use a geração de código T4 para facilitar Estude Proxies
  • 33. </4>
  • 34. Links http://msdn.microsoft.com/en-us/magazine/ee236639.aspx - Boas práticas EF e arquitetura de acesso a dados http://blogs.msdn.com/adonet - Time do Entity Framework http://blogs.msdn.com/efdesign - Time do Design do Entity Framework http://blogs.msdn.com/adonet/archive/2008/10/07/migrating-from-linq-to-sql-to-entity-framework-eager-loading.aspx - Migrando de Linq To sqlpara Entity Framework http://msdn.microsoft.com/en-us/magazine/cc163286.aspx- Modelando um Entity Data Model http://msdn.microsoft.com/en-us/magazine/cc700340.aspx - Entity Framework sobre arquiteturas de n-layers http://msdn.microsoft.com/en-us/magazine/cc507640.aspx- Q & A de Entity Framework http://msdn.microsoft.com/en-us/library/bb399572.aspx 34
  • 35. © 2010 Microsoft Corporation. All rights reserved. Microsoft, MSDN, the MSDN logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.   The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notas del editor

  1. Before we get started, I thought it would be a good idea to review where we have come from:In the past we have delivered monolithic releases. You saw this with .NET versions 1.0 and 1.1 before. When .NET 2.0 shipped we decided to make a “layer cake” of improvements where we added on 3.0, 3.5, and finally 3.5 service pack 1. There were a number of reasons for doing this but chief among them was to make sure you didn’t have to completely retest the CLR every time we incremented it. We did this for about 5 years.You can only keep that system up for so long, however, and 4.0 represents some pretty significant changes and updates to the Framework and the CLR. Because of this we decided to make it stand on its own and have incremented the CLR version accordingly. As such, it will probably have to undergo the testing your security teams have in place and we want to set expectations accordingly. NOTE: This is to make sure folks know the bad news up front. We will use the rest of the session to deliver the good news. Here is where you can find the history of .NET Framework versions: http://en.wikipedia.org/wiki/.NET_Framework_version_list
  2. Dá enfase em Linq to Entities e Entity SQL