Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Neste artigo será demonstrado como criar uma pequena aplicação para Locadora com opções de consulta e atualização de informações de filmes, clientes e reservas através de um site se comunicando com serviços no padrão REST, além de uma aplicação para gerenciamento da Locadora em desktop. Será utilizado para o desenvolvimento da aplicação: ASP.NET Web Forms, Windows Forms e WCF Data Services, destacando os conceitos de REST, OData e Entity Framework 4.
Para que serve
Disponibilizar serviços Web é fundamental para o sucesso de praticamente qualquer projeto. O WCF Data Services permite fazer isto de forma simples e rápida. Seguir boas práticas de desenvolvimento Web, permitindo que o usuário navegue por sua aplicação através de forma intuitiva (através de URI, como recursos) também é uma das grandes vantagens da utilização do WCF Data Services.
Em que situação o tema é útil
O assunto pode ser de grande utilidade como referência para qualquer aplicação onde seja necessário desenvolver métodos de integração com outras aplicações de forma prática e produtiva. Também pode ajudar quem estiver procurando por exemplos práticos de utilização do WCF Data Services em uma aplicação do dia a dia.
REST com WCF Data Services
Neste artigo será explicado como criar uma aplicação que poderá expor os dados de forma padronizada e ainda controlando a segurança. Será demonstrado como é possível através do WCF Data Services desenvolver soluções para geração e consumo de dados em conformidade com o padrão REST. Nossa pequena aplicação de exemplo será uma simples, com operações de uma locadora onde o usuário poderá ver a lista de filmes disponíveis para locação e fazer uma reserva do mesmo.
REST (Representational State Transfer) é uma técnica de engenharia de software para sistemas hipermídia distribuídos como a World Wide Web. O termo se originou no ano de 2000, em uma tese de doutorado (PHD) sobre a web escrita por Roy Fielding, um dos principais autores da especificação do protocolo HTTP que é utilizado por sites da internet.
Os sistemas que seguem os princípios REST geralmente são chamados de RESTful. No .NET com o lançamento do Service Pack 1 do Framework 3.5 foi incluído o ADO.NET Data Services, anteriormente chamado de Astoria e que agora na versão 4.0 do Framework, com o alinhamento dos produtos, passou a ser chamado de WCF Data Services, tecnologia que implementa os princípios de REST.
Uma aplicação RESTFul combina o uso dos princípios estabelecidos pela técnica do REST que podemos destacar como os principais:
1 – Possui um protocolo cliente/servidor sem estado, ou seja, cada mensagem HTTP contém toda a informação necessária para compreender o pedido;
2 – Uso de um conjunto bem definido de operações que se aplica a todos os recursos de informações. As operações mais importantes são POST, GET, PUT e DELETE que podem ser comparadas com operações CRUD para persistência de dados;
3 – Cada recurso no sistema REST é unicamente direcionado através da sua URI - Uniform Resource Identifier.
REST é basicamente uma forma de pensar, não um protocolo ou padrão, com ele temos um estilo de projetar aplicativos fracamente acoplados que contam com recursos nomeados. Talvez a parte mais complicada em uma aplicação REST é definir quais recursos você vai expor e como serão os critérios de segurança.
A Microsoft logo resolveu criar um padrão para o uso do REST que foi denominado de OData ou Open Data Protocol (http://www.odata.org), no entanto não se tornou um padrão fechado é totalmente aberto e permite qualquer um livremente interoperar com implementações OData.
Em 2006 a Microsoft lançou a versão 3.0 do .NET Framework, que nada mais era do que "grandes blocos" que foram adicionados ao 2.0. Entre esses grandes blocos, figura o WCF. Como todo mundo sabe, ele é o pilar para comunicação dentro da plataforma .NET. A estrutura deste framework facilitou a entrada de novos produtos, também criados pela Microsoft, para atender cenários específicos. Desde a sua primeira versão, o WCF possui muitas funcionalidades, e a Microsoft está incrementando-o cada vez mais. O Windows Communication Foundation (WCF) é o pilar de comunicação da plataforma .NET. Ele foi criado para unificar todas as tecnologias que existiam até então, como COM+, .NET Remoting, ASP.NET Web Services (ASMX) etc., criando um framework extensível, que aborda de forma genérica, o modelo de criação de serviços, independentemente do protocolo onde ela está sendo publicado.