Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
O documento fornece um resumo das principais tecnologias de acesso a dados no .NET: ADO.NET, LINQ to SQL, Entity Framework e ADO.NET Data Services. Explica as arquiteturas, cenários de uso e recursos dessas tecnologias.
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
1.
2.
Uma comparação estratégicasobre as tecnologias de acesso a dados Luciano Condé Arquiteto de Soluções Microsoft Brasil http://blogs.msdn.com/conde http ://twitter.com/luconde Código da Sessão: DAT201
ADO.Net Dataset Suportabinding, caching, offline, change tracking e CRUD As entidades podem ser codificadas como datasets tipados Suporta múltiplos providers de dados Suporta ações CRUD (views, procs e tables) Suporta transação, concorrência, procs, views
9.
DataSet – CenáriosDAL CRUD com poucas operações Gera dataset tipado Service Business Components Data Access SQL ADO.Net Entities Mapping Data Contracts / Serializable Data Access Layer with DataSet
10.
DataSet - CenáriosASP.NET Use o ObjectDataSource Precisa de camada de serviço/proxy para transporte Data Access SQL Browser ASP.NET ObjectDataSource DataSet Service ASP.NET DataSet Binding
11.
DataSet - CenáriosWindows Forms e WPF applications Controles usam a fonte de dado diretamente Experiência offline Service Business Components Data Access SQL Client F/S DataSet DataSet Binding e Working Offline
12.
Cenário Dataset ADO.NET Regras e componentes de negócios Datasets DataAdapter TechedDemo01ADONETBLL TechedDemo01ADONETService TechedDemo01ADONETPresent TechedDemo01ADONETDAL MVC WCF DLL DLL Entidades
LINQ ( Language IN tegrated Q uery) Trás para a OO a capacidade de realizar consultas (queries) sobre coleção de dados
16.
LINQ - ArquiteturaObjetos <book> <title/> <author/> <price/> </book> XML Relacional LINQ To Objects LINQ To XML LINQ To Entities LINQ To SQL LINQ To DataSet .NET Language Integrated Query (LINQ) Linguagem de programação LINQ enabled data sources LINQ enabled ADO.NET
Linq To SqlSuporta CRUD, binding O código das entidades é baseado no esquema do banco de dado Limitado ao mapeamento entre o modelo de entidades e o banco de dados. Suporta transação, concorrência, procs, views Não tem modelo de providers
22.
LINQ to SQL- Cenários BLL As queries LINQ podem ser feitas diretamente com LINQ Context Service Business Components SQL LINQ DataContext Data Contracts / Serializable LINQ Entities BLL com LINQ to SQL
23.
LINQ to SQL– Cenários DAL As queries LINQ podem ser feitas diretamente com LINQ Context Service Business Components SQL Data Contracts / Serializable LINQ Entities Data Access LINQ DataContext DAL com LINQ to SQL
24.
Cenário Linq ToSQL LINQ To Sql Regras e componentes de negócios Linq Entities Linq DataContext TechedDemo02LinqToSQLBLL TechedDemo01ADONETService TechedDemo03ADONeDSWebPresent MVC WCF DLL Entidades
Entity Framework UmORM que separa o modelo conceitual do físico Permite a programação OO sobre as entidades – herança EF “como” um DAL Feito para ser multi-banco Suporta ações CRUD (views, procs e tables) Vários providers disponíveis SQL Server, Oracle, Mysql, DB2… Suporta transação, concorrência, procs, views Disponível a partir da .NET Framework 3.5 SP1
Entity Framework -Cenários BLL As queries LINQ podem ser feitas diretamente com ObjectContext DAL As queries LINQ podem ser feitas diretamente com ObjectContext Service Business Components Data Access SQL Mapping EF ObjectContext Data Contracts / Serializable Mapping Rules EF Entities DAL com Entity Framework
31.
Entity Framework -Cenários ASP.NET Pode usar o EntityDataSource ou ObjectDataSource EntityDataSource facilita o trabalho, por exemplo: Foreign key EF ObjectContext SQL Browser ASP.NET EntityDataSource Mapping Mapping Rules EF Entities ASP.NET Data Binding
32.
Cenário EntityFramework EF Regras e componentes de negócios EF Entities EF Datacontext TechedDemo03ADONetEFBLL TechedDemo03ADONetEFService TechedDemo03ADONetEFPresent TechedDemo03ADONetEFLibrary MVC WCF DLL DLL Entidades
Entity Framework v2Novos recursos POCO Model first Lazy loading Customizar a geração de código (T4) Melhorias em TDD Disponível no Beta 1 do .NET Framework 4
35.
Suporte ORM – Linq To Sql X EF Linq To Sql X EF Funcionalidades Linq To Sql EF POCO/PI Sim, se converter para List<T> V1 = Não V2 = Sim Lazy Loading Sim, se não converter para List<T> V1= Call Load() V2 = DeferredLoadingEnabled Earger Loading Sim (no nível do contexto) Sim (no nível da query) Concorrência Otimista Otimista Mapeamento da Tabela via mapping Não Sim Mapeamento de Foreing Key Sim, via EntitySet<T> e EntityRef<T> V1 = Independent Associations V2 = Independent ou FK Associations
ADO.NET Data Services- Cenário ADO.NET Data Service SQL Server LINQ DataContext LINQ Entities REST ADO.NET Data Service SQL Server (OR other) EF ObjectContext EF Entities REST Browser Browser AJAX Silverlight Windows Forms / WPF Client
40.
Cenário ADO.Net DataServices ADO.NET Data Services TechedDemo03ADONeDSDAL TechedDemo01ADONETPresent MVC Web Applicati-on LINQ to SQL ou EF Entidades
ADO.Net Data ServicesV1.5 Novos recursos Rowcount Feed customization BLOBs Binding direto com controles Paginação via servidor CTP1 – já disponível hoje
43.
Resumo Use ADO.NETem aplicações legadas – Investimento continua Use Linq To SQL em cenário que não necessita de mapeamento intenso com o banco de dados Prefira EF em maioria dos cenários (médios e complexos)
44.
Resumo Use ADO.NETData Services Fornecer dados via Web sem restrição de acesso Fornecer dados via interfaces REST Tenha atenção ao modelo de segurança (Web) e geração de proxy
45.
46.
Recursos www.microsoft.com/teched Tech·Talks Tech·Ed Bloggers Live Simulcasts Virtual Labs http://www.technetbrasil.com.br Avaliação de produtos finais e betas, conteúdo técnico em português e MUITO MAIS! http://www.msdnbrasil.com.br Developer’s Kit, conteúdo técnico em português, e MUITO MAIS!
47.
Sessões Relacionadas DAT401 – Dicas e truques do LINQ, Entity Framework, Linq To Sql e Expressões Lambda Data: 25/08/2009 – 15:00 – 16:15 – Sala 509 DAT202 – Novidades do Entity Framework 4.0 Data: 27/08/2009 – 10:30 – 11:45 – Sala 509 DAT301 – Usando o Entity Framework na construção de aplicações Data: 26/08/2009 – 10:30 – 11:45 – Sala 509 DAT301R – Usando o Entity Framework na construção de aplicações Data: 27/08/2009 – 16:45 – 18:00 – Sala 510
48.
Links e RecursosBlogs 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 sql para Entity Framework Sites Microsoft http:// msdn.microsoft.com/en-us/data/default.aspx - MSDN EUA http://msdn.microsoft.com/pt-br/netframework - MSDN Brasil http:// msdn.microsoft.com/en-us/library/bb399572.aspx - Entity Framework Overview
49.
Links e RecursosArquitetura http://channel9.msdn.com/tags/ArqPod / - Podcasts sobre Arquitetura http://channel9.msdn.com/Brasil - Vídeos de Arquitetura da MS Brasil http://apparchguide.codeplex.com - Arquitetura de Referência Condé http://blogs.msdn.com/conde - Meu Blog http://twitter.com/luconde - Twitter [email_address]