Blog · Sistemas legados
Como modernizar um sistema Delphi: atualizar, migrar ou reescrever?
Muito ERP, sistema de automação comercial e controle industrial no Brasil foi escrito em Delphi entre o fim dos anos 90 e os anos 2000, e continua rodando. Para quem depende de um deles, a dúvida raramente é se modernizar: é como fazer isso sem parar a empresa. Diferente do VB6, o Delphi ainda tem fabricante, e isso abre um caminho a mais. Este guia mostra os quatro caminhos e como escolher.
Em resumo
Se o sistema sustenta a operação e a equipe domina Delphi, atualizar para uma versão atual (trocando o BDE e os componentes abandonados) resolve a compatibilidade sem mudar de linguagem. Se o problema é gente, acesso web ou integração, o caminho mais seguro é migrar em etapas para .NET e web, módulo a módulo, com os dois sistemas convivendo. Reescrever tudo de uma vez é o que mais falha.
Delphi não é VB6, e isso muda a conversa
O suporte ao ambiente do Visual Basic 6 terminou em 2008, e ele não tem sucessor direto. O Delphi seguiu outro destino: passou da Borland para a CodeGear e, desde 2008, pertence à Embarcadero, que continua lançando versões dentro do RAD Studio, com 64 bits, Unicode e acesso a bancos modernos. Na prática, um sistema Delphi tem uma opção que o VB6 não tem: atualizar sem trocar de linguagem.
O porém é que quase nenhum sistema legado está no Delphi atual. O cenário típico é Delphi 5, 6 ou 7, com anos de componentes de terceiros acumulados, e a distância até a versão de hoje é grande. É essa distância que define o caminho.
Sinais de que o seu sistema Delphi está pedindo atenção
- BDE e Paradox: o Borland Database Engine está descontinuado há anos, não tem versão 64 bits e é fonte clássica de tabela corrompida, arquivo travado em rede e erro estranho em Windows novo.
- Componentes sem dono: grids, relatórios e conexões comprados de fornecedores que sumiram, muitas vezes sem código-fonte. Eles travam qualquer atualização.
- Comunicação antiga: as bibliotecas de rede das versões antigas podem não suportar os protocolos de segurança que bancos, SEFAZ e APIs exigem hoje, e cada integração nova vira remendo.
- Gente: há cada vez menos desenvolvedores Delphi disponíveis, e muito sistema depende de uma pessoa só, às vezes de alguém que já saiu da empresa.
- Acesso de fora: a operação pede acesso pelo celular, pelo cliente ou pelo parceiro, e a resposta atual é área de trabalho remota.
- Mudança de regra: alterações fiscais e de negócio (como as da reforma tributária) exigem mexer em cálculos e documentos, e cada alteração demora mais do que deveria.
Os 4 caminhos, do menos ao mais invasivo
1 · Estabilizar e manter
Colocar o código em controle de versão, montar um ambiente de compilação que qualquer pessoa consiga reproduzir, documentar as rotinas críticas e corrigir o que dói. Parece pouco, mas muito sistema Delphi existe hoje como uma pasta de fontes na máquina de alguém. Faz sentido quando o sistema atende bem e a pressão por mudança é baixa. É o que fazemos em manutenção de sistemas.
2 · Atualizar para uma versão atual do Delphi
Levar o código para o RAD Studio atual: trocar BDE por FireDAC, substituir componentes abandonados, adaptar o código para Unicode (o tipo string mudou a partir do Delphi 2009) e compilar em 64 bits. O sistema continua desktop, mas volta a ter base suportada. Faz sentido quando a regra de negócio é grande e estável, a equipe domina Delphi e o problema é compatibilidade, não web nem gente. Inclua a licença do RAD Studio na conta.
3 · Migrar em etapas para .NET e web
O caminho que mais recomendamos quando o problema é gente, integração ou acesso web. Primeiro, criamos uma API em .NET sobre o mesmo banco de dados (Firebird, InterBase, SQL Server): o Delphi continua rodando, e o sistema já passa a conversar com site, aplicativo e parceiros. Depois, módulo a módulo, as telas migram para a web, começando pelo que mais aperta. Durante a transição, Delphi e sistema novo convivem, lendo e gravando os mesmos dados.
Se os dados ainda estão em Paradox ou DBF, o primeiro passo é levá-los para um banco de verdade, o que por si só já elimina boa parte dos travamentos. O padrão completo, conhecido como strangler fig, está em como modernizar um sistema legado sem parar a operação.
4 · Reescrever do zero
Justificável quando o sistema é pequeno, o código-fonte se perdeu ou o negócio mudou tanto que as regras antigas não servem mais. Mesmo aí, o Delphi antigo é a melhor especificação que existe: o sistema novo precisa produzir o mesmo resultado nos mesmos casos, inclusive nas exceções que ninguém lembra que existem.
E levar o Delphi para a nuvem?
Dá para fazer em três níveis, e vale saber qual deles está sendo oferecido:
- Executável num servidor na nuvem: o sistema roda igual, só que numa máquina remota acessada por área de trabalho remota. Resolve acesso de fora e backup, mas não moderniza nada: mesmo código, mesmos limites.
- Banco na nuvem + API: os dados saem do servidor do escritório, e a API abre caminho para integrações e aplicativos. O Delphi continua como interface, por enquanto.
- Sistema web: as telas migram para o navegador em etapas (caminho 3). É o único nível em que o sistema deixa de depender de Windows instalado na máquina de quem usa. Detalhes em como migrar um sistema desktop para web.
Como escolher: três perguntas
- Quem mantém o sistema daqui a dois anos? Se ninguém na equipe programa Delphi e contratar é difícil, atualizar o Delphi só adia o problema. Migrar para .NET resolve.
- O sistema precisa sair do desktop? Se clientes, vendedores ou parceiros precisam acessar, a resposta passa pela web.
- Existe código-fonte que compila? Com fontes e componentes em mãos, todos os caminhos estão abertos. Sem eles, a migração parte do banco de dados e do comportamento do sistema. É possível, mas o plano muda.
Para uma primeira resposta agora, o diagnóstico de legado em 2 minutos faz essas perguntas e indica o caminho mais provável para o seu caso.
O erro mais caro
Trocar tudo de uma vez, depois de meses de desenvolvimento no escuro. É o padrão que mais falha em modernização: reintroduz bugs que o sistema antigo já tinha resolvido, atrasa o retorno e concentra o risco num único fim de semana. Com Delphi, o motivo é o mesmo da migração de VB6 para .NET: a regra de negócio está espalhada em eventos de tela e em consultas SQL dentro dos formulários, e só aparece quando alguém tenta reescrever.
Como a Decidi conduz
Começamos com um diagnóstico gratuito: olhamos o código (quando existe), o banco, os componentes e o que a operação mais sofre. Devolvemos o caminho mais seguro, que às vezes é só estabilizar. Quando a decisão é migrar, fazemos em etapas para .NET e web, com o Delphi em produção até o último módulo sair. Veja como conduzimos a modernização de sistemas legados.
Dúvidas frequentes
Perguntas sobre Delphi
Ainda vale a pena manter um sistema em Delphi?
Dá para converter Delphi para .NET automaticamente?
O banco Firebird ou InterBase precisa mudar?
Quanto tempo leva modernizar um sistema Delphi?
Tem um sistema Delphi segurando a sua operação?
Conte a versão do Delphi, o banco de dados e o que trava hoje. Devolvemos um diagnóstico honesto do melhor caminho.