Net-Base Magasin

03.06.2026

Delphi Företagsapplikationer: Varför många system är stabila – och hur ni gör dem framtidssäkra

Delphi Företagsapplikationer är i många företag ryggraden i processnära flöden. Artikeln visar hur du planerar drift, dataåtkomst, gränssnitt, säkerhet och modernisering så att befintliga VCL-system förblir stabila – och steg för steg fit...

03.06.2026

Från magasinets tema till projektpraxis

Passande tjänste- och tekniksidor för inlägget

I många företag körs Delphi Unternehmensanwendungen pålitligt sedan åratal: produktionsnära registreringar, disposition, lager, leverans, service, kvalitetssäkring eller administrativa kärnprocesser. Sådana system är sällan vackra, men de är ofta mycket värdefulla – eftersom de avbildar processer som inte låter sig pressas in i standardprogramvara. Just därför är Delphi i praktiken fortfarande relevant: inte som trend, utan som en stabil bas för individuell företagsprogramvara som uppstått under tidspress och sedan vuxit över år.

För IT-ledning och administration handlar det mindre om frågan „Delphi: ja eller nej?“, och mer om: Hur håller jag systemet driftdugligt, säkert och ändringsbart utan att blockera verksamheten med en Big-Bang-ombyggnad? Detta inlägg kategoriserar typiska Delphi-landskap och visar praktiska moderniseringsvägar – med fokus på drift, data, gränssnitt, underhållbarhet, säkerhet och migration. Utan ramverksinterna detaljer, men med konkreta beslut som räknas i vardagen.

Warum Delphi in Unternehmen „klebt“ – und warum das nicht automatisch schlecht ist

Många Delphi-applikationer byggdes upp under tider då skrivbordsprogram (VCL, alltså det klassiska Windows-gränssnittet) var det snabbaste sättet att digitalisera processer. Det har lett till system med hög domänlogikdensitet, täta databasbindningar och många „små“ specialfall som tillsammans bär driften. Det förklarar livslängden: affärslogiken är beprövad – inte genom enhetstester, utan genom flera års produktionsdrift.

Risken ligger oftast inte i Delphi som språk, utan i angränsande områden: gamla dataåtkomster (t.ex. BDE, Borland Database Engine), 32‑bit-beroenden, föråldrad kryptering, oklara gränssnitt, bristande observabilitet (Monitoring/Logging), otydliga behörighetsmodeller eller avsaknad av uppdateringsstrategier. Om dessa perifera områden moderniseras kan en Delphi-applikation fortsatt vara en mycket pålitlig byggsten i de digitala företagslösningarna.

Typische Ausgangslagen: So sehen Delphi Unternehmensanwendungen in der Realität aus

Den som tar över eller ska stabilisera ett Delphi-landskap hittar ofta blandformer. För planering och budget är det hjälpsamt att tydligt ange utgångsläget:

  • Monolitischer Desktop-Client mit direktem Datenbankzugriff (häufig historisch gewachsen, teils mit „Fat Client“-Logik).
  • Client-Server mit Services: Windows- und Linux-Services oder Linux-Daemon erledigt Hintergrundjobs (Importe, Exporte, Druckläufe, E-Mail, Planungen).
  • Hybrid: Desktop bleibt führend, zusätzlich REST-API für Portale oder Drittanbindungen (REST = HTTP-basierte Schnittstelle, die Daten meist als JSON liefert).
  • Mehrere Datenquellen: SQL Server/PostgreSQL plus „Altlasten“ (Firebird, Paradox-Dateien, DBF, Access).
  • Terminalserver/RDS oder Virtual Desktop Infrastruktur (VDI) für zentralen Betrieb, teilweise mit Peripherie-Anbindung (Scanner, Waagen, Etikettendruck).

Var och en av dessa varianter kan fungera – men moderniseringsfokus skiljer sig åt. En desktop-monolit behöver ofta först avkoppling och tydligare gränssnitt. Ett tjänstelandskap kräver ordnad drift, versionering och övervakning. Och i hybridformer blir data- och gränssnittsstrategin den centrala hävstången.

Modernisering utan Big Bang: beslutslogik för IT och beslutsfattare

Den viktigaste vägvalet är: Vad måste stabiliseras på kort sikt, och vad kan moderniseras steg för steg? Ett fullständigt nybygge medför höga risker: parallellt arbete med verksamhetskoncept, dubbelt underhåll, migrationsfönster och ofta underskattade „randfunktioner“ (specialutskrifter, korrigeringskörningar, nödförfaranden). Samtidigt får man inte ignorera verkliga blockerare (t.ex. BDE, icke patchbara beroenden, icke reviderbar säkerhet).

I praktiken fungerar en tredelad roadmap:

  • Stabilisera: byggprocess, reproducerbara releaser, tydlig loggning, backup-/restore-tester, snabba förbättringar för säkerheten.
  • Avkoppla: tydliga lager (t.ex. Layer-3-arkitektur: UI, affärslogik, dataåtkomst), definiera gränssnitt, modernisera dataåtkomst.
  • Utöka: REST-API:er, portaler, nya klienter, nya databaser, flera plattformar, multi-tenant-stöd – där det är funktionellt och ekonomiskt motiverat.

Nyckeln är att varje steg levererar ett driftsdugligt tillstånd och inte bara skapar „förberedande arbete“. På så sätt bibehålls processförmågan och förändringar blir kontrollerbara.

Delphi Modernisering: Var de största riskerna verkligen sitter

Begreppet „modernisering“ används ofta för brett. För driften är typiskt fem riskzoner avgörande:

1) Dataåtkomst och drivrutinslandskap (BDE, ODBC, föråldrade klienter)

Den BDE-ersättning är en klassiker: Så länge Borland Database Engine finns i produktionsdrift uppstår konflikter med aktuella Windows-versioner, drivrutiner, behörigheter och säkerhetsbaselines. Dessutom blir driften bräcklig eftersom komponenter inte längre underhålls. Här är BDE-ersättning med nativ anslutning ofta det pragmatiska moderniseringssteget: ett modernt dataåtkomstlager i Delphi som kopplar olika databaser rent och gör drivrutins-/poolningsfrågor mer hanterbara.

Viktigt för IT: En BDE-ersättning är inte bara „byta drivrutin“. Typiska efterarbeten är anpassningar av SQL-dialekt, transaktionsgränser (transaktion = sammanhörande databasändringar som antingen accepteras helt eller inte alls), felhantering, teckenuppsättning/Unicode och prestandaprofilering.

2) 32‑Bit-beroenden och övergången till 64‑Bit

Övergången till 64‑bit misslyckas sällan på Delphi själv, utan på grund av externa komponenter: skrivardrivrutin-wrapperar, gamla COM/ActiveX-bibliotek, specifika hårdvaru-SDK:er eller föråldrade databas-klienter. För planeringen är en inventering av beroenden obligatorisk: Vilka DLL:er laddas? Vilka komponenter är inte 64‑bit-kompatibla? Finns det ersättning eller kan funktionen läggas ut i en separat process (t.ex. som en tjänst)?

En ren approach är att införa 64‑bit först där det ger driftmässiga fördelar (minnesbehov, stora datamängder, moderna plattforms‑krav) – och tillfälligt kapsla 32‑bit för perifera funktioner istället för att blockera hela klienten.

3) Unicode-migrering och datakonsistens

Unicode innebär: texter lagras inte längre i lokala kodsidor utan i ett enhetligt teckenuppsättning (typiskt UTF‑16/UTF‑8 beroende på nivå). I etablerade Delphi-applikationer gäller detta gamla datafält, exportformat, utskriftsmallar och gränssnitt. Problem visar sig ofta först i vardagen: specialtecken i namn, internationella adresser, artikeltexter, e‑postinnehåll.

För företag är det avgörande att kontrollera end-to-end: databas-kollation, import/export (CSV, XML, JSON), EDI-format, PDF‑generering, SMTP/IMAP, och även visningen i UI. En Unicode‑migrering är genomförbar, men den kräver tester med verkliga data och tydliga godkriterier.

4) Gränssnitt och integrationer (REST, ERP, DMS, Identity)

Många Delphi-system är „öar“, eftersom direkt databasåtkomst historiskt var det snabbaste sättet. Idag behövs rena integrationer: ERP, DMS, CRM, portaler, maskinanslutning. Här har det visat sig fördelaktigt att lägga ut integrationslogiken i REST-tjänster eller bakgrundstjänster. En Delphi REST-API und REST-Server är inte ett mål i sig, utan en driftkomponent: versionerade ändpunkter, tydlig autentisering, kontrollerad loggning och begränsade datautlämningar.

Dessutom blir Identity relevant: SAML 2.0 (single sign-on mellan företagsidentitet och applikation) eller OAuth2/OpenID Connect, beroende på omgivning. Beslutet påverkar inte bara applikationen utan även drift, granskningsbarhet och offboarding‑processer.

5) Drift: uppdateringar, övervakning, återställning

En applikation är i företaget bara så bra som dess drift. Typiska svagheter: manuella installationer, avsaknad av rollback‑strategi, knapp telemetri och oklara ansvar vid incidenter. Modernisering innebär här inte „Cloud“, utan: reproducerbara driftsättningar, spårbar konfiguration och mätbar systemhälsa.

Arkitektur som hjälper i vardagen: Layer-3, tydliga gränser, färre sidoeffekter

När Delphi-projekt växer över år blandas ofta UI-logik med affärsregler och dataåtkomst. Det gör ändringar riskabla: ett nytt fält i dialogen leder plötsligt till sidoeffekter i importer eller rapporter. Layer-3-arkitekturen (presentation, affärslogik, dataåtkomst) är här mindre teori än ett praktiskt verktyg för att göra förändringar kalkylerbara.

Viktigt är beroenderiktningen: UI får använda affärsfunktioner, men affärslogiken bör inte behöva veta vad knapparna heter. Dataåtkomsten levererar objekt/data, men avgör inte affärsregler. Det underlättar:

  • riktade tester av affärsregler utan att behöva starta UI,
  • steg‑för‑steg‑ersättning av dataåtkomst (t.ex. från BDE till BDE-Ablosung mit nativer Anbindung),
  • parallell drift av flera gränssnitt (Desktop plus Portal),
  • stabilare releaser eftersom sidoeffekter minskar.

För beslutsfattare är detta ett kostnadsargument: Inte för att arkitektur „schön“ är, utan för att den gör underhåll mer planbart.

Databaser modernisera: FireDAC, PostgreSQL, SQL Server – och vad det innebär för driften

Beslut om databaser är i Delphi-företagsapplikationer ofta historiska. I driften är framför allt Backup/Restore, Monitoring, HA/Failover, Security-Patching och behörighetsadministration viktiga. Åtkomsten till data bör vara anpassad därefter.

FireDAC som standardiseringsskikt

FireDAC kan fungera som ett tekniskt standardiseringsskikt eftersom anslutningshantering, parameterbindning, transaktioner och drivrutinval blir mer konsekventa. För driften är följande viktigt: Connection Pooling (återanvändning av anslutningar), timeouts och tydlig felklassificering (t.ex. „Deadlock“, „Timeout“, „Unique Constraint“).

PostgreSQL i produktion med Delphi: möjligheter och fallgropar

PostgreSQL väljs ofta när öppna standarder, god SQL-funktionalitet och starka driftmöjligheter efterfrågas. Typiska punkter vid migrering:

  • Datatyper: datum/tid, Boolean, UUID, JSONB – använd dem konsekvent i datamodellen istället för att spara allt som text.
  • Transaktionsisolation: konsistens vs. parallellitet; relevant vid bokningslogik och batchbearbetning.
  • Indexstrategi: prestanda uppnås sällan genom „mer CPU“, utan genom lämpliga index och välformulerade queries.

För administratörer är det viktigt att applikationen inte kräver „Superuser“-rättigheter, utan arbetar med minimala roller. Det är en kärnfråga för revisioner och säkerhetsgranskningar.

Modernisera SQL Server-anslutningen

I många miljöer är SQL Server etablerat. Då handlar det mindre om migrering än om korrekt användning: parameteriserade queries (mot SQL-injektion), lämplig isolation, användning av stored procedures där governance krävs, och en tydlig separation mellan applikationsinloggning och admininloggningar. I praktiken bör man dessutom granska collations (sortering/teckenjämförelse), eftersom de påverkar Unicode-frågor och jämförelser (t.ex. stora/små bokstäver).

REST-API eftermontera: möjliggöra integrationer utan att „öppna“ databasen

När portaler, mobila processer eller tredjeparter ska anslutas är direkt åtkomst till databasen som regel det sämsta alternativet: svårt att versionshantera, risk för dataintegritet, svårt att revidera. En REST-API skapar ett kontrollerat integrationsskikt. Den definierar vilka data i vilket format och under vilka regler som är tillgängliga.

För drift och säkerhet är fyra saker avgörande:

  • Autentisering: tokenbaserad, helst kopplad till centrala identiteter (t.ex. via SAML 2.0/OIDC i ett upstream-gateway, beroende på arkitektur).
  • Auktorisation: behörighetskontroll på affärsobjekt, inte bara „användaren får använda endpointen“.
  • Versionering: ändpunkter eller payload-versioner, så att portal och backend kan driftsättas oberoende.
  • Ratebegränsningar och loggning: skydd mot missbruk och tillförlitlig diagnos vid störningar.

I många företagsnätverk körs sådana tjänster bakom en reverse proxy (t.ex. nginx). Då måste hanteringen av Forwarded-headers vara korrekt (riktig klient-IP, HTTPS-detektering, korrekta URL-baser), annars blir inte loggar, omdirigeringar och säkerhetsregler korrekta. Det är inte en detalj utan relevant för incidentanalys och efterlevnad.

Windows-tjänst och Linux-tjänster: drifta bakgrundsprocesser korrekt

Delphi används i företag inte bara för desktopklienter, utan även för tjänster: dataimporter, schemaläggare, e‑postutskick, PDF‑generering, gränssnitts‑arbetsprocesser. För driften räknas här att en tjänst inte bara „på något sätt körs“, utan kan startas, stoppas och övervakas kontrollerat.

Checklista för servicedugliga Delphi-komponenter

  • Extern konfiguration: inga „hårdkodade“ sökvägar/hosts i binärfilen; konfiguration som fil/miljövariabler, med tydlig dokumentation.
  • Graceful Shutdown: avsluta pågående jobb ordnat eller avbryt dem på ett kontrollerat sätt så att inga halvfärdiga datamängder uppstår.
  • Idempotens: upprepad körning av ett jobb får inte skapa dubbla bokföringar (idempotens = samma anrop, samma resultat).
  • Loggning med korrelation: per uppdrag/transaktion en ID, så att loggar kan sammanföras över flera komponenter.
  • Övervakning: health‑endpoints eller åtminstone kontrollerbara mätvärden (t.ex. „senaste körning“, „felkvot“, „kölängd“).

Vid Linux-tjänster (t.ex. som daemon under systemd) tillkommer paketering, behörighetskoncept och filsystemslayout. Avgörande är att tjänsteidentiteten har minimala rättigheter och att hemligheter (lösenord, tokens) inte ligger i klartext i deploymenten. Beroende på miljö kan en secret store eller åtminstone en säkrad konfigurationsväg vara nödvändig.

Säkerhet och regelefterlevnad: Vad som vid Delphi-applikationer vanligtvis behöver åtgärdas

Många befintliga applikationer är funktionellt korrekta, men säkerhet bedömdes „då“ annorlunda. Idag är kraven tydligare: patchbarhet, spårbarhet, kryptering, åtkomstkontroll. Typiska åtgärder med hög nytta gentemot risk:

  • Transportkryptering: TLS för tjänster och API‑kommunikation, inga okrypterade HTTP‑sträckor i det interna nätet „av vana“.
  • Hantering av lösenord och hemligheter: inga lösenord i INI‑filer utan skydd; om möjligt central identitetshantering och token.
  • Audit‑loggning: vem utförde vilken kritisk åtgärd (stamdata, godkännanden, exporter), med tidsstämpel och identitet.
  • Behörighetskoncept: modellera roller och rättigheter ur verksamhetsperspektiv; separera adminfunktioner; granska klientseparering/mandantavgränsning.
  • Kryptografi pragmatiskt korrekt: inga egenbyggda lösningar; etablerade algoritmer som AES (symmetrisk) och moderna hashfunktioner, samt integritetsskydd.

Viktigt: säkerhet är inte bara kod. Den berör också drift (åtkomsträttigheter på servrar, loggförvaring, backup‑kryptering) och processer (incidenthantering, regelbundna uppdateringar, avveckling av komponenter).

Planera migration: Från det „organiskt växande“ systemet till en färdplansbar plattform

Om en Delphi-applikation ska drivas vidare strategiskt behöver den en färdplan som kopplar samman tekniska och organisatoriska aspekter. En praktisk ansats börjar med transparens:

1) Teknisk inventering som avspeglar drift och risk

  • Komponentlista (Delphi-versioner, tredjepartsbibliotek, drivrutiner, tjänster, installer)
  • Databaser och dataflöden (import/export, batchjobb, rapportering)
  • Gränssnitt (fil, TCP/IP, REST, SOAP, e‑post, ERP/DMS/CRM)
  • Deployment- och uppdateringsprocess (manuell, skript, central distribution)
  • Felbild (vanliga fel, prestandaflaskhalsar, återställningstider)
  • 2) Definiera målbilden, men överbelasta den inte

    Ett målbild är användbart när det underlättar beslut. Den bör beskriva hur releaser framöver skapas, hur gränssnitt ser ut, hur dataåtkomst standardiseras och hur driften övervakas. Den behöver inte innebära „allt nytt“. Ofta räcker en målbild med tre till fem styrprinciper: t.ex. FireDAC som standard, REST för integrationer, tjänster med övervakning, identitetsanslutning, tydliga lager.

    3) Genomförande i avgränsbara paket

    Moderniseringspaket bör vara avgränsbara funktionellt och tekniskt: „BDE bort och standardisera dataåtkomst“, „REST-API för portal-use-cases“, „64‑bit-klient plus kompatibilitetskapsel“, „härda driften av tjänster“. Varje paket behöver acceptanskriterier: mätbar stabilitet, definierad prestanda, dokumenterade driftprocesser.

    C# och Delphi förena: när portaler och tjänster utvecklas vid sidan om skrivbordssystemet

    I många företag är Delphi etablerat i kärnsystemet, medan portaler eller nya integrationsservicar snarare utvecklas i C#/.NET. Det är inget motsägelsefullt så länge arkitekturen skiljer tydligt: Delphi kan fortsatt driva det processnära skrivbordssystemet stabilt, medan C# Portale eller C# Services täcker moderna webbkrav. Avgörande är systemen gemensamma språk: tydliga datakontrakt, konsekventa identiteter, spårbara gränssnittsversioner och en tydlig övervakning över systemgränserna.

    För IT-ledningen är det ofta den mest ekonomiska vägen: Den befintliga värdeskapningen förblir tillgänglig, samtidigt som nya kanaler kan skapas utan fullständig migration.

    Vad ni bör förbereda internt: dokumentation, driftshandbok, kunskapsöverföring

    Delphi-system bärs ofta av ett fåtal personer. Det är en risk som kan minskas med överskådlig insats. Särskilt effektiva är:

    • Driftshandbok: tjänster, portar, konfiguration, Cron/scheduler, typiska störningar, återställningssteg.
    • Release-Notizen: vad som ändras, vilka DB-migreringar som körs, hur rollback kan genomföras?
    • Gränssnittskatalog: endpunkter/format, filutbyte, kontaktpersoner, versioner.
    • Datamodellsöversikt: centrala tabeller/entiteter, nycklar, multitenantlogik, arkivering.

    Det är ingen byråkrati utan grunden för planerad drift, snabbare incidenthantering och mindre beroende av enskilda personer.

    Slutsats: Delphi företagsapplikationer är inte problemet – avsaknaden av moderniseringsvägar är det

    Delphi företagsapplikationer kan över år vara en pålitlig, kostnadseffektiv kärna för processnära mjukvarulösningar. Den kritiska punkten är sällan språket, utan summan av gamla drivrutiner, oklara gränssnitt, bristande driftshärdning och eftersatta säkerhetsmekanismer. Den som planerar stabilisering, avkoppling och utvidgning som en kontrollerad roadmap undviker den riskfyllda Big Bang – och får ändå REST-integrationer, 64‑bit-funktionalitet, rena dataåtkomster och en drift som motsvarar dagens krav.

    Om ni vill tekniskt klassificera er Delphi-landskap och upprätta en robust moderniseringsväg för dataåtkomst, gränssnitt och drift, tala med oss:

    Diskutera projekt eller moderniseringsprojekt med Net-Base.

    nästa steg

    När ett ämne blir ett verkligt projekt bör arkitektur, befintligt bestånd och drift tidigt ses över gemensamt.

    Vi stöder inte bara vid enstaka frågor, utan även när kodsfragment, legacy-frågor eller portalidéer ska utvecklas till ett robust företagsprojekt.

    • Nuläge, målbild och tekniska risker bedöms tillsammans.
    • REST, dataåtkomst, portaler och utrullning skjuts inte upp som sena följder.
    • Ni ser tidigt vilken väg som är ekonomiskt och driftmässigt hållbar.

    Dela inlägg

    Dela det här inlägget direkt

    LinkedIn, X, XING, Facebook, WhatsApp och e-post är omedelbart tillgängliga. För Instagram förbereder vi länken och en kort text direkt.

    E-post

    Instagram öppnas i en ny flik. Länken och korttexten kopieras till urklipp först.