O documento apresenta uma palestra sobre programação em camadas utilizando o Entity Framework 4. A palestra demonstra uma arquitetura de aplicação com EF, mostra como utilizar o EF para construir aplicações e aborda pontos críticos como relacionamentos entre entidades, concorrência e transações. A palestra inclui demonstrações de aplicações de exemplo.
Construindo aplicações para o Windows Phone com Silverlight
Programação em Camadas com Entity Framework 4
1. ProgramaçãoemCamadas com EF4 Luciano Condé Arquiteto de Soluções Microsoft http://blogs.msdn.com/conde http://twitter.com/luconde 04/02/2010
2. Objetivos do Webcast Demonstrar a sugestão de umaarquitetura de aplicação com EF Demonstrar o uso do EF naconstrução de aplicações Demonstraralgunspontoscríticos Relacionamentos entre entidades Concorrência Transação Transferência de objetos entre camadas
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
18. 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
19. Considerações - Consultas Queries Linq to Entities Entity SQL Querybuilder Preferência para Linq to Entities Lazy loading X Early loading
20. 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
21. 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
23. 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
25. 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 25