Migração para Delphi 2010 - Clube Delphi 120
Mostrar de forma prática como migrar uma solução DataSnap tradicional desenvolvida em Delphi 7, que utiliza Web Services e SOAP para a comunicação entre Servidor de Aplicação e camada cliente, para a nova arquitetura DataSnap que acompanha a mais recente versão do Delphi, a 2010.
Mostrar de forma prática como migrar uma solução DataSnap tradicional desenvolvida em Delphi 7, que utiliza Web Services e SOAP para a comunicação entre Servidor de Aplicação e camada cliente, para a nova arquitetura DataSnap que acompanha a mais recente versão do Delphi, a 2010.
Para que serve
Ao atualizar a tecnologia vamos ganhar recursos novos e aprimorados, mantendo a aplicação pronta para os desafios atuais, também vamos entender as facilidades incluídas nesta nova versão. Ao empregar o uso do DataSnap teremos uma aplicação dinâmica, pois a lógica estará centralizada permitindo que vários clientes a acessem. Podemos ter clientes Desktop ou até mesmo páginas web consumindo os dados da aplicação.
Em que situação o tema é útil
Quando se precisa acessar um banco de dados a partir de qualquer lugar da Internet. Por exemplo, centralizar o banco de dados e servidor de aplicação na matriz da empresa e distribuir as aplicações clientes para as filiais, que terão acesso aos dados em tempo real e que se mantêm sempre atualizados, sem a necessidade de sincronização. Ainda é possível oferecer sua aplicação como um serviço: seus clientes podem pagar um taxa, por exemplo, e acessar a aplicação através da Internet, sem a necessidade de nenhuma configuração local na empresa, tudo fica configurado e armazenado no servidor.
Resumo do DevMan
A nova tecnologia DataSnap para desenvolvimento multicamadas, lançada com o Delphi 2009 e aprimorada no Delphi 2010, é parcialmente baseada na arquitetura dbExpress e não mais em COM, que foi totalmente retirado da arquitetura. Dito isto será mostrada a migração, de forma prática, de um sistema desenvolvido com o DataSnap “antigo” para esta nova versão, mostrando tudo o que muda durante o desenvolvimento, como por exemplo componentes e recursos que serão descartados e outros que serão adicionados.
O desenvolvimento multicamadas no Delphi teve início com o MIDAS, ainda no Delphi 3. Esta tecnologia passou por constantes evoluções a cada nova versão, tanto que no Delphi 6, foi renomeada para DataSnap onde foi mantida até a versão 2007. Já com o lançamento do Delphi 2009 foi introduzida uma arquitetura totalmente nova, com a remoção da dependência COM e uma forma mais leve de produção dos lados cliente e servidor, tudo baseado na arquitetura do dbExpress do próprio Delphi. Essa versão, apesar de até então só oferecer suporte à conectividade TCP/IP, representou um marco na evolução da IDE, tanto que foi rebatizada como DataSnap 2009, para que houvesse uma distinção em relação às versões anteriores. Seguindo essa linha evolutiva, no ano passado com o lançamento do Delphi 2010, foi novamente apresentado um novo DataSnap, agora baseado em seu antecessor DataSnap 2009 e com mais melhorias e novidades como, por exemplo, o suporte a REST e JSON, conectividade utilizando o protocolo HTTP entre outras.
Imagine agora que você tenha um projeto DataSnap desenvolvido tempos atrás e que ainda o utiliza em produção até hoje. Você, ao acompanhar as mais recentes novidades do Delphi, seja na Web ou aqui mesmo nessa revista, percebeu todo o alarde feito sobre as melhorias do novo DataSnap e sentiu necessidade ou até mesmo curiosidade em atualizar tal aplicação para esta nova arquitetura.
Em vista disso, a proposta deste artigo é justamente mostrar a migração de uma aplicação desenvolvida com o DataSnap tradicional para a nova arquitetura DataSnap. Faremos isso de uma maneira bem prática, com foco exclusivo na migração propriamente dita, ou seja, de imediato construiremos a aplicação na arquitetura tradicional e logo em seguida a transportaremos para a nova arquitetura, mostrando todas as inclusões e exclusões de recursos entre um projeto e outro. Para valorizar ainda mais este processo, irei utilizar a premissa de um projeto que utiliza o DataSnap tradicional e SOAP ainda no Delphi 7, publicado tempos atrás em um artigo da própria ClubeDelphi, mais especificamente na edição 70 (ver seção links) de autoria do editor desta revista, Guinther Pauli. Uma observação a se fazer é que apesar do projeto citado utilizar o DataSnap tradicional, desenvolvido no Delphi 7, neste artigo utilizaremos o Delphi 2010 para todo o desenvolvimento prático. Dessa forma, comprovaremos a retro compatibilidade da IDE, mostrando que tudo que era feito anteriormente no desenvolvimento DataSnap ainda pode ser feito na nova versão. Para um melhor entendimento a partir de agora trataremos como “tradicional”, a primeira versão da aplicação que desenvolveremos.
Nota do DevMan
SOAP, acrônimo de Simple Object Access Protocol, é um protocolo que utiliza tecnologias baseadas em XML (texto) para troca de dados estruturados entre plataformas distribuídas. Essa característica torna seu uso muito comum em ambientes que utilizam servidores HTTP.
Mudanças no DataSnap
Como estamos falando da migração de uma aplicação DataSnap, da tradicional para a nova arquitetura, é importante que você conheça a diferença essencial entre ambas:
• Para o desenvolvimento do Servidor não existe mais envolvimento com COM. Agora os aplicativos cliente e servidor se comunicam diretamente sobre o protocolo TCP/IP ou HTTP. Não há mais a necessidade de se registrar o Servidor de Aplicação no Sistema Operacional;
• Na arquitetura tradicional, fazendo uso de COM, o Servidor era iniciado conforme fosse solicitado. Já no novo modelo você deve executar manualmente o Servidor de Aplicação ou criar um serviço para este;
• A partir da versão 2009 o Delphi trouxe novos componentes específicos para o desenvolvimento DataSnap, proporcionando ao desenvolvedor uma menor escrita de código;
• TDSServerModule é uma nova classe também incorporada na versão 2009, que herda de TDataModule e também serve como um container. A novidade é que esta já vem com a diretiva de compilação $MethodInfo habilitada, que permite ao DataSnap obter informações da classe do servidor através da RTTI;" [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo