Quem busca isso já decidiu migrar.
Quem busca migrar Delphi para web já tentou as alternativas. Contratar outro programador Delphi é cada vez mais caro e demorado. Comprar um sistema de prateleira significa perder vinte anos de regras que só existem no seu sistema. Reescrever do zero com uma equipe interna costuma parar no meio. A pergunta que resta é como trocar sem risco, e a resposta é não trocar tudo de uma vez.
O que torna o Delphi diferente de outros legados é onde a lógica mora. Está nos eventos dos formulários, misturada com a tela, e no banco, em stored procedures e triggers que ninguém lê há anos. Não existe uma camada de domínio para copiar. Por isso a primeira etapa não escreve código novo: extrai as regras, com ajuda de IA para ler o código e com validação de quem usa o sistema, até cada regra estar escrita em português e aprovada.
A segunda decisão é a ordem. O primeiro módulo a migrar é o que mais dói hoje, não o mais fácil: a tela que a equipe externa precisa acessar de fora, o relatório que trava, o cadastro que o cliente deveria preencher sozinho. Ele entra em uso em seis semanas, sobre o mesmo banco, e o Delphi continua rodando para o resto. É assim que a empresa ganha algo antes do fim do projeto e aprende a confiar no processo.
O que do Delphi entrega, o que a web em Go e TypeScript aceita.
Delphi, a origem
Sistemas de mesa escritos entre 1996 e 2012, quase sempre com Firebird, Interbase ou SQL Server, instalados em cada máquina da empresa. Funcionam, mas cada vez menos gente sabe mantê-los. Delphi 7 não recebe atualização desde 2002; versões recentes existem, mas quem busca migrar costuma estar na 7 ou na 2007.
- Regras de negócio nos formulários: a lógica mora em eventos de botão e de campo, misturada com a tela. Não existe uma camada de domínio para copiar.
- Banco com lógica dentro: stored procedures, triggers e generators em Firebird ou SQL Server carregam parte das regras.
- Relatórios em FastReport, QuickReport ou Rave, com SQL embutido no arquivo do relatório.
- Fiscal: emissão de NF-e, NFC-e e boletos por componentes como ACBr, que precisam de equivalente no destino.
- Dados acessíveis direto no banco, o que permite rodar o sistema velho e o novo sobre a mesma base durante a transição.
web em Go e TypeScript, o destino
Sistema acessado pelo navegador, com API em Go, interface em TypeScript e banco PostgreSQL. Roda num servidor só ou na nuvem, atualiza para todos ao mesmo tempo e conversa com qualquer integração moderna.
- Mesmo banco no começo: os primeiros módulos web leem e escrevem na base atual, e o sistema antigo continua rodando ao lado.
- Regras reescritas com teste: cada regra extraída vira função testada, e a comparação com o sistema velho é automática.
- Usuários e permissões migram com perfis equivalentes; senha é redefinida no primeiro acesso.
- Relatórios reimplementados como consultas versionadas, com exportação em PDF e planilha.
- Fiscal por biblioteca mantida ou por serviço de emissão, escolhido conforme o volume.
Item por item, sem surpresa na virada.
| Item | Migra? | Como |
|---|---|---|
| Regras de negócio | migra | Extraídas dos formulários, das procedures e das triggers, escritas em linguagem clara, validadas com quem usa, e reescritas como funções testadas. Cada regra tem origem e teste rastreáveis. |
| Banco de dados | parcial | No início, o mesmo banco: os módulos web leem e escrevem onde o Delphi lê e escreve. A troca para PostgreSQL acontece no fim, módulo a módulo, com validação registro a registro. |
| Telas | não migra | Nenhuma tela é copiada. Cada fluxo é redesenhado para o navegador e para o celular, mantendo os atalhos e a ordem de campos que a equipe já tem na memória. |
| Relatórios | migra | O SQL embutido no FastReport ou QuickReport é extraído e vira consulta versionada, com saída em tela, PDF e planilha. |
| Emissão fiscal: NF-e, NFC-e, boleto | migra | O que hoje roda em componentes como ACBr é substituído por biblioteca mantida ou serviço de emissão, escolhido pelo volume. Homologado na SEFAZ antes de entrar. |
| Usuários e permissões | migra | Perfis equivalentes, senha redefinida no primeiro acesso, e login único por e-mail corporativo quando existir. |
| Integrações: bancos, arquivos, equipamentos | parcial | Remessa e retorno bancário, importação de arquivos e integrações por pasta compartilhada são refeitas. Balança, impressora fiscal e leitor na máquina local exigem um agente pequeno instalado. |
| Histórico completo | migra | Nada é cortado. Como o banco é o mesmo durante a transição, todo o histórico está disponível desde o primeiro módulo. |
| Código Delphi | não migra | Não é traduzido linha a linha. Isso produz um sistema web com os defeitos do antigo e nenhuma das vantagens do novo. |
"Parcial" quer dizer que migra com perda declarada ou com trabalho manual no meio. "Não migra" quer dizer que é recriado no destino ou aposentado, sempre com a sua decisão registrada no inventário.
O prazo é do porte, não da vontade.
| Porte | Prazo | Preço |
|---|---|---|
| Até 15 telas, um banco, sem fiscal | 6 a 10 semanas | R$ 45 a 90 mil |
| Cerca de 40 telas, fiscal e relatórios (típico) | 5 meses | R$ 180 mil |
| Até 80 telas, várias filiais, integrações bancárias | 7 a 10 meses | R$ 260 a 420 mil |
| Acima disso, ou vários sistemas Delphi | por módulo | a partir de R$ 420 mil |
Prazo em semanas corridas a partir do inventário aprovado. O que mais estica é o que depende de terceiros: ERP, gateway, equipamento, e a sua própria revisão do conteúdo.
R$ 180.000, e o que faz subir.
Referência para: Sistema de cerca de 40 telas, um banco, emissão fiscal, 15 relatórios, até 50 usuários. Pago por módulo entregue, não por mês.
Está dentro
- Auditoria de legado: mapa de telas, procedures, triggers, relatórios e integrações, com score de risco por módulo.
- Extração e documentação das regras de negócio, validadas com a equipe que usa o sistema.
- Reescrita módulo a módulo em Go e TypeScript, com testes que comparam o resultado com o Delphi sobre os mesmos dados.
- Operação em paralelo sobre o mesmo banco, com o Delphi rodando até o último módulo.
- Migração do banco para PostgreSQL ao final, com validação registro a registro e rollback testado.
- Hospedagem configurada, backup, monitoramento e 90 dias de acompanhamento depois do último módulo.
Fica fora
- Servidor ou nuvem, certificado digital e serviço de emissão fiscal, quando escolhido.
- Funcionalidades que não existem no Delphi hoje. Entram como escopo novo, orçado à parte.
- Agentes locais para equipamentos além de impressora e balança padrão.
- Treinamento presencial fora de Porto Alegre.
O que faz o preço subir, em ordem de frequência:
O que dá errado, e o que fazemos antes.
Regra que só existe numa trigger
Uma trigger de 2009 que ajusta o estoque em certa condição não aparece em tela nenhuma. Reescrever só pelo que se vê deixa a regra para trás e o erro aparece meses depois. Mitigação: a auditoria lê o banco inteiro, não só o código Delphi, e cada procedure e trigger tem destino declarado.
Código-fonte incompleto
É comum o executável em produção ser mais novo que o fonte guardado. Mitigação: a auditoria compara versão do executável com o fonte e, onde falta, a regra é extraída pelo comportamento, com testes de caixa-preta sobre o sistema real.
Equipe que não larga o Delphi
Se o módulo novo é pior de usar que a tela antiga, a equipe volta ao Delphi e os dois ficam inconsistentes. Mitigação: o primeiro módulo é o que mais dói hoje, o desenho mantém atalhos e ordem de campos, e a tela antiga do módulo migrado é desativada na data combinada.
Fiscal homologado tarde
A emissão de NF-e tem detalhes por estado e por tipo de operação que só aparecem em homologação. Mitigação: o módulo fiscal entra cedo no cronograma e roda em homologação na SEFAZ por semanas antes de assumir.
Dois sistemas escrevendo o mesmo registro
Durante o paralelo, o Delphi e o web escrevem no mesmo banco. Sem regra clara, um sobrescreve o outro. Mitigação: cada tabela tem um dono por fase, e o sistema que não é dono só lê.
Banco com integridade só no código
Firebird e SQL Server antigos costumam ter relações sem chave estrangeira, mantidas pelo código Delphi. Mitigação: as relações implícitas são mapeadas na auditoria e viram restrições declaradas no PostgreSQL, com relatório dos registros órfãos para você decidir.
Projeto sem fim
Reescritas param no meio quando não entregam nada por meses. Mitigação: pagamento e entrega por módulo, o primeiro em seis semanas, e a cada módulo você decide se continua.
Em paralelo, com volta garantida.
Mapa do sistema: telas, procedures, triggers, relatórios, integrações, usuários. Ordem dos módulos decidida pela dor, não pela facilidade. Preço fechado por módulo.
Cada regra do primeiro módulo escrita em português, com exemplo, e validada por quem usa. IA lê o código; pessoas aprovam.
No navegador, sobre o mesmo banco, com a tela Delphi equivalente desativada na data combinada. Testes comparam resultado novo e antigo.
Mesmo ciclo para cada módulo: regras, reescrita, teste, uso. Fiscal entra cedo e roda em homologação por semanas.
Migração para PostgreSQL com validação registro a registro, Delphi desligado, e 90 dias de acompanhamento.
Hospital Parobé e Dinamize: a geração do Delphi e o destino em Go
Origem conhecida por dentro, destino em produçãoNão publicamos ainda uma migração Delphi → web como caso. O que temos são as duas pontas. Em 2000 construímos o sistema administrativo do Hospital de Parobé, para a Azaleia, em VB6 com SQL Server: a mesma geração, a mesma arquitetura de formulário com lógica dentro e banco com procedure, os mesmos vícios que a auditoria procura num sistema Delphi.
No destino, a reescrita da Dinamize: 67 sistemas em PHP e Java levados para Go entre 2012 e 2017, com a plataforma saindo de 600 mil para 23 milhões de e-mails por dia, sem parar a operação. É o método módulo a módulo desta página, em escala. A primeira migração Delphi entra aqui como caso, com os números.
Os rótulos desta seção são três e dizem exatamente o que temos: migração feita, quando já entregamos este par; origem conhecida por dentro, quando construímos ou mantivemos sistemas na tecnologia de origem; destino em produção, quando operamos o destino em escala. Nunca um caso inventado.
O que sempre perguntam.
Não dá para converter o código Delphi automaticamente?
Existem conversores. Eles produzem um sistema web com a estrutura do Delphi, a lógica misturada com a tela e nenhum teste. Você troca um legado por outro, mais novo e igualmente difícil de manter. Extrair as regras e reescrever com teste custa mais no início e menos a cada ano.
A empresa para em algum momento?
Não. Os módulos web rodam sobre o mesmo banco do Delphi, que continua funcionando para tudo o que ainda não migrou. A única parada é a migração final do banco para PostgreSQL, feita num fim de semana com rollback testado.
Por que não migrar o banco primeiro?
Porque o Delphi está amarrado ao banco atual e trocá-lo cedo significa mexer no sistema antigo, que é o que queremos evitar. O banco muda no fim, quando só o sistema novo escreve nele.
Quem faz a emissão fiscal?
Depende do volume. Até algumas centenas de notas por mês, uma biblioteca mantida resolve. Acima disso, um serviço de emissão sai mais barato que manter certificado, contingência e atualização de layout. Decidimos na auditoria, com o seu número.
E se o desenvolvedor Delphi sair no meio?
A auditoria é feita pensando nisso: ela documenta o sistema a ponto de o projeto continuar sem ele. Se ele estiver disponível, encurta a extração de regras. Se não estiver, as regras são extraídas do código e do comportamento.
O preço de referência é fechado?
É o preço do sistema típico descrito acima. A auditoria de duas semanas fecha o preço por módulo, com o seu sistema na mesa, e é descontada do projeto se ele seguir.
Comece pelo inventário.
Mande o endereço da loja ou uma descrição do sistema. Em até 24 horas úteis você recebe a confirmação da faixa de preço e prazo para o seu caso, sem compromisso. Se o par for outro, dizemos qual é.