Por que eu devo ler este artigo:Nesse artigo será visto como podem ser desenvolvidas aplicações web utilizando o Delphi. O leitor verá como é possível desenvolver para a internet sem a necessidade de ter conhecimento de outra linguagem server-side, como PHP ou Java, e até mesmo linguagens client-side como HTML. Este assunto é útil para quem deseja distribuir suas aplicações de forma diferente, indo além dos sistemas desktops tradicionalmente objetivados por quem usa Delphi. Além disso, os recursos que serão abordados neste artigo são úteis também por permitirem a criação de projetos web de forma muito semelhante àqueles para desktop, reduzindo a necessidade de conhecer novas técnicas e linguagens de desenvolvimento.

Devido à grande evolução da Web nos últimos anos, temos observado um amplo movimento de aplicações que antes só era possível se desenvolver para desktop, devido à sua complexidade e formas de interação com usuários, sendo desenvolvidas para a internet.

À medida que os usuários intensificavam o uso da internet, a necessidade do acesso a dados e funcionalidades a partir de locais distintos, onde muitas vezes não era possível ou viável ter uma aplicação desktop instalada, também se tornava maior. Aliado a isso, requisitos e possibilidades como escalabilidade, manutenção centralizada e, mais recentemente, a evolução da computação nas nuvens fizeram com que as aplicações web ganhassem considerável importância no mercado de software. Nos dias atuais, inclusive, a criação de novos projetos apenas para ambiente desktop tem reduzido consideravelmente, devido à mudança no perfil dos usuários, sejam eles individuais ou empresas.

Uma das primeiras abordagens para alcançar esse objetivo era chamada de RIA (Rich Internet Applications), aplicações web que tentavam reproduzir os padrões de interface normalmente encontrados em ambiente desktop. Esse modelo se mostrava interessante principalmente por que requeria dos desenvolvedores poucas mudanças nas técnicas geralmente utilizadas em projetos desktop, bem como oferecia aos clientes finais uma experiência de uso muito próxima daquela com a qual estavam acostumados.

Independentemente do tipo de interface que será criado, desenvolver essas aplicações geralmente requer o conhecimento de uma linguagem server-side, além daquelas utilizadas no client-side. Isso, no entanto, pode se tornar uma dificuldade para desenvolvedores autônomos ou mesmo equipes que, por algum motivo, não tenham disponibilidade (ou interesse) para estudar tecnologias diferentes daquelas com as quais já têm experiência.

Para acompanhar essa evolução, o Delphi conta com recursos para permitir o desenvolvimento de aplicações web a partir do conhecimento e técnicas já aplicados nos projetos desktop. Alguns desses recursos fazem parcialmente e outros completamente a abstração de técnicas ou linguagens server-side e client-side, evitando a necessidade de utilizar outras linguagens de programação.

Neste artigo conheceremos, além de recursos disponíveis de forma nativa no Delphi, como o Intraweb e DataSnap, também frameworks como o UniGUI e Raudus para o desenvolvimento de soluções web.

Como funciona uma aplicação web

Uma aplicação web, diferente daquelas para desktop, têm seu processamento em um servidor na Web e não localmente. O cliente, ao acessar o URL (Uniform Resource Locator) desejado, faz uma requisição a um servidor, que a processa e envia como resposta um arquivo, geralmente HTML. O tipo desse retorno (HTML, XML, JSON, etc.) determina como o browser deve apresentar seu conteúdo.

Ao receber uma requisição do cliente, o servidor processa as informações, consultando-as e persistindo-as no banco de dados, arquivos, etc. Em seguida um resultado é retornado para o cliente e pode conter diversos tipos de arquivos, imagens, etc. A Figura 1 ilustra esse processo.

Figura 1. Representação do funcionamento de uma aplicação web

Server-side

Server-side, também conhecido como back-end, é o termo utilizado para operações realizadas no lado do servidor em uma arquitetura do tipo client-server. Neste lado da arquitetura são realizadas operações como acesso ao banco de dados, autenticação e autorização. Esse tipo de processamento dá aos sites e aplicações web o dinamismo do qual necessitam, pois sem isso as páginas na internet seriam puramente estáticas, apenas compostas por linguagens do front-end.

Entre as linguagens mais utilizadas no back-end das aplicações estão Java, C# (com o ASP.NET), PHP, dentre outras. Estas possuem recursos para tratar as requisições HTTP, geralmente enviadas através de navegadores da internet, e retornar algum resultado que seja processável pelo cliente, como uma página HTML, um arquivo, um documento JSON ou XML.

Client-side

Client-side, comumente chamado também de front-end, é o termo utilizado para operações realizadas no lado do cliente, ou seja, aquelas que geralmente são feitas no browser. A cargo das linguagens desse lado ficam a construção das interfaces gráficas utilizadas pelos usuários ao acessarem uma página na Web, bem como comportamentos típicos desse lado da arquitetura, como validação de formulários.

Intraweb

Intraweb é uma biblioteca de componentes para desenvolvimento de aplicações dinâmicas para web disponível para Delphi, Kylix e Visual Basic .NET. Estas, diferente das aplicações tradicionais para web, geram apenas um arquivo contendo todo o projeto desenvolvido, com exceção da base de dados e figuras. Ou seja, não temos arquivos HTML, CSS e JS para cada página.

Ao criar um projeto Intraweb deve-se somente utilizar componentes das paletas dessa biblioteca, devido ao fato de eles serem renderizados como HTML. Os demais componentes visuais não surtiriam o efeito esperado se utilizados nessas aplicações.

No Delphi existem quatro paletas de componentes específicas para trabalhar com esse tipo de projeto:

  • IntraWeb Standard: Esta paleta se assemelha à Standard da VCL (Visual Component Library). Nela estão localizados os componentes mais simples do Intraweb, como labels, buttons, comboboxes, timers, grids, checkboxes, menus, além de outros específicos do ambiente web, como link, URL, applet, flash, layers, etc.;
  • IntraWeb Data: Semelhante à antiga paleta Data Controls da VCL. Aqui estão localizados os componentes para controle da base de dados, como DBGrid, DBLabel, DBEdit, DBNavigator. Assim como os da VCL, eles são ligados com um Dataset; ...
    Quer ler esse conteúdo completo? Tenha acesso completo