Noções Básicas de Aprendizagem da 4ª Dimensão
O conceito de runtime é uma das ideias mais importantes — e mais incompreendidas — no mundo da 4th Dimension (4D). Ele está no centro de como você transforma um banco de dados criado para uso próprio em uma aplicação distribuível que outras pessoas possam usar, sem entregar as chaves do seu código-fonte ou forçá-las a comprar uma licença completa de desenvolvimento. Esta seção explica o que são os runtimes, como o 4D e o FileMaker Pro (FMP) os abordaram de formas diferentes e quais as restrições práticas que você precisa entender antes de planejar uma implantação.
Principais Conclusões
- Um runtime agrupa um motor (engine) simplificado com os seus arquivos desenvolvidos, para que os usuários finais possam executar a sua aplicação sem possuir o produto de desenvolvimento completo.
- No 4D, a criação de runtimes está integrada na Standard Edition e pode ser distribuída isenta de royalties e sem a necessidade de “binding”.
- O 4D Runtime é uma aplicação separada e redistribuível que executa bancos de dados interpretados e não oferece capacidade de design.
- O 4D Runtime é monousuário por design — ele não pode ser colocado em rede, pois todo o networking do 4D requer um Servidor e licenças de cliente pagas.
- A abordagem do FileMaker Pro exigia uma Developer Edition e uma etapa de binding, e seus arquivos de runtime também não podiam ser colocados em rede.
O que é Realmente um Runtime
Um runtime é um modelo de distribuição. Quando você desenvolve um banco de dados, está trabalhando dentro de um ambiente de desenvolvimento completo que inclui o editor de estrutura, o designer de formulários, o editor de métodos e todas as outras ferramentas de design. Esse ambiente é poderoso — e caro, além de perigoso de entregar a um usuário final que possa, acidentalmente (ou deliberadamente), alterar a sua estrutura.
Um runtime resolve esses três problemas de uma só vez:
- Custo — o usuário final não precisa adquirir o produto de desenvolvimento completo.
- Proteção — o ambiente de design é removido, portanto, a estrutura e os métodos não podem ser editados.
- Foco — o usuário vê apenas a aplicação que você planejou, com seus menus e interface personalizados.
A contrapartida é a capacidade. Um runtime é deliberadamente limitado em relação ao produto completo. Entender exatamente como ele é limitado — e se isso importa para o seu projeto — é a chave de tudo.
Como o 4D e o FileMaker Pro Diferiam
Tanto o 4D quanto o FMP ofereciam runtimes, mas a mecânica era bem diferente. A comparação abaixo reflete o estado dos dois produtos conforme documentado na época.
| Aspecto | 4D (Standard Edition) | FileMaker Pro |
|---|---|---|
| Criação de Runtime | Integrada | Exigia uma Developer Edition separada |
| Binding necessário | Não | Sim — arquivos vinculados ao engine |
| Royalties | Distribuição isenta de royalties | Regido pelos termos da Developer Edition |
| Networking de runtime | Não suportado | Não suportado, mesmo com FMP Server |
| Capacidade de design no runtime | Nenhuma | Nenhuma |
A principal diferença arquitetural é o binding (vinculação). O FMP exigia que você vinculasse seus arquivos ao engine de runtime, e esse engine só funcionaria com arquivos que tivessem sido vinculados a ele.
Relacionado: — A plataforma de banco de dados relacional de longa duração para equipes que precisam de aplicativos personalizados em desktop, web e dispositivos móveis a partir de um único arquivo..
O 4D adotou uma abordagem mais flexível: o engine de runtime é simplesmente uma aplicação separada que pode abrir os bancos de dados que você projetou para ele, sem nenhuma etapa de vinculação. Essa flexibilidade é uma das razões pelas quais os desenvolvedores 4D tendiam a achar a distribuição de runtimes menos trabalhosa.
O 4D Runtime em Detalhes
No 4D, a capacidade de criar runtimes está integrada na Standard Edition. Você pode criar versões de runtime ilimitadas e distribuí-las isentas de royalties. Não há etapa de binding. O engine do 4D Runtime é uma aplicação separada, assim como o 4D Standard, mas permite apenas o uso dos programas 4D criados — não há qualquer capacidade de design.
O 4D Runtime é designado como redistribuível de acordo com o Contrato de Licença da 4th Dimension e pode ser distribuído livremente conforme os termos dessa licença. O 4D Runtime consiste apenas na aplicação que leva este nome.
Nossa escolha: — Uma interface simples de planilha baseada em um banco de dados relacional real, com automações, visualizações e interfaces compartilháveis..
Algumas especificidades comportamentais são extremamente importantes na prática:
- O 4D Runtime só pode executar bancos de dados interpretados. Se você quiser distribuir um banco de dados compilado, precisará do 4D Runtime Classic, adquirido separadamente, que permite runtimes de versões compiladas.
- Ao iniciar o 4D Runtime, o botão “New” (Novo) não está presente na caixa de diálogo de Abrir Banco de Dados. Você não pode criar um novo banco de dados de dentro do runtime.
- A caixa de diálogo de Abrir Banco de Dados permite abrir apenas estruturas interpretadas, e apenas bancos de dados projetados para rodar no ambiente de Menus Personalizados (Custom Menus).
- Se você abrir um banco de dados que não possui barra de menus, o 4D Runtime fecha automaticamente. Isso é um requisito rígido, não um aviso.
- Você não pode entrar no ambiente de Usuário, nem no ambiente de Design. Se tentar acessar o ambiente de Design — por exemplo, usando o atalho Option-f — o 4D Runtime encerra a execução automaticamente.
Este último ponto merece ser internalizado. O runtime não recusa educadamente; ele termina o processo. Este é um mecanismo de segurança deliberado, mas significa que seu banco de dados deve estar configurado corretamente antes de você criar o runtime, ou seus usuários encontrarão um obstáculo imediato.
Por que Runtimes Não Podem Ser Colocados em Rede
Esta é a restrição que mais surpreende as pessoas: runtimes 4D não podem ser colocados em rede. À primeira vista, isso parece uma limitação grave. Mas faz sentido assim que você compreende a arquitetura de licenciamento do 4D.
Toda rede com 4D requer um Servidor. Os próprios Clientes são gratuitos para distribuir, mas uma licença para cada assento ainda deve ser adquirida. Como o modelo de servidor e cliente já existe como o caminho suportado para acesso multiusuário, a única finalidade do runtime é o uso de usuário único. O runtime não compete com o Servidor — ele ocupa um nicho totalmente diferente.
Portanto, a árvore de decisão é simples:
- Usuário único, sem servidor → um runtime é o veículo de distribuição correto.
- Múltiplos usuários simultâneos → você precisa do 4D Server e de licenças de cliente, não de um runtime.
Tentar forçar um runtime a assumir um papel multiusuário é um beco sem saída. Planeje sua arquitetura em torno disso desde o início.
Como decidir se um runtime se adapta ao seu projeto
Antes de se comprometer com a distribuição via runtime, analise honestamente estes critérios:
- É para usuário único? Se mais de uma pessoa precisar de acesso simultâneo a dados compartilhados, o runtime é a ferramenta errada.
- Interpretado ou compilado? O 4D Runtime padrão executa apenas bancos de dados interpretados. Se você precisa de distribuição compilada, reserve orçamento para o 4D Runtime Classic.
- Seu banco de dados usa menus personalizados? Ele deve usar, e deve ter uma barra de menus, ou o runtime será encerrado ao abrir.
- Você removeu todas as dependências de tempo de design? Qualquer método ou formulário que pressuponha acesso ao design falhará.
- Você entende os termos de licença? A redistribuição é permitida, mas é regida pelo Contrato de Licença da 4th Dimension — leia-o em vez de presumir.
Se você puder responder a todas as cinco perguntas com confiança, o runtime é uma maneira limpa e livre de royalties de entregar seu trabalho.
Lista de Verificação de Preparação Prática
Construir um runtime tem menos a ver com um único comando e mais com a preparação do seu banco de dados para que ele se comporte corretamente quando o ambiente de design não estiver mais presente. Uma lista de verificação útil:
- Projete uma barra de menus adequada e conduza a aplicação através do ambiente de Menus Personalizados.
- Teste primeiro no ambiente do Usuário. Se seu banco de dados se comportar mal lá, ele se comportará ainda pior em um runtime.
- Remova ou proteja qualquer código que pressuponha acesso ao design, incluindo qualquer coisa acionada por atalhos do modo de design.
- Confirme se o banco de dados abre corretamente, sem nenhuma caixa de diálogo que espere um botão “Novo”.
- Decida entre interpretado vs. compilado cedo, pois isso determina se você precisará do 4D Runtime Classic.
- Documente as obrigações de licença que você está transferindo para seus usuários.
O tema recorrente é que o runtime não tolera suposições. Tudo o que o ambiente completo permitia que você ignorasse deve ser resolvido previamente.
Onde os Runtimes se Encaixam na História Mais Ampla do 4D
Os runtimes são parte de um quadro de implantação maior que inclui requisitos de sistema, estruturas de programa, diferenças de rede, o compilador, hospedagem web, gráficos de dados, plug-ins e utilitários. Cada um destes interage com a decisão do runtime:
- O compilador determina se você pode entregar a versão interpretada ou se precisa de um runtime compilado.
- A rede determina se um runtime é viável ou não.
- Os plug-ins devem ser compatíveis com o mecanismo de runtime que você distribui.
- A hospedagem web é um canal de entrega totalmente separado, distinto da distribuição de runtime para desktop.
Pensar no runtime como a opção de “entrega desktop para usuário único” — posicionada ao lado da implantação multiusuário baseada em servidor e da implantação web — mantém todo o cenário coerente. Para informações sobre a plataforma em si, consulte o artigo da Wikipedia sobre 4th Dimension, e para a categoria mais ampla de ferramentas que permitem que pequenas equipes criem aplicações de negócios, a visão geral da Wikipedia sobre plataformas de desenvolvimento de baixo código é uma referência útil. O FileMaker, o outro produto discutido aqui, está documentado em FileMaker.
Perguntas Frequentes
O que é um runtime 4D?
Um runtime 4D é uma versão simplificada e redistribuível da aplicação 4D que pode executar os bancos de dados que você desenvolveu, mas não oferece capacidade de design. Ele permite que você distribua seu trabalho aos usuários finais sem exigir que eles comprem o produto de desenvolvimento completo. Ele está integrado na 4D Standard Edition e pode ser distribuído livre de royalties.
Um runtime 4D pode ser usado por várias pessoas em uma rede?
Não. Runtimes 4D não podem ser conectados em rede. Toda rede em 4D requer um Servidor e, embora os clientes sejam gratuitos para distribuir, uma licença deve ser adquirida para cada assento. Por isso, a única finalidade do runtime é o uso de usuário único, e implantações multiusuário devem usar o 4D Server.
Qual é a diferença entre 4D Runtime e 4D Runtime Classic?
O 4D Runtime padrão só pode executar bancos de dados interpretados. Se você precisar distribuir um runtime de um banco de dados compilado, deverá adquirir o 4D Runtime Classic separadamente. A escolha entre eles depende inteiramente de você pretender entregar código interpretado ou compilado.
Por que o 4D Runtime fecha quando tento abrir o ambiente de Design?
Isso é intencional. O runtime remove deliberadamente toda a capacidade de design, portanto, tentar entrar no ambiente de Design — por exemplo, com o atalho Option-f — faz com que ele seja encerrado automaticamente. Da mesma forma, abrir um banco de dados sem barra de menus causa a saída imediata, pois o runtime espera bancos de dados construídos para o ambiente de Menus Personalizados.
O FileMaker Pro exige vinculação (binding) para seus runtimes?
Sim. O FMP exigia que você vinculasse seus arquivos ao mecanismo de runtime, e esse mecanismo só funcionaria com arquivos vinculados a ele. Também exigia uma Developer Edition separada. O 4D, por outro lado, não possui etapa de vinculação e inclui a criação de runtimes na Standard Edition.
Posso criar um novo banco de dados de dentro do 4D Runtime?
Não. Ao iniciar o 4D Runtime, o botão Novo não está presente na caixa de diálogo Abrir Banco de Dados. A caixa de diálogo permite abrir apenas estruturas interpretadas e apenas bancos de dados projetados para serem executados no ambiente de Menus Personalizados. A criação e o design do banco de dados devem ocorrer previamente no ambiente de desenvolvimento completo.
Perguntas frequentes
O que é um tempo de execução 4D?
Um tempo de execução 4D é uma versão simplificada e redistribuível da aplicação 4D que pode executar os bancos de dados que você desenvolveu, mas não oferece capacidade de design. Ele permite distribuir seu trabalho aos usuários finais sem exigir que eles comprem o produto de desenvolvimento completo. Está integrado na 4D Standard Edition e pode ser distribuído sem royalties.
Um tempo de execução 4D pode ser utilizado por múltiplas pessoas em uma rede?
Não. Os tempos de execução 4D não podem ser conectados em rede. Toda rede em 4D requer um servidor, e embora os clientes sejam livres para distribuir, uma licença deve ser adquirida para cada assento. Por isso, o único propósito do tempo de execução é o uso monousuário, e as implantações multiusuário deveriam usar 4D Server.
Qual é a diferença entre 4D Runtime e 4D Runtime Classic?
4D Runtime Standard só pode executar bancos de dados interpretados. Se necessita distribuir um tempo de execução de um banco de dados compilado, deve adquirir 4D Runtime Classic separadamente. A escolha entre eles depende inteiramente se você pretende enviar código interpretado ou compilado.
Por que 4D Runtime fecha quando tento abrir o ambiente Desenho?
Isso ocorre intencionalmente. O tempo de execução remove deliberadamente todos os recursos de design, portanto, tentar entrar no ambiente de Design — por exemplo, com o atalho Opção-f — faz com que ele saia automaticamente. Da mesma forma, abrir um banco de dados sem barra de menus causa uma saída imediata, pois o tempo de execução espera bancos de dados construídos para o ambiente de Menus Personalizados.
O FileMaker Pro exige vinculação para seus tempos de execução?
Sim. O FMP exigia que você vinculasse seus arquivos ao mecanismo de tempo de execução, e esse mecanismo só funcionaria com arquivos vinculados a ele. Também exigia uma Developer Edition separada. 4D, por outro lado, não tem nenhuma etapa vinculativa e inclui a criação em tempo de execução na Standard Edition.
Posso criar um novo banco de dados desde 4D Runtime?
Não. Ao iniciar 4D Runtime, o botão Novo não está presente na caixa de diálogo Abrir banco de dados. A caixa de diálogo permite abrir apenas estruturas interpretadas e apenas bancos de dados projetados para serem executados no ambiente de menus personalizados. A criação e o design do banco de dados devem acontecer antecipadamente em todo o ambiente de desenvolvimento.
Crie um portal do cliente em um dia
Um construtor de banco de dados sem código voltado para portais, diretórios e ferramentas internas — com preços fixos em vez de taxas por usuário.