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,
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.
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 ...