Entity Framework 4“Restaurando a confiança”Novidades do WCF Data Services 1.5<br />Marcelo Paiva<br />Softprime Soluçõesma...
Agenda<br />Tecnologias de Acesso a dados<br />Entity Framework 4<br />Novidades do EF 4<br />Demonstração<br />ADO WCF Da...
As tecnologias “Hoje”<br />ADO.Net<br />Linq to SQL<br />WCF Data Services<br />Entity Framework<br />
História<br />ADO.NET 2.0 – Datasets e cia.<br />LINQ to SQL<br />Projeto do time de C#<br />EntityFramework<br />Time de ...
Parte I<br />Entity Framework 4“Restaurando a confiança”<br />Recursos<br />    Data Developer Center<br />http://msdn.mic...
História<br />Feedbacks sobre o EF 1.0:<br />Famoso “vote of no confidence”<br />Foco nos aspectos de dados das entidades ...
História<br />Feedbacks sobre o EF 1.0:<br />Excesso de código para lidar com lazyloading<br />Modelo único trás problemas...
Melhorias no EF4<br />Suporte a mais operadores LINQ<br />Pluralize<br />Podemos encontrar: Movies-Movy<br />Geração de có...
Melhorias no EF4<br />Melhorias no código SQL gerado<br />De se esperar uma evolução contínua<br />Suporte a tipos complex...
Melhorias no EF4<br />Geração customizada de objetos (T4)<br />POCOs(T4)<br />Lazyloading<br />Restrições do ObjectStateMa...
Flight Mode <br />Visual Studio 2008 vs. Visual Studio 2010<br />Pluralization<br />Gerar banco de dados<br />Model-First<...
Parte II<br />WCF Data ServicesNovidades da versão 1.5<br />Recursos<br />    Data Developer Center<br />http://msdn.micro...
Qual o objetivo do WCF Data Services?<br />Aplicações normalmente são excelentes geradoras de dados.<br />Mas nem tanto pa...
Qual o objetivo do WCF Data Services?<br />O WCF Data Services se encaixa perfeitamente nesse cenário<br />Foca em fornece...
Novidades do WCF Data Services v1.5<br />Contagem de registros<br />RowCount<br />Suporte a projeções<br />Server Driven P...
Contagem de registros (Row count)<br />/Products<br />Sempaginação<br />Perda de dados potencial<br />n # of products<br /...
Contagem de registros (continuação)<br />/Products/$count?$skip=10&$take=10<br />Sem dados<br />Count<br />/Products?$skip...
Suporte a projeções<br />
Flight Mode II<br />Contagem de registros<br />RowCount<br />Suporte a projeções<br />Server Driven Paging<br />
Q & A ?!<br />Recursos<br />    http://dataservicesbrasil.ning.com<br />               http://www.devgoias.net<br />     m...
Obrigado!<br />Cadastre aqui e concorra uma licença do EF Profiler<br />Link’s uteis<br />http://dataservicesbrasil.ning.c...
Agradecimentos<br />
www.devgoias.net<br />www.wininfo.com.br<br />
Upcoming SlideShare
Loading in...5
×

Entity Framework 4 & WCF Data Services

2,722

Published on

Antes da primeira versão do Entity Framework, um número de pessoas manifestaram objeções em um "voto de não confiança". Com o lançamento do VS 2010, o Entity Framework 4 tem visto avanços significativos que abordam muitas dessas preocupações. Essa apresentação mostrará diversas novidades, como Pluralization, Model-First,Complex Types, POCO, Lazy Loading e Foreign Keys. O ADO.NET Data Services 1.5 foi liberado inicialmente como update do .NET Framework 3.5 SP1. Apresentaremos os novos recursos, que incluem: Row Count (server e client) e Server-Side Paging.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,722
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Atualmente temos diversas tecnologias e isso pode gerar confusões, mas hoje vamos entender como funcionam melhor duas dessas tecnologias que estão recebendo grandes melhorias.ADO.Net continua com os recursos tradicionais, sem poucos avanços.Linq to SQL – continua mas sem receber muita atenção.*entendendo melhor....[PROXIMO]
  • Pela história mais recente podemosver a sequencia do surgimento dessas tecnologias:1º ADO.Net 2.0 (de 2005 pra cá)2º Linq to SQL (em decorrência do surgimento do Linq o time precisava lançar alguma coisa que fizesse acesso a dados)3º Entity Framework – surgindo com o SP1 do .net Framework 3.5 O mesmo aconteceu com o ADO.Net Data Services, mas que é focado no conceito de serviço de dadosEntão o time de Plataforma de dados anunciou a união dos time L2S e EF, no entanto gerou a dúvida de como ficaria, então o time mandou a mensagem: “estaremos dando suporte ao L2S enquanto vamos focar maior atenção do EF”
  • Então vamos para a primeira parte que focaremos o Entity Framework 4.
  • Vamos contextualizar o que tivemos no lançamento do EF 1.0 para entender os lançamentos da versão 4.01 – Com o lançamento da primeria versão, em razão das prioridades adotadas pelo time de produto, alguns MVP’s e influenciadores da comunidade que já trabalhavam com ferramentas de ORM, assinaram um ‘voto de não confiança’ no EF.2 – Porque desse ‘voto’??? Foram elencados algumas funcionalidades que a comunidade considera de grande importância, dos quais vamos destacar alguns aqui.3 – Comentar sobre o foco na persistência prejudicando o POCO e Persistence Ignorance
  • Outro ponto de crítica é como lhe dá o uso do lazyloading no EF 1.0O modelo único também problemas com uso em equipes grandes, pois é difícil o gerenciamento do mapeamento.Todo mapeamento é feito na verdade em XML, daí é importante conhecer muito ele, e fazer customizações é possível mas é bastante trabalhoso.Mais um ponto tratado pelo time de produto na primeira versão foi pensando em que a maioria já tenha um modelo de dados criado então o que temos é uma mapenamento que pode ser gerado a partir do modelo, mas o pessoal reclamou que não temos o contrário.
  • Vamos ver então agora algumas das melhorias que o time do produto destacou e está disponibilizando nessa próxima versão 4 (que na verdade é a 2.0)Suporte a mais operadores LINQAgora temos mais recursos como .single()PluralizaçãoClientes (tabela) – Cliente (entidade)Geração baseada em T4, inclusive agora tem um Add-in que cria um novo template para o VS2010 RC
  • Era de se esperar melhorias no código SQL gerado.Evidentemente o time deve estar preocupado em gerar cada veis mais um resultado melhorSuporte a tipos mais complexosAgora temos suporte no design, o que antes tinhamos somente através do XMLO Design melhorou agora, permitindo apagar objetos, o que antes só era feito através o XML
  • Podemos customizar o código gerado no mapeamentoPOCO’s agora temos suporte a customizado através de T4Lazyloading ObjectStateManager mais flexível podendo manipular mais facilmente o estado da entidade.
  • D:DevGoiasCommunityLaunch2010\_PalestraFlight 1EF4Flight1 – Flight de Pluralização - Mostrar no VS 2008 - Mostrar no VS 2010D:DevGoiasCommunityLaunch2010\_PalestraFlight 2 EF4Flight2 – Flight de Model-First - criar um novo modelo vazio - depois criar o banco no SQL studio - Abrir EFProfiler - Mostrar querys D:DevGoiasCommunityLaunch2010\_PalestraFlight 3 EF4Flight3 – POCOD:DevGoiasCommunityLaunch2010\_PalestraFlight 3 EF4Flight3 4 - Lazyloading
  • Agora vamos para a parte II com as novidades do WCF Data Services
  • Normalmente temos em nossas aplicações muitos dados, mas quando falamos de integração e compartilhamento ela não atende muito bem aos diversos cenários.Temos comumente importação/exportação.Precisamos de algo que organize os dados e compartilhe sem violar integridade e segurança.
  • Seus problemas acabaram o WCF Data Services se encaixa perfeitamente nesse cenário. - trabalha automaticamente o compartilhamento das informações - é tendência a integração com demais produtos da MS - SharePoint - Azure - Office
  • Using ADO.NET Data Services today, you can make a request to a service for a specific entity set, such as “Products”. This provides a great level of flexibility to the consumer, but it comes with a few problems [Advance Animation]. Because there was no paging options applied to the request, the user has no idea just how much data they are about to get back. This could end up creating a network bottleneck [Advance Animation].The consumer can optionally specify paging parameters in their request for products, which removes the potential bandwidth tax [Advance Animation]. The problem with this approach is that you have no idea how many products actually exist on the server. If you wanted to provide some paging functionality in a client application, there isn’t any way to determine how many pages there are without retrieving all products.
  • In ADO.NET Data Services 1,5, there is a new pseudo-selector that can be applied to a request: $count. As this example shows, it isn’t a query option (like $skip or $take) but rather a value that you specifically target, much like the $value or $links pseudo-selectors [Advance Animation]. When you target an entity-sets $count, you get back only the count of items in that set. This is nice if you already have the data and are only concerned with determining the server-side count. But if you want data as well as the count, this approach doesn’t lend itself as well to that scenario [Advance Animation].In addition to the $count pseudo-selector, there is a new query option called $inlinecount that allows you to query for data and then optionally include the count inside the response [Advance Animation]. This option is great because now you can get the data you need, paged to the size you need, and also find out how many total items exist on the server, all in a single request. This makes it much easier to develop client applications that consume a data service.
  • By default, when ADO.NET Data Services exposes an instance of an entity type, it serializes the data using the Atom Publishing Protocol (Atom Pum/APP) format. Every public property on the entity type gets mapped to an element within the content of the respective entry element.While this default behavior works just fine for many situations, there are some oddities when using APP [Advance Animation]. For instance, the APP format requires that every entry include a title and an author. ADO.NET Data Services will render these elements, but never actually fill them with content. This could confuse consumers of the service that are APP aware and would expect to be provided with a title and/or author.In 1.5, ADO.NET Data Services introduces a feature called “friendly feeds” that allows you to map an entity property to an element within the APP entry. This can either be a pre-defined element such a title or author, or a custom element. The ability to map properties to custom elements allows you to add additional information to your data feeds, such as microformats (i.e. GeoRSS), that can be interpreted by understanding clients.
  • Instruções Flight 4 – Contagem de registros – arquivo “Instruções Flight 4”Instruções Flight 4 – Projeções – arquivo “Instruções Flight 4”Instruções Flight 4 – Paginação – arquivo “Instruções Flight 4”
  • Agora vamos para a parte II com as novidades do WCF Data Services
  • Transcript of "Entity Framework 4 & WCF Data Services"

    1. 1. Entity Framework 4“Restaurando a confiança”Novidades do WCF Data Services 1.5<br />Marcelo Paiva<br />Softprime Soluçõesmarcelo@softprime.com.br<br />@marcelo_paiva<br />http://marcelosoftprime.spaces.live.com<br />
    2. 2. Agenda<br />Tecnologias de Acesso a dados<br />Entity Framework 4<br />Novidades do EF 4<br />Demonstração<br />ADO WCF Data Services 1.5 <br />Novidades da versão 1.5<br />Demonstração<br />Q & A<br />
    3. 3. As tecnologias “Hoje”<br />ADO.Net<br />Linq to SQL<br />WCF Data Services<br />Entity Framework<br />
    4. 4. História<br />ADO.NET 2.0 – Datasets e cia.<br />LINQ to SQL<br />Projeto do time de C#<br />EntityFramework<br />Time de projeto voltado para tecnologias de acesso a dados.<br />Em 29/10/2008, mensagem do time de produto sobre união dos times do L2S e EF.<br />Dúvida sobre continuidade do L2S.<br />
    5. 5. Parte I<br />Entity Framework 4“Restaurando a confiança”<br />Recursos<br /> Data Developer Center<br />http://msdn.microsoft.com/en-us/data/aa937723.aspx<br />
    6. 6. História<br />Feedbacks sobre o EF 1.0:<br />Famoso “vote of no confidence”<br />Foco nos aspectos de dados das entidades degradam arquiteturas de entidade<br />Entidades criadas não são POCO (derivam de EntityObject) <br />Falta de persistance ignorance deixa o código mais difícil de escrever<br />
    7. 7. História<br />Feedbacks sobre o EF 1.0:<br />Excesso de código para lidar com lazyloading<br />Modelo único trás problemas excessivos em um projeto com diversos desenvolvedores e controle de fonte<br />Não é possível criar o armazenamento físico a partir de um modelo conceitual.<br />
    8. 8. Melhorias no EF4<br />Suporte a mais operadores LINQ<br />Pluralize<br />Podemos encontrar: Movies-Movy<br />Geração de código baseada em T4 templates(text template transformation toolkit)<br />Maior facilidade de customização para o desenvolvedor<br />
    9. 9. Melhorias no EF4<br />Melhorias no código SQL gerado<br />De se esperar uma evolução contínua<br />Suporte a tipos complexos no designer<br />http://msdn.microsoft.com/en-us/library/dd456820(VS.100).aspx<br />Melhoria da ferramenta Modelbrowser<br />Ex.: apagar objetos do storagemodel e pesquisar por entidades<br />
    10. 10. Melhorias no EF4<br />Geração customizada de objetos (T4)<br />POCOs(T4)<br />Lazyloading<br />Restrições do ObjectStateManager serão flexibilizadas.<br />Maior facilidade para trabalhar com N camadas.<br />
    11. 11. Flight Mode <br />Visual Studio 2008 vs. Visual Studio 2010<br />Pluralization<br />Gerar banco de dados<br />Model-First<br />Qual instrução SQL está sendo gerada??<br />POCO (plain-old CLR objets)<br />Lazyloading<br />
    12. 12. Parte II<br />WCF Data ServicesNovidades da versão 1.5<br />Recursos<br /> Data Developer Center<br />http://msdn.microsoft.com/en-us/data/aa937723.aspx<br />
    13. 13. Qual o objetivo do WCF Data Services?<br />Aplicações normalmente são excelentes geradoras de dados.<br />Mas nem tanto para compartilhar dados<br />É necessário ir além de simplesmente criar interfaces de importação/exportação<br />Quebrar esse “amontoado” de dados sem violar integridade e segurança<br />
    14. 14. Qual o objetivo do WCF Data Services?<br />O WCF Data Services se encaixa perfeitamente nesse cenário<br />Foca em fornecer uma abordagem com serviços (limites bem definidos) e previsível para troca de dados<br />Consumidor  Protocolo  Produtor<br />
    15. 15. Novidades do WCF Data Services v1.5<br />Contagem de registros<br />RowCount<br />Suporte a projeções<br />Server Driven Paging<br />Melhor suporte a tipo blob<br />
    16. 16. Contagem de registros (Row count)<br />/Products<br />Sempaginação<br />Perda de dados potencial<br />n # of products<br />/Products?$skip=10&$take=10<br />Semideia do total<br /> # de products<br />10 products<br />
    17. 17. Contagem de registros (continuação)<br />/Products/$count?$skip=10&$take=10<br />Sem dados<br />Count<br />/Products?$skip=10&$take=10&$inlinecount=allpages<br />10 products +<br />Inline Count<br />
    18. 18. Suporte a projeções<br />
    19. 19. Flight Mode II<br />Contagem de registros<br />RowCount<br />Suporte a projeções<br />Server Driven Paging<br />
    20. 20. Q & A ?!<br />Recursos<br /> http://dataservicesbrasil.ning.com<br /> http://www.devgoias.net<br /> marcelo.paiva@devgoias.net<br />
    21. 21. Obrigado!<br />Cadastre aqui e concorra uma licença do EF Profiler<br />Link’s uteis<br />http://dataservicesbrasil.ning.com<br />http://www.devgoias.net<br />http://blogs.msdn.com/adonet/default.aspx<br />http://blogs.msdn.com/astoriateam/default.aspx<br />E-mail:marcelo.paiva@devgoias.net<br />
    22. 22. Agradecimentos<br />
    23. 23. www.devgoias.net<br />www.wininfo.com.br<br />

    ×