Esse artigo faz parte da revista .NET Magazine edição 59. Clique aqui para ler todos os artigos desta edição

 

t .5pt" vAlign=top width=686>

·         Como criar um serviço que expõe dados com ADO.NET Data Services;

·         Integração do ADO.NET Entity Framework com o ADO.NET Data Services;

·         Criação de uma aplicação que consome dados expostos com ADO.NET Data Services;

Qual a finalidade

·         Criar um modelo de entidades e expô-lo na Web como um serviço. Em seguida acessar e testar as operações CRUD neste modelo.

Quais situações utilizam esses recursos?

·         Aplicações que se utilizam de conceitos como S+S e Cloud Computing, onde parte dos recursos é disponibilizada através de serviços na Web poderão contar com o ADO.NET Data Services para alcançar este objetivo.

 

Resumo do DevMan

O ADO.Net Data Services permite criar aplicações RESTful com pouquíssimo esforço, aplicando padrões de mercado, e com segurança, e integrando com fontes de dados conhecidas, como o Entity Framework. Neste artigo você vai ver como trabalhar com o ADO.NET Entity Framework em conjunto com o ADO.NET Data Services, para a construção de aplicações onde o modelo de dados é exposto como um Serviço na Web.

 

Neste artigo irei abordar estes assuntos sob um aspecto estritamente prático. Não vamos nos aprofundar nos conceitos teóricos que envolvem o ADO.NET Data Services,  ou como funciona em detalhes o padrão REST. Neste artigo vamos utilizar os recursos que temos do ADO.NET Data Services para expor um modelo de Entidades feito com o ADO.NET Entity Framework como um serviço na internet, e posteriormente veremos como utilizar este serviço em nossas aplicações. A pergunta que você deve estar fazendo é: “Mas por quê?”.

Quem já trabalhou WebServices ou mesmo com o WCF, sabe que essa é uma necessidade muito comum nos dias de hoje. Disponibilizar dados através de serviços web é uma prática muito útil para integrar aplicações pela internet. O ADO.NET Data Services (também conhecido como Astoria, seu codinome) permite fazer isso de uma maneira muito mais simples, como veremos a seguir.

 

Ambiente

O ADO.NET Data Services expõe o que chamamos de Modelo de Entidades, e a forma mais fácil de criarmos um modelo de entidades é através do ADO.NET Entity Framework (EF). Como veremos, com o EF fazemos um mapeamento das tabelas do banco de dados, para que possamos acessá-las através do LINQ to Entities. Já escrevi alguns artigos sobre o Entity Framework nessa mesma revista em edições anteriores.

Tanto o ADO.NET Entity Framework quanto ADO.NET Data Services são recursos que vieram complementar o .NET Framework 3.5 no Service Pack 1, que foi lançado recentemente. Sendo assim, além do Visual Studio 2008 você vai precisar baixar e instalar o Service Pack 1, que pode ser encontrado neste link: http://tinyurl.com/vs2008sp1.

Com o ambiente já pronto, podemos começar criando uma nova Solution no Visual Studio 2008. Para isso, com o VS2008 aberto, vá até a opção File / New Project. Como iremos criar vários projetos de exemplo neste artigo, vamos criar uma solução vazia para a inclusão destes projetos. Para isso, como você confere na Figura 1, em Other Project Types selecione Visual Studio Solutions, e nos templates selecione o Blank Solution. Em seguida informe ArtigoAstoria em Name e clique em OK.

 

Figura 1. Criando uma solução vazia no Visual Studio

 

Modelo de Entidades

Agora que já temos uma solução criada, podemos começar a criar nossos exemplos. A primeira coisa que devemos fazer então é a modelagem das nossas entidades no ADO.NET Entity Framework. Uma das características deste framework é que ele permite que você crie um modelo vazio e somente depois faça o mapeamento Objeto/Relacional.

Outra possibilidade é já criar o modelo baseado em tabelas de um banco de dados, resultando em um modelo de entidades já mapeado com a base de dados relacional. Para facilitar os nossos exemplos vamos utilizar a segunda opção, e como não poderia ser diferente vamos aproveitar o database Northwind da Microsoft, que é ótimo para a construção de exemplos.

Como explicado na nota, baixe e instale o database Northwind. Neste artigo estaremos utilizando um SQL Server 2005.

 

Nota

O Database Northwind é uma banco de dados do SQL Server para testes e com estrutura definida para uma aplicação de vendas, onde temos Produtos, Clientes, Fornecedores, Pedidos, etc. A Microsoft disponibiliza este database já com dados através do seguinte link: http://tinyurl.com/northwinddb

Faça o download e execute o arquivo de instalação. Ao término da instalação, os databases de exemplo do SQL Server 2000 serão instalados na pasta C:\SQL Server 2000 Sample Databases. Você pode obviamente movê-los para o local da sua conveniência.

 

Agora vá até a Solution Explorer do Visual Studio, clique com o botão direito sobre a solução ArtigoAstoria e escolha a opção Add / New Project. Em Visual C# selecione o template Class Library. Informe ArtigoAstoria.Model em Name e clique em Add. Não esqueça de selecionar o .Net Framework 3.5, ou o Astoria não poderá ser adicionado ao projeto.

Este é o projeto Class Library que irá conter o modelo de entidades a ser feito com o ADO.NET Entity Framework. Você pode apagar a Class1.cs do projeto pois ela não será utilizada. Em seguida, com o botão direito sobre o projeto escolha a opção Add / New Item. Como você confere na Figura 2, na Categoria Data temos o template ADO.NET Entity Data Model. Escolha-o, informe DM_Northwind.edmx em Name, e clique em Add.

 

Figura 2. Criando novo Modelo de Entidades

 

Um Wizard será iniciado para lhe ajudar na criação do Modelo. A primeira tela desse Wizard pergunta justamente se você quer criar um modelo baseado em um banco de dados, ou se quer um modelo vazio. Vamos escolher a opção Generate from Database e clicar em Next.

Na segunda etapa do Wizard é necessário criar uma conexão com o database Northwind (veja na Figura 3). Note que a string de conexão tem um padrão um pouco diferente do que estamos acostumados no ADO.NET. Veja também que ela será armazenada no arquivo App.config com o nome NorthwindEntities. Clique em Next para prosseguir.

 

Figura 3. Criando String de Conexão com o Database Northwind

 

Na próxima etapa do Wizard precisamos selecionar as tabelas que queremos incluir em nosso modelo. Note na Figura 4, que estamos selecionando apenas as tabelas Categories e Products para criarmos exemplos simples e objetivos.

Veja que além de tabelas podemos incluir no modelo objetos como ...

Quer ler esse conteúdo completo? Tenha acesso completo