ProgramaçãoemCamadas com EF4Luciano CondéArquiteto de SoluçõesMicrosofthttp://blogs.msdn.com/condehttp://twitter.com/luconde04/02/2010
Objetivos do WebcastDemonstrar a sugestão de umaarquitetura de aplicação com EFDemonstrar o uso do EF naconstrução de aplicaçõesDemonstraralgunspontoscríticosRelacionamentos entre entidadesConcorrênciaTransaçãoTransferência de objetos entre camadas
<1>
Entity FrameworkUm ORM quesepara o modeloconceitual do físicoPermite a programação OO sobre as entidades – herançaEF “como” um DALFeitoparaser multi-bancoSuportaações CRUD (views, procs e tables)Vários providers disponíveisSQL Server, Oracle, Mysql, DB2…Suportatransação, concorrência, procs, views
Arquitetura
</1>
<2>
Primeira demo
Uma aplicação multi-camada para gerenciar um mecanismo de pedidos
Ferramentas.NET Framework 4.0ADO.NET Entity FrameworkWCFASP.NET MVC
MVCCamada de ApresentaçãoCamada de ServiçoInterfacesServiçoWCF + DLLRegrasEntidadesDLLEDMx 1 EDMx n DAL
Segunda demo
Uma aplicação para controle de músicas
Ferramentas.NET Framework 4.0ADO.NET Entity FrameworkWCFASP.NET MVCPOCOSelf-trackings
MVCCamada de ApresentaçãoCamada de ServiçoInterfacesServiçoWCF + DLLRegrasEntidadesDLLEDMx 1 EDMx n DAL
</2>
<3>
Considerações - ObjectContextVocêcontrolaPense no tempo de vida de ObjectContextAttached X Detached dos objetosPossotermúltiplos EDMXs – Organizaçãoporcenáriosoutransaçõessemconhecimentomútuo
Considerações - ConsultasQueriesLinq to EntitiesEntity SQLQuerybuilderPreferência para Linq to EntitiesLazy loading X Early loading
Considerações – ExtensãoEntidadesPropriedades OnPropertyChangeObjectContextSavingChangesOnContextCreatedUso de DTOs para transportar os dadosConsidere o uso de T4Procs e viewsContinuam sendo utilizadas
Considerações - ConcorrênciaModelootimistaEscolhas 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 prioridadeVocê é quemcontrola a frequência de atualização
Considerações - TransaçãoImplícitasExplícitas
Considerações – POCO, WCFA existência das propriedades ChangeObjectStateUse self-trackingscomoaceleradorpara n-tierDesabilite o lazy loadingCuidado com as colisões de EntityKeyUsando o WCF habilite sempre o log para saber os problemas de conversão de tiposUse DTOs para auxiliar na redução da transferência de classes entre as camadasUse a geração de código T4 para facilitarEstude Proxies
</3>
Linkshttp://msdn.microsoft.com/en-us/magazine/ee236639.aspx - Boas práticas EF e arquitetura de acesso a dadoshttp://blogs.msdn.com/adonet  - Time do Entity Frameworkhttp://blogs.msdn.com/efdesign - Time do Design do Entity Frameworkhttp://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 Frameworkhttp://msdn.microsoft.com/en-us/magazine/cc163286.aspx- Modelando um Entity Data Modelhttp://msdn.microsoft.com/en-us/magazine/cc700340.aspx - Entity Framework sobre arquiteturas de n-layershttp://msdn.microsoft.com/en-us/magazine/cc507640.aspx- Q & A de Entity Framework http://msdn.microsoft.com/en-us/library/bb399572.aspx25
© 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.

Programação em Camadas com Entity Framework 4

  • 1.
    ProgramaçãoemCamadas com EF4LucianoCondéArquiteto de SoluçõesMicrosofthttp://blogs.msdn.com/condehttp://twitter.com/luconde04/02/2010
  • 2.
    Objetivos do WebcastDemonstrara sugestão de umaarquitetura de aplicação com EFDemonstrar o uso do EF naconstrução de aplicaçõesDemonstraralgunspontoscríticosRelacionamentos entre entidadesConcorrênciaTransaçãoTransferência de objetos entre camadas
  • 3.
  • 4.
    Entity FrameworkUm ORMquesepara o modeloconceitual do físicoPermite a programação OO sobre as entidades – herançaEF “como” um DALFeitoparaser multi-bancoSuportaações CRUD (views, procs e tables)Vários providers disponíveisSQL Server, Oracle, Mysql, DB2…Suportatransação, concorrência, procs, views
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    Uma aplicação multi-camadapara gerenciar um mecanismo de pedidos
  • 10.
    Ferramentas.NET Framework 4.0ADO.NETEntity FrameworkWCFASP.NET MVC
  • 11.
    MVCCamada de ApresentaçãoCamadade ServiçoInterfacesServiçoWCF + DLLRegrasEntidadesDLLEDMx 1 EDMx n DAL
  • 12.
  • 13.
    Uma aplicação paracontrole de músicas
  • 14.
    Ferramentas.NET Framework 4.0ADO.NETEntity FrameworkWCFASP.NET MVCPOCOSelf-trackings
  • 15.
    MVCCamada de ApresentaçãoCamadade ServiçoInterfacesServiçoWCF + DLLRegrasEntidadesDLLEDMx 1 EDMx n DAL
  • 16.
  • 17.
  • 18.
    Considerações - ObjectContextVocêcontrolaPenseno tempo de vida de ObjectContextAttached X Detached dos objetosPossotermúltiplos EDMXs – Organizaçãoporcenáriosoutransaçõessemconhecimentomútuo
  • 19.
    Considerações - ConsultasQueriesLinqto EntitiesEntity SQLQuerybuilderPreferência para Linq to EntitiesLazy loading X Early loading
  • 20.
    Considerações – ExtensãoEntidadesPropriedadesOnPropertyChangeObjectContextSavingChangesOnContextCreatedUso de DTOs para transportar os dadosConsidere o uso de T4Procs e viewsContinuam sendo utilizadas
  • 21.
    Considerações - ConcorrênciaModelootimistaEscolhasas colunasquedeseja “monitorar” – Concurrence Mode para “Fixed”Implemente o tratamento da Exceção “OptimisticConcurrencyException”Emcaso de conflito utilize o método Refresh paradeterminarquem tem a prioridadeVocê é quemcontrola a frequência de atualização
  • 22.
  • 23.
    Considerações – POCO,WCFA existência das propriedades ChangeObjectStateUse self-trackingscomoaceleradorpara n-tierDesabilite o lazy loadingCuidado com as colisões de EntityKeyUsando o WCF habilite sempre o log para saber os problemas de conversão de tiposUse DTOs para auxiliar na redução da transferência de classes entre as camadasUse a geração de código T4 para facilitarEstude Proxies
  • 24.
  • 25.
    Linkshttp://msdn.microsoft.com/en-us/magazine/ee236639.aspx - Boaspráticas EF e arquitetura de acesso a dadoshttp://blogs.msdn.com/adonet - Time do Entity Frameworkhttp://blogs.msdn.com/efdesign - Time do Design do Entity Frameworkhttp://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 Frameworkhttp://msdn.microsoft.com/en-us/magazine/cc163286.aspx- Modelando um Entity Data Modelhttp://msdn.microsoft.com/en-us/magazine/cc700340.aspx - Entity Framework sobre arquiteturas de n-layershttp://msdn.microsoft.com/en-us/magazine/cc507640.aspx- Q & A de Entity Framework http://msdn.microsoft.com/en-us/library/bb399572.aspx25
  • 26.
    © 2010 MicrosoftCorporation. 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 do Editor

  • #6 Dá enfase em Linq to Entities e Entity SQL