SlideShare uma empresa Scribd logo
1 de 10
Rodolfo Fadino
@rodolfofadino
Sobre
 Especialista em desenvolvimento web, graduado no
  curso Superior de Tecnologia em Processamento de
  Dados pela Faculdade de Tecnologia de São Paulo –
  Fatec-SP.
 Trabalha no portal Minha Vida, o maior portal de
  Saúde e Bem-estar do Brasil, onde participa de projetos
  visando sempre desenhar e criar soluções de alta
  performance e alta escalabilidade.
ADO Entity Framework
 ORM (Object Relational Mapping)
 Principal ferramenta de persistência de dados na
  plataforma .NET.
 Integrante do ADO .NET
 Open Source (http://entityframework.codeplex.com/)

Vantagens
 Setup rápido
 Sem Gerenciamento manual
    Chaves, relacionamentos
    Lazy Load
    Validação
 Inteligente => update somente nos valores alterados
 Suporte a vários RDMS (relational database
  management system)
 Seguro ( ! SQL Injection)
“Real” Web Applications?
 N Camadas
 Sai do CRUD básico
 Diversos projetos
 Complexidade em Logica/Views
 Performance
 Concorrência
 Injeção de Dependencia (EF)
Demos
Considerações “Real” Web
 Use o padrão Repository
 Converta todas collections para Ienumerable
    Evita execução for a do escopo do contexto
       var customer = ctx.Customers;
       var customer = ctx.Customers.ToList();
 Crie um novo context por requisição – Não cacheie
Considerações MVC
 Para Views não use entidades do EF, mapeie em
  ViewModels
   http://automapper.org/
 DbContext não thread safe.
   Instancie um novo por requisição no contrutor, ou no DI
   Não cacheie ou use em uma instancia estática
 Dispose Context
 Não programe consultas com EF no controller
Links
 http://tecnologia.minhavida.com.br/
 http://rodolfofadino.com.br/
 http://entityframework.codeplex.com/
 http://completedevelopment.blogspot.com/2012/06/d
 ependency-injection-with-entity.html

Mais conteúdo relacionado

Mais procurados

JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Rafael Ponte
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Adriano Teixeira de Souza
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações Distribuídas
Markus Christen
 

Mais procurados (20)

Desenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EE
 
Minicurso jsf2.0
Minicurso jsf2.0Minicurso jsf2.0
Minicurso jsf2.0
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
 
O programador php
O programador phpO programador php
O programador php
 
Introdução ao JavaServer Faces
Introdução ao JavaServer FacesIntrodução ao JavaServer Faces
Introdução ao JavaServer Faces
 
Serra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EESerra StarTec 2013 - Java EE
Serra StarTec 2013 - Java EE
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
Encontro no .NET Architects - Application Architecture Guide (AppArchGuide)
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 
4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview4º FastShow - WPF Windows Presentation Foundation Overview
4º FastShow - WPF Windows Presentation Foundation Overview
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
JEE6 - Introdução
JEE6 - IntroduçãoJEE6 - Introdução
JEE6 - Introdução
 
API REST com Django Rest Famework
API REST com Django Rest Famework API REST com Django Rest Famework
API REST com Django Rest Famework
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações Distribuídas
 
DotNet vs. Java
DotNet vs. JavaDotNet vs. Java
DotNet vs. Java
 
Robot Framework projetos multifuncionalidades - all-in-one.
Robot Framework projetos multifuncionalidades - all-in-one.Robot Framework projetos multifuncionalidades - all-in-one.
Robot Framework projetos multifuncionalidades - all-in-one.
 
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
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 

Destaque

Explorando a API do Facebook com .NET
Explorando a API do Facebook com .NETExplorando a API do Facebook com .NET
Explorando a API do Facebook com .NET
Rodolfo Fadino Junior
 

Destaque (13)

Entregabilidade e Emails
Entregabilidade e EmailsEntregabilidade e Emails
Entregabilidade e Emails
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
EmberJS + SPA
EmberJS + SPAEmberJS + SPA
EmberJS + SPA
 
Explorando a API do Facebook com .NET
Explorando a API do Facebook com .NETExplorando a API do Facebook com .NET
Explorando a API do Facebook com .NET
 
Desenvolvimento Web com ASP.NET MVC
Desenvolvimento Web com ASP.NET MVCDesenvolvimento Web com ASP.NET MVC
Desenvolvimento Web com ASP.NET MVC
 
Windows Azure: PaaS e IaaS
Windows Azure: PaaS e IaaSWindows Azure: PaaS e IaaS
Windows Azure: PaaS e IaaS
 
Entregando arquivos estáticos com proxy reverso NGINX
Entregando arquivos estáticos com proxy reverso NGINXEntregando arquivos estáticos com proxy reverso NGINX
Entregando arquivos estáticos com proxy reverso NGINX
 
SignalR Visual Studio Summit
SignalR Visual Studio SummitSignalR Visual Studio Summit
SignalR Visual Studio Summit
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
Smtp => Fatores e entregabilidade
Smtp => Fatores e entregabilidadeSmtp => Fatores e entregabilidade
Smtp => Fatores e entregabilidade
 
ASP.NET Core e MVC - Fatec-SP 2016
ASP.NET Core e MVC - Fatec-SP 2016ASP.NET Core e MVC - Fatec-SP 2016
ASP.NET Core e MVC - Fatec-SP 2016
 
Rendering engine
Rendering engineRendering engine
Rendering engine
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 

Semelhante a Entity Framework

Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC Marília
Elvis Fusco
 

Semelhante a Entity Framework (20)

Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
 
Geração de Código com o MyGeneration
Geração de Código com o MyGenerationGeração de Código com o MyGeneration
Geração de Código com o MyGeneration
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
Framework Entities
Framework EntitiesFramework Entities
Framework Entities
 
Introdução ao Entity Framework 4
Introdução ao Entity Framework 4Introdução ao Entity Framework 4
Introdução ao Entity Framework 4
 
IBM WebSphere Portal
IBM WebSphere PortalIBM WebSphere Portal
IBM WebSphere Portal
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
TDC 2011 - SharePoint 2010 para Desenvolvedores
TDC 2011 - SharePoint 2010 para DesenvolvedoresTDC 2011 - SharePoint 2010 para Desenvolvedores
TDC 2011 - SharePoint 2010 para Desenvolvedores
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
Apresentação ISFramework
Apresentação ISFrameworkApresentação ISFramework
Apresentação ISFramework
 
[MOT] Mural de Vagas - ago.set-19
[MOT] Mural de Vagas - ago.set-19[MOT] Mural de Vagas - ago.set-19
[MOT] Mural de Vagas - ago.set-19
 
Arquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócioArquitetura web para sistemas de negócio
Arquitetura web para sistemas de negócio
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 
SoapUI & Jmeter Basics Web service testing
SoapUI & Jmeter Basics Web service testingSoapUI & Jmeter Basics Web service testing
SoapUI & Jmeter Basics Web service testing
 
Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC Marília
 

Mais de Rodolfo Fadino Junior

ASP.NET MVC 4 Codificando.NET 10 anos
ASP.NET MVC 4 Codificando.NET 10 anosASP.NET MVC 4 Codificando.NET 10 anos
ASP.NET MVC 4 Codificando.NET 10 anos
Rodolfo Fadino Junior
 
StructureMap, Injetor de Dependência
StructureMap, Injetor de DependênciaStructureMap, Injetor de Dependência
StructureMap, Injetor de Dependência
Rodolfo Fadino Junior
 

Mais de Rodolfo Fadino Junior (18)

Como gerenciar e manter minha equipe engajada [Avance 21]
Como gerenciar e manter minha equipe engajada [Avance 21]Como gerenciar e manter minha equipe engajada [Avance 21]
Como gerenciar e manter minha equipe engajada [Avance 21]
 
Performance tdc sp 2020 final
Performance tdc sp 2020 finalPerformance tdc sp 2020 final
Performance tdc sp 2020 final
 
TDC 2019 Clean Architeture com .net core
TDC 2019  Clean Architeture com .net coreTDC 2019  Clean Architeture com .net core
TDC 2019 Clean Architeture com .net core
 
Mvp conf middlewares com asp.net core
Mvp conf   middlewares com asp.net coreMvp conf   middlewares com asp.net core
Mvp conf middlewares com asp.net core
 
Middlewares com asp.net core
Middlewares com asp.net coreMiddlewares com asp.net core
Middlewares com asp.net core
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
DevXperience WPO com .NET CORE
DevXperience WPO com .NET COREDevXperience WPO com .NET CORE
DevXperience WPO com .NET CORE
 
Design e boas práticas de api's com CSharp
Design e boas práticas de api's com CSharpDesign e boas práticas de api's com CSharp
Design e boas práticas de api's com CSharp
 
Design e boas praticas de apis com CSharp
Design e boas praticas de apis com CSharpDesign e boas praticas de apis com CSharp
Design e boas praticas de apis com CSharp
 
Web Performance Optimization com ASP.NET Core
Web Performance Optimization com ASP.NET CoreWeb Performance Optimization com ASP.NET Core
Web Performance Optimization com ASP.NET Core
 
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuáriosFatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
 
Minha Vida Fiap - Desenvolvimento
Minha Vida Fiap - DesenvolvimentoMinha Vida Fiap - Desenvolvimento
Minha Vida Fiap - Desenvolvimento
 
TDC, Quem derrubou o meu site?
TDC, Quem derrubou o meu site?TDC, Quem derrubou o meu site?
TDC, Quem derrubou o meu site?
 
Performance Web
Performance WebPerformance Web
Performance Web
 
ASP.NET MVC 4 Codificando.NET 10 anos
ASP.NET MVC 4 Codificando.NET 10 anosASP.NET MVC 4 Codificando.NET 10 anos
ASP.NET MVC 4 Codificando.NET 10 anos
 
StructureMap, Injetor de Dependência
StructureMap, Injetor de DependênciaStructureMap, Injetor de Dependência
StructureMap, Injetor de Dependência
 
Web Real-time com ASP.NET SignalR
Web Real-time com ASP.NET SignalRWeb Real-time com ASP.NET SignalR
Web Real-time com ASP.NET SignalR
 
Boas práticas com
Boas práticas comBoas práticas com
Boas práticas com
 

Entity Framework

  • 2. Sobre  Especialista em desenvolvimento web, graduado no curso Superior de Tecnologia em Processamento de Dados pela Faculdade de Tecnologia de São Paulo – Fatec-SP.  Trabalha no portal Minha Vida, o maior portal de Saúde e Bem-estar do Brasil, onde participa de projetos visando sempre desenhar e criar soluções de alta performance e alta escalabilidade.
  • 3. ADO Entity Framework  ORM (Object Relational Mapping)  Principal ferramenta de persistência de dados na plataforma .NET.  Integrante do ADO .NET  Open Source (http://entityframework.codeplex.com/) 
  • 4. Vantagens  Setup rápido  Sem Gerenciamento manual  Chaves, relacionamentos  Lazy Load  Validação  Inteligente => update somente nos valores alterados  Suporte a vários RDMS (relational database management system)  Seguro ( ! SQL Injection)
  • 5. “Real” Web Applications?  N Camadas  Sai do CRUD básico  Diversos projetos  Complexidade em Logica/Views  Performance  Concorrência  Injeção de Dependencia (EF)
  • 7. Considerações “Real” Web  Use o padrão Repository  Converta todas collections para Ienumerable  Evita execução for a do escopo do contexto  var customer = ctx.Customers;  var customer = ctx.Customers.ToList();  Crie um novo context por requisição – Não cacheie
  • 8. Considerações MVC  Para Views não use entidades do EF, mapeie em ViewModels  http://automapper.org/  DbContext não thread safe.  Instancie um novo por requisição no contrutor, ou no DI  Não cacheie ou use em uma instancia estática  Dispose Context  Não programe consultas com EF no controller
  • 9.
  • 10. Links  http://tecnologia.minhavida.com.br/  http://rodolfofadino.com.br/  http://entityframework.codeplex.com/  http://completedevelopment.blogspot.com/2012/06/d ependency-injection-with-entity.html