Programação em Camadas com Entity Framework 4

13.972 visualizações

Publicada em

O uso do Entity Framework pode representar um ganho de produtividade e melhor controle sobre o domínio das classes. Nesta sessão apresentaremos o uso aplicado do Entity Framework 4 no desenho uma aplicaçào Web multi-camadas.Recursos utilizados: POCO, Self-tracking, WCF, MVC, T4

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
13.972
No SlideShare
0
A partir de incorporações
0
Número de incorporações
745
Ações
Compartilhamentos
0
Downloads
25
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Dá enfase em Linq to Entities e Entity SQL
  • Programação em Camadas com Entity Framework 4

    1. 1. ProgramaçãoemCamadas com EF4<br />Luciano Condé<br />Arquiteto de Soluções<br />Microsoft<br />http://blogs.msdn.com/conde<br />http://twitter.com/luconde<br />04/02/2010<br />
    2. 2. Objetivos do Webcast<br />Demonstrar a sugestão de umaarquitetura de aplicação com EF<br />Demonstrar o uso do EF naconstrução de aplicações<br />Demonstraralgunspontoscríticos<br />Relacionamentos entre entidades<br />Concorrência<br />Transação<br />Transferência de objetos entre camadas<br />
    3. 3. &lt;1&gt;<br />
    4. 4. Entity Framework<br />Um ORM quesepara o modeloconceitual do físico<br />Permite a programação OO sobre as entidades – herança<br />EF “como” um DAL<br />Feitoparaser multi-banco<br />Suportaações CRUD (views, procs e tables)<br />Vários providers disponíveis<br />SQL Server, Oracle, Mysql, DB2…<br />Suportatransação, concorrência, procs, views <br />
    5. 5. Arquitetura<br />
    6. 6. &lt;/1&gt;<br />
    7. 7. &lt;2&gt;<br />
    8. 8. Primeira demo<br />
    9. 9. Uma aplicação multi-camada para gerenciar um mecanismo de pedidos<br />
    10. 10. Ferramentas<br />.NET Framework 4.0<br />ADO.NET Entity Framework<br />WCF<br />ASP.NET MVC<br />
    11. 11. MVC<br />Camada de Apresentação<br />Camada de Serviço<br />Interfaces<br />Serviço<br />WCF + DLL<br />Regras<br />Entidades<br />DLL<br />EDMx 1 <br />EDMx n <br />DAL<br />
    12. 12. Segunda demo<br />
    13. 13. Uma aplicação para controle de músicas<br />
    14. 14. Ferramentas<br />.NET Framework 4.0<br />ADO.NET Entity Framework<br />WCF<br />ASP.NET MVC<br />POCO<br />Self-trackings<br />
    15. 15. MVC<br />Camada de Apresentação<br />Camada de Serviço<br />Interfaces<br />Serviço<br />WCF + DLL<br />Regras<br />Entidades<br />DLL<br />EDMx 1 <br />EDMx n <br />DAL<br />
    16. 16. &lt;/2&gt;<br />
    17. 17. &lt;3&gt;<br />
    18. 18. Considerações - ObjectContext<br />Vocêcontrola<br />Pense no tempo de vida de ObjectContext<br />Attached X Detached dos objetos<br />Possotermúltiplos EDMXs – Organizaçãoporcenáriosoutransaçõessemconhecimentomútuo<br />
    19. 19. Considerações - Consultas<br />Queries<br />Linq to Entities<br />Entity SQL<br />Querybuilder<br />Preferência para Linq to Entities<br />Lazy loading X Early loading <br />
    20. 20. Considerações – Extensão<br />Entidades<br />Propriedades OnPropertyChange<br />ObjectContext<br />SavingChanges<br />OnContextCreated<br />Uso de DTOs para transportar os dados<br />Considere o uso de T4<br />Procs e views<br />Continuam sendo utilizadas<br />
    21. 21. Considerações - Concorrência<br />Modelootimista<br />Escolhas as colunasquedeseja “monitorar” – Concurrence Mode para “Fixed”<br />Implemente o tratamento da Exceção “OptimisticConcurrencyException”<br />Emcaso de conflito utilize o método Refresh paradeterminarquem tem a prioridade<br />Você é quemcontrola a frequência de atualização<br />
    22. 22. Considerações - Transação<br />Implícitas<br />Explícitas<br />
    23. 23. Considerações – POCO, WCF<br />A existência das propriedades ChangeObjectState<br />Use self-trackingscomoaceleradorpara n-tier<br />Desabilite o lazy loading<br />Cuidado com as colisões de EntityKey<br />Usando o WCF habilite sempre o log para saber os problemas de conversão de tipos<br />Use DTOs para auxiliar na redução da transferência de classes entre as camadas<br />Use a geração de código T4 para facilitar<br />Estude Proxies<br />
    24. 24. &lt;/3&gt;<br />
    25. 25. Links<br />http://msdn.microsoft.com/en-us/magazine/ee236639.aspx - Boas práticas EF e arquitetura de acesso a dados<br />http://blogs.msdn.com/adonet - Time do Entity Framework<br />http://blogs.msdn.com/efdesign - Time do Design do Entity Framework<br />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<br />http://msdn.microsoft.com/en-us/magazine/cc163286.aspx- Modelando um Entity Data Model<br />http://msdn.microsoft.com/en-us/magazine/cc700340.aspx - Entity Framework sobre arquiteturas de n-layers<br />http://msdn.microsoft.com/en-us/magazine/cc507640.aspx- Q & A de Entity Framework <br />http://msdn.microsoft.com/en-us/library/bb399572.aspx<br />25<br />
    26. 26. © 2010 Microsoft Corporation. All rights reserved. Microsoft, MSDN, the MSDN logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.  <br />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.<br />

    ×