Perfil tecnológico
A nossa base técnica em resumo
Não usamos tecnologias por moda, mas pela realidade de operação, vida útil, necessidade de integração e adequação da equipa. O que decide não é a palavra-chave, mas se o sistema continuará, mais tarde, a poder ser operado, estendido e assumido de forma limpa.
Forte para lógica de negócio e clientes multiplataforma
Delphi é forte onde lógica de negócio amadurecida, processos próximos da base de dados, relatórios e clientes estáveis para Windows, macOS e Linux devem ser mantidos e evoluídos a longo prazo.
Ver Delphi
C#
Forte para REST, serviços e portais
Usamos C# quando portais, serviços modernos de backend, APIs de REST e integrações devem ligar-se de forma limpa a sistemas empresariais existentes.
Ver C#
Arquitetura
Layer-3 em vez de legado monolítico
Separamos deliberadamente interface, lógica de negócio e acesso a dados, para que as alterações permaneçam previsíveis e novos serviços não tenham de ser construídos contra o existente.
Ver Layer-3
Plataformas
Ter Windows 11 ARM64 em consideração desde o início
Para além dos alvos x64 clássicos, consideramos cedo plataformas atuais como Windows 11 ARM64, para que novo hardware e deployments não se tornem mais tarde um projeto à parte.
Ver ARM64
Quando faz sentido cada abordagem
Delphi faz sentido quando
- a lógica de negócio existente deve continuar a viver,
- processos de desktop complexos têm de se manter estáveis,
- clientes para Windows, macOS e Linux devem ser criados sobre uma base funcional comum.
C# faz sentido quando
- servidores e serviços de REST são construídos,
- APIs e integrações externas estão no centro,
- são necessárias arquiteturas de serviços modernas.
Híbrido faz sentido quando
- aplicações existentes e novos portais têm de trabalhar em conjunto,
- desktop, serviços e web usam a mesma base de dados,
- a modernização deve ocorrer de forma gradual e como uma estrutura Layer-3.
Modernização de Delphi na prática
Quando uma aplicação antiga de Delphi ainda é valiosa do ponto de vista funcional, não modernizamos às cegas. Primeiro analisamos como o sistema realmente funciona, que processos suporta, onde os fluxos de dados se quebram e que legado trava a operação. Daí resulta um percurso de modernização que não só parece limpo no papel, como também se mantém viável no dia a dia.
Em muitas aplicações evoluídas ao longo do tempo, o verdadeiro valor não está na interface, mas em anos de lógica de negócio, regras especiais, exceções e conhecimento acumulado pela experiência. Esta substância não se descarta de ânimo leve. Separamos responsabilidades de forma limpa, reorganizamos a base de dados, substituímos antigos caminhos de acesso, criamos novas interfaces REST e, quando necessário, complementamos com clientes para Windows, macOS e Linux com a mesma base funcional. Assim, não há uma rutura abrupta, mas uma evolução compreensível com um recorte técnico claro.
Muitas vezes, isto também significa voltar a colocar monólitos historicamente crescidos numa forma que volte a ser mantível, testável e extensível. O acesso a dados é estabilizado, a lógica de negócio é desacoplada do código de interface, as interfaces tornam-se planeáveis e futuras extensões deixam de ter de ser conquistadas à força contra o legado. O objetivo não é uma modernização cosmética, mas um sistema que devolva à empresa margem para novos requisitos.
Serviços e servidores como parte da mesma arquitetura
Muitos sistemas empresariais hoje precisam não só de um cliente, mas também de serviços em segundo plano, serviços Windows ou Linux e servidores REST. Precisamente por isso, não planeamos estas partes como um acrescento posterior, mas como parte da mesma arquitetura. Um serviço que só mais tarde é adicionado “de qualquer maneira” quase sempre se torna um caso especial.
Quando é necessário processar dados de forma distribuída, disponibilizar interfaces, executar exportações, monitorizar importações ou correr tarefas programadas em segundo plano, a responsabilidade técnica tem de estar esclarecida desde o início. Que partes correm no cliente, quais no serviço, quais no servidor, como é que os erros se tornam visíveis, como é que as alterações de estado ficam rastreáveis, como é que a lógica de negócio se mantém consistente? Respondemos a estas perguntas cedo, para que, a partir de blocos individuais, resulte um sistema global robusto.
Isto é decisivo sobretudo em projetos multiplataforma. Um cliente desktop em Windows, macOS ou Linux não pode, do ponto de vista funcional, significar algo diferente de um servidor REST acompanhante ou de um serviço em segundo plano. Por isso, pensamos sempre em conjunto o modelo de dados, processos, permissões, integrações e operação. Assim nasce uma arquitetura em que clientes, serviços e servidores falam a mesma língua.
O nosso princípio
Tecnologia não é, para nós, um sistema de crenças. O decisivo é que arquitetura, capacidade de equipa, operação e futuras extensões se ajustem à empresa. Não vence a plataforma mais ruidosa, mas aquela com a qual risco, manutenibilidade e crescimento se deixam gerir de forma sensata.
Algumas tarefas resolvemos deliberadamente com Delphi, porque é aí que a lógica de negócio amadurecida, clientes performantes e a capacidade multiplataforma mostram os seus pontos fortes. Outros requisitos encaixam melhor em C#, em serviços, num portal ou numa combinação de ambos. Boa arquitetura não nasce da moda, mas da clareza: que responsabilidade tem cada parte do sistema, que duração de vida é de esperar, quão grande é a equipa, quão crítico é o funcionamento e que extensões, nos próximos anos, virão de forma realista?
É exatamente aí que, para nós, começa o desenvolvimento profissional de software. Não queremos apenas entregar algo que funcione hoje, mas criar uma base técnica que também mais tarde continue a ser compreensível, assumível por outros e economicamente mantível.
Perguntas frequentes sobre tecnologia e arquitetura
As decisões tecnológicas têm de ser adequadas à equipa, ao domínio funcional e à operação. Precisamente por isso, não esclarecemos estas questões de forma abstrata, mas sempre no sistema concreto.
Quando é que Delphi faz sentido face a uma plataforma completamente nova?
Sempre que a lógica funcional amadurecida, processos desktop performantes e objetivos multiplataforma devam ser mantidos de forma economicamente viável, em vez de substituir levianamente a substância.
Quando é que utilizam adicionalmente C#?
Sobretudo para portais, backends web, serviços REST, integrações e componentes de arquitetura orientada a serviços, que se deixam articular bem com sistemas desktop existentes.
Quão importante é Layer-3 na prática?
Muito. Só a separação limpa entre UI, lógica de negócio e acesso a dados torna a modernização, os testes, os serviços e futuras mudanças de plataforma controláveis.
Pensam cedo em novas plataformas como Windows 11 ARM64?
Sim. Novo hardware-alvo e caminhos de deployment são verificados cedo, para que mais tarde não se transformem em projetos especiais dispendiosos.
Ler mais perguntas reunidas
Estas respostas curtas permanecem aqui na página. Na landing page central de FAQ, contextualizamos adicionalmente o tema em relação com arquitetura, modernização, plataformas e operação.