ASP .NET - Revisitando o ADO .NET Data Service


Em meu artigo Apresentando ADO .NET Data Services apresentei o ADO .NET Data Services e no artigo Usando ADO .NET Data Services eu mostrei um exemplo de como usar este recurso.

Como já faz algum tempo resolvi voltar ao assunto para recordar e expandir os conceitos a respeito e fazer uma revisão rápida.

Conceitos básicos sobre ADO .NET Data Service

Vamos começar com algumas definições...

O ADO .NET Data Service...

Tentando juntar todas estas características e dar uma definição padrão poderíamos dizer que :

O ADO .NET Data Service expõe todas as operações de um banco de dados como um serviço RESTfull em um modelo de entidades.(O modelo de entidades deve suportar as interfaces IUpdateable e IQueryable.)

A figura abaixo tenta mostrar isso de uma forma mais clara:

Desta forma o ADO .NET Data Service usa HTTP para interagir com os dados usando os seguintes métodos HTTP:

Para fazer a chamada HTTP podemos usa as seguintes opções:

  1. Usar a caixa de endereço do navegador;
  2. Usar uma livraria cliente exposta pelo namespace System.Data.Service.Client que encapsula uma requisição HTTP;

Os formatos de mensagens suportados são:

O formato de mensagem JSON é usado principalmente com clientes AJAX enquanto que o formato XML é mais legível. O formato ATOM é o formato padrão.

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:

  • Um protocolo cliente/servidor sem estado: cada mensagem HTTP contém toda a informação necessária para compreender o pedido. Como resultado, nem o cliente e nem o servidor necessitam gravar nenhum estado das comunicações entre mensagens. Na prática, muitas aplicações baseadas em HTTP utilizam cookies e outros mecanismos para manter o estado da sessão (algumas destas práticas, como a reescrita de URLs, não são permitidas pela regra do REST).
  • Um conjunto de operações bem definidas que se aplicam a todos os recursos de informação: HTTP em si define um pequeno conjunto de operações, as mais importantes são POST, GET, PUT e DELETE. Com freqüência estas operações são combinadas com operações  CRUD para a persistência de dados, onde POST não se encaixa exatamente neste esquema.
  • Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso é unicamente direcionado através da sua URI (Uniforme Resource Identifiers).
  • O uso de hipermídia, tanto para a informação da aplicação como para as transições de estado da aplicação: a representação deste estado em um sistema REST são tipicamente HTML ou XML. Como resultado disto, é possível navegar com um recurso REST a muitos outros, simplesmente seguindo ligações sem requerer o uso de registros ou outra infra-estrutura adicional. (http://pt.wikipedia.org/wiki/REST)

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(). Isto foi importante para a aceitação de JSON dentro da comunidade AJAX devido a presença deste recurso de JavaScript em todos os navegadores web atuais.
 

Isso é o básico do básico sobre o ADO .NET Data Services.

Aguarde mais artigos a respeito com exemplos práticos.

Referências:


José Carlos Macoratti