Net-Base Magasin

12.07.2026

Delphi til virksomhedsapplikationer: Hvorfor eksisterende, historisk opbyggede systemer fortsat kan moderniseres planmæssigt med det

Delphi er i mange virksomheder ikke "Legacy", men en stabil kerne for procesnær forretningssoftware. Artiklen viser, hvordan Delphi-applikationer kan moderniseres sikkert – med fokus på dataadgang, grænseflader, drift, sikkerhed og migration uden...

12.07.2026

Fra magasinets tema til projektpraksis

Passende service- og tekniske sider til artiklen

Delphi for virksomhedsapplikationer er i mange organisationer ikke et nostalgisk valg, men en driftsrealitet: voksede desktop-klienter, services og dataadgang, som gennem årene har båret processer stabilt. Den, der som IT-ledelse eller administrator har ansvar for tilgængelighed, vedligehold og sikkerhed, stiller sjældent spørgsmålet „Nybygning eller bevare?“, men: Hvordan moderniserer vi kontrolleret uden at bringe den løbende produktion i fare?

Dette indlæg vurderer Delphi i 2026 set fra drift- og IT-beslutningstagernes perspektiv. I centrum står ikke framework-detaljer, men de punkter, der tæller i dagligdagen: databaseadgang (inklusive BDE-Ablösung), grænseflader og REST-API’er, deployment som Windows- og Linux-Services eller Linux-Daemon, Security-basics, 32/64-Bit og Unicode-migration samt arkitektur, som teams kan bære i årevis. Målet er et robust beslutningsgrundlag: Hvornår er Delphi fornuftigt, hvornår bliver det risikabelt, og hvilke moderniseringsveje har vist sig effektive?

Hvorfor Delphi fortsat anvendes i virksomheder

Delphi-applikationer findes ofte dér, hvor processer ikke er „nice to have“, men kerneforretning: ordremodtagelse, produktion, logistik, laboratorie- eller enhedsforbindelse, service- og feltarbejde samt interne portaler omkring datakvalitet eller godkendelser. Sådanne procesnære softwareløsninger er ofte gennem årene finjusteret til arbejdsgange, undtagelsestilfælde og grænseflader. Et komplet nybyggeri ville ikke kun udløse udviklingsomkostninger, men særlig risiko: procesviden går tabt, skyggefunktioner bliver først synlige i drift, og overgangsfasen forbruger kapacitet i både IT og fagafdeling.

Delphi er i denne kontekst interessant, fordi det typisk løser tre krav godt:

  • Stabil desktop- og servicekørsel: Mange applikationer kører som VCL-desktopklient eller som Windows- und Linux-Services i årevis meget pålideligt. For driften er det ofte en væsentlig faktor.
  • Direkte databaseadgang og god ydeevne: Delphi-applikationer arbejder ofte tæt på SQL og transaktioner. Det er nyttigt, når procestrin og datakonsistens er i fokus.
  • Trinvis modernisering: Mange steder kan man modernisere inkrementelt: udskifte dataadgangen, tilføje grænseflader, refaktorere enkelte moduler, skifte til 64-Bit eller Unicode – uden Big-Bang.

Modsiden: Netop fordi disse systemer har kørt så længe, ligger der ofte teknisk ballast i dem. Forældede drivere, manglende adskillelse mellem UI og logik, historisk opståede rettighedsmodeller eller uklare installationsrutiner bliver på et tidspunkt dyre i drift. Nytten af Delphi afhænger derfor mindre af „sproget“ end af hele systemets moderniserbarhed.

Delphi for virksomhedsapplikationer: Typiske systemlandskaber og integrationsmønstre

I praksis er Delphi sjældent et isoleret enkeltprogram. Ofte er det en byggesten i et landskab af databaser, identiteter og andre systemer. For drift og administration er det afgørende, hvor rene disse koblinger er. Typiske mønstre er:

Desktop-klient plus central database

Det klassiske setup: en Windows-client, central SQL Server, PostgreSQL, Firebird eller MariaDB. Det bliver problematisk, når klienter arbejder direkte med produktive tabeller, men faglogik over år er spredt i UI-Events og SQL-strenge. Modernisering betyder her ofte: standardisere dataadgang, definere transaktionsgrænser og tilføje logging/monitoring – uden at ødelægge fagprocessen.

Services i baggrunden: Windows-Service oder Linux-Daemon

Mange virksomheder kører Delphi-komponenter som „Headless“-tjenester: Import/Export, Schnittstellen zu ERP/DMS/CRM, Druck- und PDF-Workflows, nächtliche Batch-Jobs oder Polling von Geräten. En Windows-service er en tjenesteproces under Windows med defineret start-/stop-logik og typiske krav til logging og recovery. Linux-Services er funktionelt lignende, men køres som regel via systemd (opstart, genstart, health checks). I driftsammenhæng er følgende relevante: korrekt konfiguration (uden „INI-Datei im Programmverzeichnis“), rettighedskoncept, logrotation samt evnen til at rulle opdateringer ud planmæssigt.

REST-API als Brücke zu Portalen und Fremdsystemen

Hvis Delphi-applikationer historisk kun var „desktop“, er den hyppigste moderniseringsidé at supplere med en REST-API. REST står for en webbaseret grænsefladestil, hvor systemer kommunikerer over HTTP med klare ressourcer og metoder. For virksomheder er det vejen til at muliggøre kundeportaler, mobile processer, BI/reporting eller eksterne partnerintegrationer uden nødvendigvis at erstatte desktop-klienten. Afgørende er ikke, at „API’en eksisterer“, men at autentificering, rate-limits, versionering, fejlbillede og monitoring er operationelt håndterbare.

Modernisering ohne Big-Bang: Was sich bewährt hat

Modernisering lykkes, når den er planmæssig: klart scope, definerede risici, målbare milepæle. For Delphi-bestande kan dette ofte opnås, hvis moderniseringen prioriteres efter driftsmæssige smertepunkter – ikke efter „pæn kode“.

1) Datenzugriff konsolidieren (BDE-Ablösung, FireDAC, Treiberstrategie)

En hyppig flaskehals er den historiske Borland Database Engine (BDE). Den er problematisk i moderne miljøer: deployment, 64-bit, drivertilgængelighed og sikkerhedsstandarder passer ofte ikke længere. En BDE-Ablösung er sjældent bare udskiftning af en biblioteksfil. Den berører SQL-dialekter, felttyper, sorteringer, transaktioner og fejladfærd i drift.

I mange projekter er en BDE-Ablösung mit nativer Anbindung (et dataadgangslag i Delphi, der binder forskellige databaser via passende drivere) et praktisk moderniseringstrin, fordi det tilbyder en ensartet abstraktion og mere moderne driverveje. Afgørende er migrationsstrategien: ikke alt på én gang, men modulvis – med klare regressionstests omkring bogføringer, bilagsnumre, låsninger og paralleldrift.

For en dybere gennemgang af risici og fremgangsmåde kan man internt henvise til artikler som „BDE-Ablösung: So modernisieren Sie Delphi-Bestandsanwendungen ohne Betriebsrisiko“ eller „Paradox Datenbanken modernisieren“, når sådanne legacy-datakilder er involveret.

2) 64-Bit und Unicode als Betriebsvoraussetzung verstehen

Mange Delphi-applikationer er historisk 32-bit og delvist ikke konsekvent Unicode-kompatible. I moderne Windows-miljøer er 64-bit ikke kun et performance-spørgsmål, men en forudsætning for drivere, Office-integration, store datamængder og fremtidssikring. Unicode er centralt, når internationale data, rene CSV-/XML-/JSON-grænseflader eller konsistent sortering er relevante.

For IT-ansvarlige er det vigtigt: Denne migration er ikke »kompileret og færdig«. Typiske risici er ændrede strenglængder, tegnsætsantagelser i grænseflader samt inkompatibilitet med ældre DLL’er eller udskrifts-/scankomponenter. En robust plan indeholder derfor en opgørelse over afhængigheder (printere, scannere, signatur, Office, enheder) samt testdata med specialtegn og realistiske datavolumener.

3) Arkitektur ryd op trinvis (Layer-3, forretningslogik, grænseflader)

Mange kodebaser fungerer, fordi de er »alt i ét«: UI, forretningslogik og dataadgang tæt sammenflettet. Det bliver dyrt i drift, så snart man har behov for nye brugerflader, webadgang eller automatisering. En velafprøvet tilgang er en Layer-3 arkitektur: adskillelse i præsentation (UI), forretningslogik (regler, workflows) og dataadgang (SQL/transaktioner). Værdien er mindre akademisk end praktisk: Ændringer i grænseflader eller database rammer mere tydelige lag, testbarheden øges, og fejl kan isoleres hurtigere.

Vigtigt er rækkefølgen: Ikke først »alt refaktorere«, men stabilisere de kritiske proceskerner. Ofte begynder man i særligt fejlbehæftede områder: bogføringslogik, stamdatahåndtering med sideeffekter, baggrundsjobs og import af grænseflader. Med hvert modul stiger styrbarheden af det samlede system.

Databaser i fokus: PostgreSQL, SQL Server, MariaDB og migrationsemner

Virksomhedsapplikationer står og falder med data. Delphi er her som regel ikke problemet – flaskehalsen er den historisk opbyggede database- og adgangslogik. Typiske scenarier:

Drifte PostgreSQL produktivt med Delphi

PostgreSQL vælges ofte i virksomheder, når man søger en robust open source-database med god SQL-funktionalitet og klare driftsværktøjer. I Delphi-miljøet er vigtige elementer: ren driverkonfiguration, defineret transaktionsisolation samt en klar migrationsprocedure for schemaændringer (f.eks. versionsstyrede database-migrationer, der kører i releaseprocessen). For administratorer er det også relevant, at overvågning (locks, slow queries) og backup/RESTore-strategier planlægges tidligt i stedet for først ved performanceproblemer.

SQL Server: Stabil, men ofte med teknisk ballast

Hvis Delphi i årevis har haft sin tilknytning til SQL Server, er opsætningen ofte grundlæggende stabil, men ikke nødvendigvis vedligeholdelsesvenlig. Typiske problemområder er dynamisk sammenbyggede SQL-udtryk, ujævn transaktionsstyring eller manglende parameterisering (hvad angår sikkerhed og performance). En modernisering fokuserer derfor ofte på:

  • Entydige transaktionsgrænser: Hvem starter/committer/ruller tilbage – og hvor?
  • Parameterisering: for at undgå SQL-injektion og for stabilere query-planer.
  • Klare fejlscenarier: Timeouts, deadlocks og låsekonflikter skal være synlige i logningen.

Også her kan man internt linke til et uddybende indlæg som „Modernisere SQL Server-tilslutning i Delphi“, hvis læserne netop sidder i dette felt.

Database-migrationer: Firebird, Paradox, ældre strukturer

Når ældre databaser er i spil (fx Paradox eller ældre Firebird-opsætninger), bliver modernisering hurtigt til et dataprojekt. For driften er følgende punkter afgørende:

  • Parallel drift og Cutover-plan: Hvor længe kører det gamle og det nye parallelt? Hvordan opdages forskelle?
  • Datakvalitet: Dubletter, ugyldige datoværdier, tegnsætsproblemer dukker pålideligt op ved migrationer.
  • Rettigheder og auditering: Hvem må hvad se/ændre? Hvordan logges ændringer genkendeligt?
  • Rollback-mulighed: Hvad sker der, hvis en kritisk proces ikke fungerer på go-live-dagen?

En Delphi-modernisering er dermed automatisk også en disciplin inden for release- og change-management: klare versioner, reproducerbare deployments, rene backups og definerede acceptkriterier.

Grænseflader og integration: REST-API, identiteter, protokoller

Den største funktionelle løftestang i moderne virksomheds-IT er ofte ikke brugerfladen, men integrationsmuligheden. Bestående applikationer skal i dag kunne levere og modtage data: kundeportaler, DMS/ECM, ERP, BI, e-mail-gateways, signaturtjenester, maskiner eller IoT-gateways.

Eftermontering af REST-API: Hvad drift og security har brug for

En REST-API udvider en Delphi-applikation med standardiserede HTTP-endpoints. For beslutningstagere er værdien klar: man afkobler nye kanaler (portal, mobil, partnere) fra desktop-release-cyklussen. For driften er prisen også klar: En API er et offentligt løfte, der skal være stabilt, overvåget og sikret.

I praksis bør følgende aspekter fastlægges tidligt:

  • Autentificering/Autorisering: Token-baseret, ideelt integreret i eksisterende identiteter (fx SAML 2.0 som single-sign-on-standard i virksomheder, eller efterfølgende token-udstedelse).
  • Versionering: Nye felter og endpoints må ikke bryde eksisterende integrationer.
  • Rate-limits og beskyttelse mod misbrug: Ikke kun relevant eksternt; også interne systemer kan ved fejlkonfiguration skabe belastning.
  • Struktureret logging: Request-ID, brugerkontekst, responstider, fejlkoder – til support og audit.

TCP/IP, filgrænseflader og „usynlige“ integrationer

Udover REST findes der i etablerede landskaber mange pragmatiske integrationer: TCP/IP-sockets til enheder, filimporter (CSV/XML), e-mail-baserede overførsler eller print-/scan-workflows. Disse er ofte forretningskritiske, men dårligt dokumenterede. Modernisering betyder her ofte: inventar af grænseflader, versionering af formater, definition af fejlveje og indføring af driftalarmer. Det er mindre glamourøst end et nyt UI, men reducerer fejl og supporttider mærkbart.

Drift i hverdagen: Deployment, opdateringer, monitoring, supportbarhed

Et Delphi-system kan være fagligt fremragende og alligevel virke dyrt, hvis driften ikke er ryddeligt organiseret. Typiske kostdrivere er manuelle opdateringer, uklare konfigurationssteder, manglende telemetri og support, der kun fungerer via „Send venligst et screenshot“.

Reproducerbart deployment i stedet for „Setup von Hand“

For virksomhedsapplikationer er gentagelige deploys afgørende: samme tilstand i test, staging og produktion, gennemskuelige rollbacks, klare afhængigheder. I Delphi-miljøet vedrører det typisk:

  • Client-udrulning: MSI/Setup, automatiske opdateringsmeknikker eller softwaredistribution via eksisterende værktøjer.
  • Service-udrulning: tjenestekonto, rettigheder, starttype, recovery-muligheder, afhængigheder.
  • Konfiguration: adskilt fra binærpakken, versionsstyret, styret pr. miljø.

Især for services er spørgsmålet centralt, under hvilken konto de kører, og hvordan secrets (f.eks. databaseadgangskoder, API-nøgler) gemmes. „I klartekst i en fil“ er operationelt bekvemt, men sikkerhedsmæssigt sjældent acceptabelt. Bedre er driftmæssigt etablerede secret-stores eller mindst OS-beskyttede mekanismer.

Overvågning og logging, der virkelig hjælper supporten

I mange eksisterende landskaber findes der logs, men de er ikke analyserbare: for meget støj, ingen korrelation, ingen kontekstdata. For driften viser en minimumsstandard sig nyttig:

  • Strukturerede logs: tidsstempel, komponent, alvorlighedsgrad, Request/Job-ID, bruger/tenant (hvis relevant).
  • Metrikker: jobkørselstider, kølængder, fejlprocenter, forbindelsesafbrydelser.
  • Sundhedstjek: Kan tjenesten nå databasen og afhængige systemer?

Det betaler direkte ind på tilgængelighed: Forstyrrelser kan afgrænses hurtigere, og mange „sporadiske fejl“ bliver reproducerbare, fordi kontekstdata ikke længere mangler.

Sikkerhed og compliance: Hvad Delphi-systemer i dag skal opfylde

Sikkerhed er i virksomhedsapplikationer mindre en enkelt funktion end et sæt minimumsstandarder. Delphi er i sig selv hverken automatisk sikker eller usikker; afgørende er arkitektur og driftsdisciplin.

Typiske sikkerhedsproblemer i eksisterende applikationer

  • SQL-injektion og uparametriserede forespørgsler: Særligt relevant, når input kommer fra importer eller grænseflader.
  • Rettighedskoncept: Roller vokser historisk uden klar dokumentation. Det slår igennem ved audits og ved multi-tenant-funktionalitet.
  • Transportkryptering: Grænseflader og databaseforbindelser skal i mange miljøer være krypterede.
  • Afhængigheder: Gamle DLLs, ældre kryptobiblioteker, uklare licensforhold eller ikke-vedligeholdte komponenter.

I moderniseringsprojekter er det fornuftigt ikke at behandle sikkerhed som en „slut-checkliste“, men som et tværgående emne: dataadgang, API, deployment, logging og brugeradministration skal hænge sammen. Især for REST-APIs er korrekt autentificering (f.eks. SSO via SAML 2.0 eller centralt styrede identiteter) ofte det punkt, hvor et projekt går fra „kører“ til „driftsmæssigt solidt“.

Hvornår Delphi er det rigtige valg – og hvornår ikke

For beslutningstagere er spørgsmålet om teknologi sjældent ideologisk, men risikodrevet. Delphi kan i virksomhedsapplikationer forblive et fornuftigt fundament, hvis visse forudsætninger er opfyldt.

Gode grunde til at bevare og modernisere Delphi

  • Høj proces-fit i det eksisterende landskab: Applikationen afspejler processer, som er svære at erstatte i forretningsområdet.
  • Kontrollerbare moderniseringsskridt: Dataadgang, 64-Bit/Unicode, interfaces og arkitektur kan tackles trinvis.
  • Klare driftskrav: Services, overvågning, deployment og sikkerhedsstandarder kan defineres og implementeres.

Advarsler, hvor man bør gribe tidligt ind

  • Uklare afhængigheder: „En eller anden DLL“ fra gamle dage er forretningskritisk, men ingen ved hvorfor.
  • Manglende test- og release-disciplin: Ændringer bliver direkte „repareret“ i produktion.
  • UI- og datalogik uadskillelige: Hver ændring skaber sideeffekter og lange supportsløjfer.
  • Integration bliver en tvang: Hvis nye portaler/partnere/BI-krav kun kan løses med workarounds, mangler ofte en API- og lagdelt strategi.

„Nicht Delphi“ er så ikke automatisk løsningen. Ofte er det reelle valg: Vil vi en kontrolleret moderniseringssti med planbare releases – eller en nybygning med længere parallelfase, dobbelte tests og organisatorisk friktion? Denne afvejning bør baseres på processrisiko, datarisiko og driftsrisiko, ikke på teknologitrends.

Pragmatisk køreplan: Sådan starter virksomheder struktureret

Et fornuftigt udgangspunkt undgår både aktionisme („Alt skal være nyt!“) og stilstand („Det kører jo!“). I praksis har en tilgang i klare arbejdspakker vist sig effektiv:

  1. Teknisk statusopgørelse: Afhængigheder, databaser, drivere, services, grænseflader, deploymentsveje, kritiske batch-jobs.
  2. Prioriter driftsrisici: Hvad forårsager nedbrud, manuelle indgreb eller sikkerhedsrisici?
  3. Opdel moderniseringen i skiver: f.eks. først dataadgang/BDE-Ablosung mit nativer Anbindung, derefter logging/monitoring, derefter REST-API, og til sidst arkitekturmoduler.
  4. Definér release- og rollback-proces: inklusive databasemigrationer, backups, cutover-planer.
  5. Dokumentation, der understøtter driften: ikke en roman, men klare Runbooks: Start/Stop, typiske fejl, Recovery.

Denne køreplan er bevidst driftsorienteret. Den sikrer, at modernisering ikke ender i projektmappen, men i en software, som i dagligdagen kan udrulles og supporteres.

Konklusion: Delphi er mindre „gammel“ end „driftsnær“ – når modernisering planlægges

Delphi til virksomhedsapplikationer er stærk, hvor stabilitet, datakontrol og procesnære arbejdsgange tæller. Den egentlige løftestang ligger ikke i sproget, men i en moderniseringstilgang, der behandler drift, sikkerhed og data ligeværdigt: BDE-udskiftning og FireDAC-strategi, 64-Bit/Unicode, rene lag (Layer-3), REST-API’er med autentificering, reproducerbart deployment samt logging og monitoring, der forkorter supportforløb.

Den, der går frem sådan, kan bevare opbyggede systemer fagligt og bringe dem teknisk i en tilstand, der er bæredygtig i flere år – uden risikabelt Big-Bang og uden at tvinge organisationen ind i en endeløs parallelverden af gammelt og nyt. Hvis I ønsker at vurdere tilstanden i jeres Delphi-landskab struktureret og udlede en moderniseringssti, er en teknisk indledende samtale ofte den hurtigste vej til klarhed:

I det faglige miljø spiller også Delphi Modernisering en vigtig rolle, når integrationer, dataflows og videreudvikling skal spille sammen rent.

Drøft projekt eller moderniseringsinitiativ med Net-Base.

Næste trin

Når emnet bliver til et reelt projekt, bør arkitektur, eksisterende systemer og drift tidligt vurderes samlet.

Vi støtter ikke kun ved enkeltspørsmål, men også når kildekodeudsnit, legacy-komponenter eller portalidéer skal udvikles til et robust virksomhedsprojekt.

  • Eksisterende tilstand, målbillede og tekniske risici vurderes samlet.
  • REST, dataadgang, portaler og udrulning bliver ikke udskudt som efterfølgende opgaver.
  • De ser tidligt, hvilken vej der er økonomisk og driftsmæssigt bæredygtig.

Del indlæg

Del dette indlæg direkte

LinkedIn, X, XING, Facebook, WhatsApp og e-mail er straks tilgængelige. Til Instagram forbereder vi link og kort tekst.

E-mail

Instagram åbner i en ny fane. Linket og kortteksten kopieres på forhånd til udklipsholderen.