Поделиться через


ADO.NET Data Services : um pouco mais sobre o projeto "Astoria".

Olá pessoal, tudo certo?

image 

O ADO.NET Data Services é um dos componentes da próxima versão do ADO.NET. O projeto "Astoria" como é conhecido, permite a navegação dos dados de um banco publicado na nuvem (web), através de uma interface estilo REST, com dados formatos em JSON e ATOM/APP.

Como principal benefício, é possível consumir as informações de um banco de dados publicado, sendo possível o search pelas informações via http. Além disso, é possível operar sobre esses dados, uma vez que a interface implementa todos os verbos do protocolo HTTP, como GET, POST, PUT e DELETE.

Veja um exemplo simples. Para começar, precisamos instalar alguns pacotes adicionais ao ambiente do Visual Studio 2008. Assim, vamos usar o ASP.NET 3.5 Extensions e o Entity Framework, para trabalhar com o ADO.NET Data Services.

ASP.NET 3.5 Extensions Preview (deve ser instalado)
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyId=A9C6BC06-B894-4B11-8300-35BD2F8FC908&displaylang=en

ADO.NET Entity Framework Beta 3 (deve ser instalado)
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyId=15DB9989-1621-444D-9B18-D1A04A21B519&displaylang=en

ADO.Net Entity Framework Tools Dec 07 Community Technology Preview (deve ser instalado)
Ref.: https://www.microsoft.com/downloads/details.aspx?familyid=D8AE4404-8E05-41FC-94C8-C73D9E238F82&displaylang=en

Após a instalação, crie um projeto ASP.NET WEB Application para nosso exercício.

Com o projeto criado, adicione um modelo Entity Data Model, via o template oferecido pelo ADO.NET Entity Framework (Beta 3).

image

A criação do modelo .EDMX pode ser feita apontando um arquivo .MDF local, ou um SQL Server ou ainda qualquer outro banco para o qual você tenha o provider. Veja a lista de providers disponíveis aqui.

image

Agora, adicione um novo item ao projeto, um ADO.NET Data Services, através do template disponibilizado pelo ASP.NET Extensions.

image

Esse template ADO.NET Data Service gera um código exemplo que já pode ser executado, a partir da indicação do modelo Entity Framework utilizado. Em nosso exemplo, veja que o modelo tem o namespace Model e a entidade utilizada é acessada na chamada:

public class WebDataService1 : WebDataService<Model.Entities>

Finalmente, o projeto mais simples utilizando o template ADO.NET Data Services acima ficaria assim:

using System;
using System.Web;
using System.Collections.Generic;
using System.ServiceModel.Web;
using System.Linq;
using Microsoft.Data.Web;

using Model; // Modelo gerado pelo Entity Data Model.

namespace WebApplication1
{
public class WebDataService1 : WebDataService<Model.Entities>
{
public static void InitializeService(IWebDataServiceConfiguration config)
{
config.SetResourceContainerAccessRule("*", ResourceContainerRights.AllRead);
}
}
}

Executando a solução, teremos a navegação pelas entidades do modelo EDMX disponível via browser, onde as duas tabelas People e Orders são indicadas, como vemos abaixo:

image

De fato, com essa interface publicada podemos navegar pelos dados do banco, indicando quais linhas ou campos ou entidades queremos visualizar. Como existe a aderência ao modelo REST, é possível realizar buscas diretas através da URI de cada entidade ou dado publicado pelo ADO.NET Data Services.

O ADO.NET Data Services ainda prevê outros operadores na linha de comando http, como vemos a seguir:

image

E o modelo não serve apenas para a nuvem internet. Podemos pensar em bancos de dados corporativos ou departamentais oferecendo dados através da intranet da empresa para outros sistemas, utilizando uma interface web e formato REST, com segurança HTTPS (SSL). Simples assim. :)

Esse post foi apenas uma introdução sobre o ADO.NET Data Services.

Para saber mais e ver outros exemplos, acompanhe o blog do arquiteto Pablo Castro, da Microsoft, um dos responsáveis pela equipe do projeto "Astoria":

Pablo Castro's blog
Ref.: https://blogs.msdn.com/pablo/ 

Por enquanto é só! Até o próximo post :)

Waldemir.

Comments

  • Anonymous
    June 24, 2008
    Muito interessante este projeto, especialmente para aplicações distribuídas. Quem trabalha com SOA também pode tirar muito proveito disso. No meu caso, temos o site da empresa em um provedor e as bases de dados em um DataCenter. Para não expor o Sql Server na internet, colocamos WebServices para fazer o tráfego de dados. Se existissem alternativas como essa no momento, talvez teríamos aproveitado melhor os recursos. Excelente post.

  • Anonymous
    June 24, 2008
    Olá Fernando, tudo certo? Obrigado pelos comentários no blog. De fato, o projeto Astoria está em andamento e deveremos ter boas notícias a partir de julho, quando começará o programa Beta aberto. Assim, recomendo ficar ligado nas notícias. Como tendência forte para soluções Software + Services, serviços e dados na nuvem será uma opção a mais para nossas arquiteturas. Por enquanto é só! Waldemir.