Apresentando ADO .NET Data Services
Uma das novidades do service pack 1 do .NET Framework 3.5 chama-se ADO .NET Data Services (codinome Astoria) cujo objetivo é permitir a navegação pelos dados de uma fonte de dados publicados na web (nuvem)/intranet usando uma interface REST e formatando os dados em JSON.
O que é REST ?
O termo
REST- Representation State Transfer, se referia originalmente a um conjunto de princípios de
arquitetura (descritos mais abaixo), na atualidade se usa no sentido mas
amplo para descrever qualquer interface web simples que utiliza
XML e
HTTP (ou
YAML,
JSON, ou texto
puro), sem as abstrações adicionais dos protocolos baseados em padrões de
trocas de mensagem como o protocolo de
serviços web
SOAP. É possível desenhar sistemas de serviços web de acordo com o
estilo arquitetural REST descrito por Fielding, e também é possível
desenhar interfaces
XMLHTTP de acordo com o estilo de
RPC mas sem utilizar SOAP. Estes usos diferentes do termo REST
causam certa confusão em discussões técnicas, onde RPC não é um exemplo de
REST. Os sistemas que seguem os princípios REST são freqüentemente chamados de RESTful; os defensores mais ferrenhos do REST são chamados pelos mesmos de RESTafarianos REST afirma que a web já desfrutou de escalabilidade como resultado de uma série de desenhos fundamentais chaves:
|
O que é JSON ?
JSON
(com a pronuncia djeisón), um acrônimo
para JavaScript Object Notation,
é um formato leve para intercâmbio de dados computacionais. JSON é um
subconjunto da notação de objeto de JavaScript, mas seu uso não requer
Javascript exclusivamente. A
simplicidade de JSON tem resultado em seu uso difundido,
especialmente como uma alternativa para XML e AJAX.
Uma das vantagens reinvindicadas de JSON sobre XML
como um formato para intercâmbio de dados neste contexto, é o fato de ser
muito mais fácil escrever um analisador JSON. Em JavaScript mesmo, JSON pode
ser analisado trivialmente usando a função eval |
O que ADO .NET Data Services (Astoria)?
O ADO .NET Data Services é baseado no WFC (Windows Comunication Foundation) e tem como objetivo a criação de serviços de dados a partir de qualquer fonte de dados e estruturando as informações como entidades de acordo com as especificações do EDM - Entity Data Model geradas a partir do Entity Framework ou através de implementações IQueryable<T>.
Desta forma o ADO .NET Data Services possibilita consumir as informações de um banco de dados publicado na nuvem(web) ou na intranet e de efetuar buscas das informações baseada no protocolo REST (via http) visto que a interface REST implementa GET, POST, PUT e DELETE. Os serviços oferecidos podem ser acessados a partir de qualquer plataforma visto que as requisições são feitas via HTTP.
A interface IQueryable
fornece a funcionalidade para dar valores a consultas em uma fonte de dados
específica no qual o tipo de dados é conhecido.
Essa interface herda a interface IEnumerable<(Of <(T>)>) para que se ele representa uma consulta, os resultados da consulta que podem ser enumerados. A Enumeração força a árvore de expressão associado a um objeto IQueryable<(Of <(T>)>) a ser executada |
Ou ainda nas palavras da própria Microsoft:
O ADO.NET Data Services Framework consiste em uma combinação de padrões e bibliotecas que permite que os dados sejam expostos como um serviço de dados flexível baseado em REST (Representational State Transfer) e que pode ser utilizado por clientes Web em uma rede corporativa ou pela Internet.
O ADO.NET Data Services Framework executa a criação de serviços de dados com qualquer fonte de dados. Um modelo de exibição conceitual do esquema de armazenamento subjacente pode ser exposto facilmente por meio da sofisticada integração com o ADO.NET Entity Framework.
Os serviços criados usando o ADO.NET Data Services Framework, assim como os serviços do Windows Live (dev.live.com) compatíveis, podem ser acessados facilmente em qualquer plataforma. Para aplicativos cliente em execução em plataformas Microsoft, é fornecido um conjunto de bibliotecas de cliente, a fim de simplificar a interação com serviços de dados. Por exemplo, clientes baseados no .NET Framework podem usar o LINQ para consultar serviços de dados e uma camada de objetos simples do .NET Framework para atualizar dados no serviço
Como o ADO .NET Data Services expõe um modelo de entidades, geralmente criamos o modelo usando os recursos do ADO .NET Entity Framework para efetuar o mapeamento das tabelas do banco de dados de forma a poder acessá-las via LINQ to Entities, mas você pode usar o IQueryable para que as URIs sejam convertidas em consultas pois o ADO .NET Data Services possibilita o mapeamento dos objetos que implementam a interface IQueryable para EntitySets.
Aguarde em breve um exemplo completo de um projeto usando ADO .NET Data Services.
Eu sei é apenas ADO .NET , mas eu gosto...
José Carlos Macoratti