DataSnap: Migrando do dbExpress para FireDAC

Veja nesse artigo como substituir o uso do dbExpress pelo FireDAC em aplicativo multi camadas realizando uma migração no DataSnap.

Fique por dentro
O presente artigo tem como objetivo mostrar o uso da mais nova biblioteca de acesso a dados do Delphi, o FireDAC, em projetos multicamadas DataSnap. Logo, a intenção aqui é induzir o desenvolvedor, de forma natural, a tirar proveito do que há de mais novo no cenário da ferramenta.

Para isso, serão mostradas práticas já conhecidas deste tipo de desenvolvimento, baseadas tradicionalmente no dbExpress, que até então era tido como a principal opção nativa para acesso a dados no processo construtivo. Adicionalmente, outra motivação pela escolha do tema se dá pela crescente adoção, por parte da comunidade, deste segmento de projeto (DataSnap).

A justificativa para isso incide diretamente sobre diversos fatores, cujos principais são: independência de tecnologia de banco de dados, escalabilidade, organização de código, robustez arquitetural, centralização das regras de negócio e clientes leves. Para este último, destaque para as recentes aplicações nativas Mobile (Android e iOS).

Em suma, dbExpress e FireDAC podem ser definidos como sendo frameworks de acesso a dados que atualmente integram a suíte de recursos do Delphi. Na mais recente versão da ferramenta, a XE6, ambas são naturalmente tidas como as principais opções, em termos de componentes, para a construção de aplicações que envolvam banco de dados.

Neste sentido, historicamente, dois tipos de projetos se destacam. Um deles está relacionado ao provimento de aplicações tradicionais de banco de dados, enquanto que o outro também acaba por englobar aplicações de banco de dados, porém dentro de um contexto multicamadas, através do uso da tecnologia DataSnap.

dbExpress

De forma abrangente, o dbExpress é uma tecnologia surgida ainda na versão 6 do Delphi, que contemplava uma série de elementos destinados à conectividade e acesso a servidores de bancos de dados relacionais.

Em suma, tais elementos se refletiam em classes, drivers e componentes que, na prática, contribuíam de forma efetiva no desenvolvimento de aplicações de banco de dados com a ferramenta.

Inicialmente, toda a fundação do framework foi escrita em linguagens mais tradicionais da época, como C e C++, contudo, no Delphi 2007 todo este cenário é alterado, mediante uma total reescrita do framework para a Delphi Language, tornando-o essencialmente nativo.

Seguindo por esta evolução, no release seguinte do IDE (Delphi 2009) o dbExpress passa a, efetivamente, fazer parte do contexto DataSnap, a partir do provimento de um driver cliente exclusivo para a tecnologia.

A partir deste momento, o dbExpress acabava por contemplar não somente servidores de banco de dados, mas também servidores de aplicação. Na prática, os desenvolvedores estavam então aptos a conectar suas aplicações clientes nativas a Servidores DataSnap, por meio do uso de um tradicional TSQLConnection associado ao referido driver.

Por fatores como este, o uso do dbExpress em projetos DataSnap envolvendo dados, passou a ser algo cada vez mais natural no cotidiano de boa parte da comunidade, que prezava pela adoção de soluções nativas.

Em contribuição a este prognóstico, está a própria característica dos DataSets da biblioteca do dbExpress – TSQLDataSet, TSQLQuery e TSQLTable – que são tidos como unidirecionais e, portanto, não suportam aspectos como cache de dados e navegabilidade plena entre os registros.

Logo, sua efetiva utilização fica condicionada à utilização de elementos do tipo TDataSetProvider e TClientDataSet que, acabam por contribuir de forma positiva ao cenário multicamadas de projetos DataSnap.

Isto porque, uma vez que os dados são obtidos a partir do Servidor para a aplicação Cliente, os mesmos são mantidos em memória local, não exigindo uma conexão direta, ativa e permanente com o referido servidor.

Anteriormente aos recentes releases do IDE (vide XE5 e XE6), o dbExpress ocupava, de forma soberana, o posto de “principal opção nativa para acesso a dados”. Já no cenário atual do Delphi, ainda sob o aspecto nativo, o dbExpress continua sendo peça chave para a conectividade cliente em projetos DataSnap, todavia, sua posição relacionada a acesso a dados foi totalmente alterada, sendo preterida pela nova tecnologia denominada FireDAC.

FireDAC

No Delphi, o FireDAC envolve um conjunto de componentes de acesso a dados tidos como “Universal Data Access Components”, direcionados ao desenvolvimento de aplicações de banco de dados cross-platform. Logo, ele se mostra útil na construção de projetos para as duas principais plataformas suportadas pela ferramenta atualmente, que inclui a tradicional Desktop, por meio dos sistemas operacionais Microsoft Windows e Mac OS, bem como a recente Mobile, refletida nos ambientes móveis Android e iOS. Em decorrência disso, diversos são também os tipos de dispositivos atendidos neste cenário, pontualmente PCs, Tablets e Smartphones.

Mediante sua singular arquitetura, o FireDAC provê acesso direto, nativo e de alta performance a uma extensa gama de SGBDs distintos. Na versão mais recente do Delphi, a XE6, a listagem oficial inclui nominalmente 13 nomes, que incluem fontes intermediárias ODBC, servidores de banco de dados e bases locais:

· Advantage Database Server;

· Sybase SQL Anywhere;

· IBM DB2 Server;

· Firebird;

· Embarcadero InterBase;

· Informix;

· Microsoft Access Database;

· Microsoft SQL Server;

· MySQL;

· ODBC;

· Oracle;

· PostgreSQL;

· SQLite." [...] continue lendo...

Artigos relacionados