O desenvolvimento de software vem evoluindo desde a invenção da primeira linguagem de programação de computador.

No início, programadores de computador entraram no código como instruções de máquina em binário. Mais tarde, com linguagens de programação como FORTRAN, eles só precisavam escrever os programas como texto. Após várias melhorias em idiomas e tecnologias, os programadores começaram a usar o Integrated Development Environments (IDE) e que eventualmente criaram o primeiro RAD IDE (Rapid Application Development).

Borland Delphi (RAD Studio) evoluiu a partir do Turbo Pascal IDE e tornou-se um dos mais bem-sucedidos desenvolvimentos da década de 1990. A lógica do programa ainda era texto, mas a interface do usuário tinha um designer visual, e os componentes não visuais encapsulavam o acesso ao banco de dados e muitos outros objetos úteis. O RAD Studio mantém o seu atributo "rápido" até agora.

O sucesso do RAD Studio foi o resultado de uma longa evolução criando aplicativos para a área de trabalho do Windows.

Por outro lado, o idioma original da Web, HTML, começou sua jornada em 1990 como linguagem de hipertexto estático. Mesmo após quase 30 anos, não há nada equivalente à simplicidade e elegância do RAD Studio para criar aplicativos da Web. Claro, isso é uma questão de opinião, mas quando um desenvolvedor da Web tenta acessar a funcionalidade de um aplicativo de desktop na Web, ele precisa aprender várias linguagens de programação e ferramentas para amarrar tudo juntos; muitos desses projetos falham catastróficamente.

As versões mais recentes do RAD Studio permitem a criação de aplicativos multi-plataforma, aproveitando sempre o conceito RAD. No entanto, a estrutura subjacente que suporta essa habilidade sempre foi direcionada a um dispositivo local (PC, tablet, smartphone) e não à Web.

Vale a pena mencionar que as aplicações da Web e as experiências de desktop como Single Page Applications são agora o foco da indústria de TI. A UI da Web está melhorando todos os dias, mas ainda falta a simplicidade do desenvolvimento da área de trabalho.

Um aplicativo Web moderno é diferente de um aplicativo local. A maior diferença é que ele deve atender a vários usuários remotos. No entanto, o que coloca dificuldades significativas é que o usuário interage com o aplicativo usando um navegador que executa código JavaScript (seguindo o padrão HTML5).

Os programadores adoram a programação e alguns ambientes de desenvolvimento encorajam esse tipo de comportamento. Por exemplo, o Visual Studio vem com vários designers visuais, mas muitos desenvolvedores tornam-se poliglotas:

  • Arquivos de configuração XML
  • Arquivos XAML por trás do designer visual usado pelo WPF.
  • Código fonte C #.
  • código de banco de dados (T-SQL, PL / SQL, em vez de usar um ORM como Entity Framework).
  • Código JavaScript / TypeScript.
  • Angular / jQuery / Bootstrap / Django / Backbone / Express / Knockout / React / Ember scripts.

Por mais que seja para desfrutar o seu trabalho, um engenheiro de software ou desenvolvedor tem um objetivo principal: entregar a solução ou o aplicativo solicitado. Se houver um caminho mais curto para alcançar esse objetivo, será melhor usá-lo. É possível ter um ambiente RAD para criar aplicativos da Web? Sim, já está aqui.
RAD Studio + Sencha Ext JS + uniGUI

Esta solução precisa integrar várias peças:

O RAD Studio fornece um ambiente RAD com componentes que suportam várias plataformas de destino.
A interface do usuário, acessível com um navegador da Web, deve ser tão rica quanto as aplicações de desktop atuais. O Sencha Ext JS inclui mais de 115 componentes; alguns deles são equivalentes aos usados ​​na área de trabalho, outros são apenas para a plataforma da Web, mas muitos deles são mais poderosos que os componentes originais da Delphi.
Outra ferramenta deve ser a cola entre RAD Studio e Sencha Ext JS.

Como se juntar ao RAD Studio e ao Sencha Ext JS para poder criar e implantar aplicativos da Web?

Esta nova ferramenta irá apresentar várias funcionalidades:

  1. Um novo tipo de projeto para aplicativos da Web.
  2. Um novo designer de formulários e assistentes para criar a interface do usuário.
  3. Um conjunto completo de componentes da Web disponíveis como componentes Delphi nas paletas usuais que, em tempo de execução, gerarão dinamicamente o código JavaScript e os componentes Ext JS.
  4. Uma estrutura de tempo de execução que permitirá que o aplicativo seja executado como um servidor Web e resolver solicitações de clientes remotos ao retornar as páginas HTML5 com o código JavaScript correspondente.

Em suma, esta ferramenta deve fornecer um mapeamento entre os componentes Sencha e Delphi e uma estrutura para implantação e execução do aplicativo na Web.

Esta última peça é uniGUI. É o resultado de mais de sete anos de desenvolvimento, com uma comunidade que o utilizou em aplicações reais e forneceu feedback, ajudando a moldar o produto final.


.Características principais do uniGUI.

Como um aplicativo de desktop típico é um usuário único, enquanto as aplicações web são multiusuários, o uniGUI fornece uma estrutura que gerencia várias sessões e os recursos mais significativos. Essas mudanças são naturais para um desenvolvedor Delphi, e eles ajudam durante o processo de portar ou criar uma nova aplicação.

UniGUI Wizards fornecem os meios para criar formulários e módulos de dados. Como resultado, o framework administra-os em tempo de execução. Nem os formulários nem os módulos de dados usam variáveis ​​globais (permitindo o acesso multiusuário a esses recursos). As próximas versões do uniGUI adicionarão mais recursos relacionados ao gerenciamento automático de recursos.

Além da estrutura que suporta o aplicativo da Web em tempo de execução, o uniGUI expõe os componentes do Sencha Ext JS como componentes da Delphi nativos em várias paletas de controle. Não há necessidade de saber JavaScript, Ext JS ou detalhes sobre como usar os componentes Sencha. Os usuários avançados ainda podem usar o código JavaScript para acessar os componentes Sencha em tempo de execução e para executar chamadas Ajax de volta ao servidor.

É possível criar novos componentes, herdando de componentes existentes ou convertendo quadros. Também é possível criar novos componentes com base em fornecedores Ext JS de terceiros (como o Bryntum). A capacidade de implantar a aplicação web de várias maneiras facilita o desenvolvimento e simplifica seu uso em ambientes de produção: a implantação autônoma permite uma depuração mais fácil executando o aplicativo localmente. A opção Serviço do Windows pode ser útil para aplicações pequenas e médias. A implantação do aplicativo como um módulo ISAPI permite que o cliente use qualquer host de servidor compatível (como o Internet Information Server). O HyperServer que se aproxima pode limitar o número de sessões por processo. Se o aplicativo Delphi tiver problemas com a concorrência, cada sessão pode ser executada sozinha em um processo.

Como o uniGUI mapeia os componentes Sencha como controles Delphi e fornece uma estrutura para suportar o aplicativo em tempo de execução, ele também deixa muito espaço para expansão em cima de isto. É um mercado para controles compatíveis com uniGUI. Mesmo os controles Ext JS existentes podem ser personalizados usando a tela da Web com HTML / CSS / JS. Poderia ser possível modelar aplicativos da web usando editores personalizados ou suporte de modelagem do RAD Studio Architect para focar a estrutura em aplicativos centrados em banco de dados com controles robustos e amplamente utilizados.
A criação de grandes aplicações da Web, como as das indústrias de saúde, seguros, financeiras ou ERP, requer uma camada adicional em cima da uniGUI (a ser fornecida pelos clientes, empresas de consultoria, fornecedores de ferramentas ou próprio Embarcadero)

.Conclusão.

Uma característica uniGUI importante é a capacidade de criar uma camada em cima das tecnologias da web, escondendo esses detalhes dos desenvolvedores. Isso reduzirá a necessidade de tarefas repetitivas, como geração de código para JS, CSS e vários outros detalhes. Nesse sentido, pode-se dizer que o uniGUI é para as tecnologias da Web o que a VCL & Delphi é para a API do Windows. Isso ajudará os desenvolvedores a manter seu foco no desenvolvimento de lógica de negócios ao invés de trabalhar em detalhes sobre tecnologias da web.

No mundo das TI de hoje, as tecnologias da web estão evoluindo mais rapidamente do que qualquer coisa no passado. Cada mês, ouvimos falar de uma nova estrutura JS ou de alguma outra nova tecnologia legal. É esperado, uma vez que o desenvolvimento de aplicações web ainda está longe de ser perfeito. Ainda há níveis desnecessários de complexidade e muitas tarefas repetitivas para cada novo projeto.

Precisamos de uma ferramenta que possa reduzir essa complexidade e cuidar dessas tarefas repetitivas. Não é o principal motivo pelo qual precisamos de computadores em primeiro lugar? Delphi fez isso para a área de trabalho do Windows em meados dos anos 90. Seria totalmente irracional pensar que não podemos fazer o mesmo para a web! UniGUI faz uma ponte sobre o enorme fosso entre aplicativos de desktop e web:

  • Ele oferece aos desenvolvedores do Delphi, a longa vontade de continuar usando o mesmo ambiente de RAD para desenvolvimento da Web. Atualmente, ele trabalha no designer VCL familiar, mesmo que seja possível usar um designer diferente, capaz de renderizar todos os componentes Sencha corretamente (como FieldSets).
  • Ele permite que aplicativos de desktop baseados em Delphi existentes sejam convertidos no local, para que eles possam ser executados na Web. Um feito que ninguém mais conseguiu tão limpo em qualquer lugar do setor de software.

Adicionar uniGUI ao Delphi torna o caminho mais rápido para a Web !

Texto de David Izada Rodriguez
Original em inglês