Net-Base Magasin

17.04.2026

Å kombinere Delphi Desktop og Web-portalar: Arkitektur, grensesnitt og modernisering utan avbrot

Mange selskap driv stabile Delphi-desktopapplikasjonar, men treng i tillegg nettportalar for kundar, partnarar og mobile team. Artikkelen viser korleis du kan knyte begge delar saman gjennom ein servicekjerne: arkitekturvariantar, REST-APIs, rettar og SSO, datatilgang...

17.04.2026

Frå magasinetema til prosjektpraksis

Passande teneste- og tekniske sider til innlegget

Video-Botschaft

Å kombinere Delphi Desktop og Web-portalar: Arkitektur, grensesnitt og modernisering utan avbrot

Warum „Portal statt Desktop“ oft scheitert und wie ein gemeinsamer Service-Kern Desktop und Web-Portal konsistent verbindet – mit Fokus auf Betrieb, Rechte und wartbare Schnittstellen.

Video mit KI erstellt

Transkript anzeigen

Guten Tag. Der größte Fehler ist, Portal und Desktop getrennt weiterzuentwickeln.

Im Beitrag „Delphi Desktop und Web-Portale kombinieren: Architektur, Schnittstellen und Modernisierung ohne Bruch“ geht es genau darum. Viele Firmen haben eine stabile Delphi-Desktopanwendung.

Intern läuft damit alles schnell. Aber extern brauchen Kunden und Partner ein Web-Portal – ohne VPN und ohne Client-Rollout.

Wenn man dann nur „Masken im Browser“ nachbaut, entstehen doppelte Regeln. Das merkt man im Betrieb: andere Ergebnisse, mehr Support, schwerere Fehleranalyse.

Die saubere Lösung ist ein gemeinsamer Service-Kern. Also eine zentrale Prozessschicht, die Rechte, Prüfungen und Statuswechsel übernimmt.

Desktop und Portal greifen über definierte Schnittstellen darauf zu. So modernisieren Sie schrittweise, ohne Big-Bang.

Wenn dazu Fragen offen sind, sprechen Sie mich gern an. Wenn Sie dazu Fragen haben oder das Thema auf Ihre eigene Umgebung beziehen moechten, sprechen Sie uns gern an.

I mange bedrifter har den faglege „Schaltzentrale“ vaks fram over år som ein Delphi-desktopapplikasjon: VCL-klient, djup prosesskunnskap, rask datainnsamling, utskrifts- og rapporteringsløp, spesialmaskinvare og ofte direkte database-tilgang i LAN. Samstundes aukar forventningane til sjølvbetening og eksternt samarbeid: kundar vil sjekke ordrestatus, utveksle dokument eller registrere reklamasjonar – utan VPN, utan desktop-utrulling og utan lokale installasjonar.

Delphi Desktop og Web-portalar kombinere betyr i praksis å samanføra desse to verdsdelane slik at drift, sikkerheit og datakonsistens held seg handterlege. Avgjerande er ikkje å «etterbygga» skjermbilde i nettlesaren, men ei arkitektur som reint skil prosessar, rettar og datavegar og som får begge frontendar til å arbeida etter felles reglar. Gevinsten er ein moderniseringsveg utan Big-Bang: Desktop held fram med å vere produktiv, medan web-portalen veks kontrollert.

Innlegget er retta mot IT-leiing, administratorar og tekniske prosjektansvarlege. Fokuset er på konsekvensar for drift, administrasjon, grensesnitt, sikkerheit, datahald og migrasjon – ikkje rammeverksdetaljar. Du får prakseigne mønster, beslutningskriterium og typiske fallgruver med mottiltak.

Kvifor „Portal statt Desktop“ sjeldan er realistisk

I B2B-miljø finst det mange grunnar til at ein desktopklient framleis gir meining. Administratorar opplever dette ofte konkret: Ein portal er ideell for distribuerte brukargrupper, men bestemte oppgåver held seg meir effektive eller berre mogelege i desktopen.

Desktop-styrkar som tel i kvardagen

  • Kompleks datainnsamling med svært tette skjema, tastaturstyring, store tabellvisningar og raske bytte mellom datasett.
  • Periferi og lokale integrasjonar som etikettprinterar, skannarar, serielle einingar eller spesielle Windows-komponentar.
  • LAN-na nærleik og ytelse når store datamengder blir handsama eller ein prosess krev ekstremt låg latenstid.
  • Vaksne arbeidsflytar med mange spesialtilfelle der ein 1:1-port til ein portal først inneber høg risiko.

Portal-styrkar som dekker nye krav

  • Ekstern tilgang for kundar, leverandørar eller partnarar utan at ein klient må distribuerast.
  • Sentralt styrt (versjonar, funksjonar, rettar) med ein klar ytterkant.
  • Einingsuavhengig (nettlesar, mobil bruk) for feltpersonell og leiing.
  • Målretta opningar av prosessar som statusspørringar, opplastingar, godkjenningar eller saksspor.

I kombinasjon ligg nytten: Desktop held fram som kraftverktøyet for interne rollar, portalen blir eit kontrollert tilgongspunkt for eksterne brukargrupper. For å hindre at dette splittar seg i to parallelle «sanningar» trengs ein samlande kjerne.

Når de kombinerer Delphi Desktop og Web-portalar: tre målarkitekturar

Ved arkitekturoverveging handlar det først og fremst om ansvar: Kvar ligg dei faglege reglane? Kven kan endre data? Kva lag er «Single Source of Truth» (altså den målberande kjelda for reglar og tilstandar)? For tekniske avgjerdstakarar er det viktig: valet har direkte konsekvensar for drift, feilsøking, release-management og sikkerheit.

Variant A: Portal som tillegg via REST-API, Desktop held førande

Portalen dekkjer utvalde use-casar, typisk «lese og trigge»: status, dokument, godkjenningar, enkle registreringar. Til dette blir det innført ei Delphi REST-API eller ein separat REST-server. Desktopapplikasjonen kan i ein første fase framleis ha direkte DB-tilgang.

Operativ fordel: rask oppstart, få inngrep i desktopen, godt for å levere tidleg portalverdi.

Risiko: Det eksisterer to datavegar (Desktop → DB direkte, Portal → API). Dersom forretningsreglar berre ligg i desktopen, oppstår inkonsistensar. Mottiltak er å starte portal-funksjonar der reglane er enkle og lette å avbilde server-side (t.d. dokumenttilgang, statusspørring, definerte godkjenningshandlingar).

Variant B: Service-kjerne som felles prosesslag (anbefalt ved parallell drift)

Her flyttar de gradvis forretningslogikk ut av desktopen og inn i tenester. Desktop og portal nyttar same endepunkt. Desktop blir meir ein Rich Client (UI, lokale integrasjonar), medan reglar og valideringar ligg server-side.

Operativ fordel: ei sentral stad for rettar, audit, statuslogikk og valideringar; konsistent åtferd på tvers av frontendar.

Innsats: høgare i starten, fordi API-standardar, feilmeldingar, versjonering, overvaking og distribusjon må planleggjast ryddig. Til gjengjeld minkar innsatsen seinare klart, fordi det blir færre spesialvegar.

Variant C: Portal fører, Desktop held seg som spesialklient

Denne varianten er fornuftig når nettlesaren skal vere standard tilgong (t.d. i sterkt distribuerte organisasjonar), medan desktopen held fram for rollar som krev spesialmaskinvare eller høgtytande innsamling. Service-kjernen må då vere særskilt stabil og skalerbar.

Layer-3 arkitektur som tydeleg rettleiiar

Uavhengig av variant er ei Layer-3 arkitektur nyttig: (1) presentasjon (Desktop/Portal), (2) applikasjon- og domene-lag (use-casar, reglar), (3) infrastruktur (database, fillagring, messaging, eksterne system). For administratorar er dette viktig fordi driftsgrensene blir klare: kva er «frontend-problem», kva er «service-problem», kva ligg i databasen eller i storage? Denne skilnaden forkortar feilsøking og reduserer sideeffektar ved deploy.

Praksis: Korleis Desktop og Portal deler same prosess

Den største utfordringa er sjeldan å «bygge portalen», men spørsmålet: Korleis deler desktop og portal ansvar i same prosess utan at reglar blir implementerte dobbelt? Tre mønster er særleg relevante i praksis.

1) Use-Case-APIs i staden for tabell- eller CRUD-APIs

Ein vanleg blindveg er ein API som berre speglar databastabellar utad («Create/Read/Update/Delete»). Då må reglar byggast opp att i portalen, og desktopen held på sine eigne reglar. Betre er Use-Case-APIs: endepunkt som beskriver faglege handlingar som «opprett reklamasjon», «frigje ordre», «last opp dokument», «bekreft leveringsstatus».

Effekten i drift er tydeleg: valideringar skjer server-side, feilmeldingar er reproduserbare, og begge klientar (Desktop og Portal) utløyser same prosess via same logikk.

2) Gjera konfliktar og gjentakingar handterlege

Med ein portal aukar sannsynet for parallelle endringar og gjentatte requests (t.d. pga. timeouts, retries eller dobbeltklikk frå brukar). Her hjelper tre konsept utan å innføra permanente låsingar:

  • Idempotens: Kritiske handlingar er utforma slik at ei gjentaking gir same effekt og ikkje utfører ting dobbelt. I praksis skjer dette ofte via ei unik request-ID (Idempotency Key).
  • Optimistic Concurrency: Ein rad har versjonsinformasjon (t.d. «Row Version»). Ved endringar sjekkar tenesta om versjonen framleis passar og rapporterer konflikter klart tilbake.
  • Korte transaksjonar: I staden for å «låse alt» held ein skriveoperasjonar korte. Lange arbeid (t.d. eksporter, rapportpakker) køyrer asynkront.

For tekniske avgjerdstakarar er dette viktig: desse mekanismane reduserer supportarbeid fordi feilmobil (som «skjedde to gonger», «endringa mi er borte») blir langt sjeldnare.

3) Modellere tilstandar og overleveringar reint

Dersom desktopen handterer kompliserte tilfelle og portalen «berre» sender inn søknader eller forstadium, treng de definerte statusovergangar. Ein praktisk avgrensing kan vere: portalen opprettar eller kompletterer førespurnader i klart avgrensa statusområde (t.d. «innsendt»), desktopen handsamar spesialtilfelle, og service-kjernen avgjer og protokollerer statusbyte. Slik unngår de at portal-klienten indirekte «feilkonfigurerer» prosessar.

Data og dokument: det ofte undervurderte integrasjonsområdet

Nesten alle portal-løysingar inneber filhandtering: opplasting, vedlegg, følgjeskriv, bilete, PDF-utskrifter. For administratorar er dette eit kjernepunkt fordi det påverkar backup, rettigheiter, viruskontroll, lagringskost og ytelse.

Kvar ligg filene: database, fileshare eller objekt-storage?

Det finst tre vanlege lagringsval som kvar gir ei anna driftsrealitet:

  • Database (BLOB): bra når transaksjonar må vere tett kopla og backup/restore skal vere eitt samla paket. Ulemper er vanlegvis større databasar og lengre backup-vindauge.
  • Filesystem/Share: typisk On-Prem, lett å integrere i eksisterande backup-konsept. Viktig med klare rettar og ei API-skjikt som kontrollerer tilgangen.
  • Objekt-Storage: fornuftig ved skalering, livssyklusreglar eller når ekstern tilgang skal kapslast teknisk. Kravjer eit medviten nøkkel- og rettigheitsmodell.

Uavhengig av lagringsstad gjeld: Portalen bør ikkje laste filar «direkte» frå eit share. Betre er kontrollert nedlasting gjennom service-endepunkt med rettigheitssjekk, logging og eventuelt tidsavgrensa nedlastings-URL.

PDF og rapportar: server-side i staden for dobbel implementering

Delphi-desktopapplikasjonar har ofte vaksne utskrifts- og rapporteringsløp. Portalar treng ofte dei same innhalda som PDF. I staden for å vedlikehalde to implementasjonar løner det seg med sentral dokumentgenerering i service-kjernen: malar, versjonering og output-format ligg server-side; desktop og portal konsumerer resultatet. For drift gir dette klare fordelar: etterprøvbare utspel, einheitleg arkivering og mindre avhengigheit av desktop-installasjonar.

REST-server og tenester: Delphi, C# eller ei hybridarkitektur

Ved valet «Delphi eller C#» handlar det meir om teamkompetanse, driftsmiljø og vedlikehald enn ideologi. I mange miljø er ei hybridarkitektur realistisk så lenge ansvar er klart avgrensa.

Delphi som service-plattform: aktuelt ved innebygde fagreglar

Om faglogikk og data-tilgang allereie ligg solid i Delphi, kan ein Delphi-basert REST-server vere effektiv. For administratorar og avgjerdstakarar er det viktig å merke seg: serverdrift er ikkje «desktop i kontinuerleg drift». Ein produktiv service krev klar konfigurasjon, ryddige timeouts, strukturerte loggar, health-checks og reproducerbart deployment.

Også data-tilkoplinga bør moderniserast viss gamle drivarar eller BDE framleis er i bruk. Ei BDE-avløysing og overgang til moderne dataaksessar reduserer driftsstøy og gjer deployment enklare, fordi færre legacy-komponentar må installerast og vedlikehaldast.

C# tenester i portal-økosystemet: ofte grunna hosting og identity

Når portalen blir bygd i ein .NET-dominerande landskap, er C#-tenester ofte nærliggjande – ikkje minst grunna identity-integrasjon, etablerte driftstandardar og hosting bak Microsoft IIS eller i container-plattformer. Viktig er å unngå dobbeltimplementering: anten ligg fagkjernen i Delphi-tenester og C# tar edge-tema (t.d. portal-spesifikk orkestrering), eller de planlegg medvite migrasjon av logikk til .NET – då må det skje kontrollert og med klare faglege avgrensingar.

API-Gateway: eit ordningselement, men ikkje alltid naudsynt

Eit API-gateway kan samle sentrale funksjonar (routing, rate-limits, logging, autentisering). For mindre startarkitekturar er ofte ei konsekvent API med einsarta standardar tilstrekkeleg. Når fleire tenester og brukargrupper finst, hjelpjer eit gateway likevel å halde ytterkanten stabil og å håndheve policyar sentralt.

Autentisering og rettar: frå intern desktop til ekstern portalverda

Med ein portal endrar brukarlandskapet seg: ved sida av interne brukarar kjem eksterne kontoar, roller og tenantar. Det skapar krav til identity, autorisasjon og audit-spor. For administratorar er dette relevant fordi identity-system og rollemodellar seinare er vanskelege å endre.

SSO med SAML 2.0 eller OIDC: mindre admin-arbeid, betre kontroll

I B2B-oppsett er SAML 2.0 (Single Sign-on via ein Identity Provider) utbreidd, fordi bedrifter vil nytte eksisterande identitetar. OIDC (OpenID Connect) er òg vanleg, særleg i meir moderne plattformer. Klassiske brukar/passord-innloggingar er mogelege, men krev meir arbeid for passordpolicy, MFA, reset-prosessar og support.

Viktig for arkitekturen: autentisering (kven er du?) og autorisasjon (kva har du lov til?) må alltid sjekkast server-side – ikkje i portal-frontend.

Multitenant og rollemodell: ikkje legg til «seinare»

Eit kundenportal krev i praksis alltid tenant-separasjon: ein kunde skal berre sjå sine data. Dette må liggje i service-kjernen, idealt via:

  • Claims i tokenet (t.d. Tenant-ID, roller, kontraktsreferanse), slik at tenester kan fatte avgjerder.
  • Datasektorsjekkar (row-level-checks i faglogikken), ikkje berre «skjul meny».
  • Audit-trail for viktige handlingar (kven, kva, når), pluss korrelasjon via ei Request-ID for feilsøking.

Desktopen kan – om ønskjeleg – òg nytte token mot same identity-stack. Det reduserer spesialvegar og gjer endringar meir etterprøvbare, særleg når portal og desktop jobbar på same rad.

Modernisere data-tilgang: FireDAC, PostgreSQL og kontrollerte datavegar

Mange Delphi-desktopløysingar har vakse fram med direkte DB-tilgang. Når ein portal kjem til, blir dette eit arkitekturtema: datavegar må vere kontrollerbare, valideringar må vere sentrale, og ytelse må stå seg under parallell last.

FireDAC som basis for vedlikehaldbart data-tilgang

BDE-avløysing med nativen binding er i Delphi-miljø eit utbreidd standardval for tilkopling mot moderne databasar. Viktigare enn komponenten sjølv er standardisering: parametriserte spørringar, tydlege transaksjonsgrenser, einsarta feilhandsaming og målbare kjøretider. For drift tel det at timeouts og ressursbruk blir planbare, og at problem let seg spore i loggar og overvaking.

PostgreSQL med Delphi: godt handterleg ved reint typemap- og migrasjonsoppsett

PostgreSQL med Delphi er robust når typemapping (t.d. UUID, tidsstempel, JSON-felt), indeksar og schema-migrasjonar blir handsama korrekt. Portalar genererer mange filtrerande listeforespurnader; difor bør filtrering, paging og sortering skje server-side for å unngå at store datamengder blir overførde unødvendig. Det reduserer last og forbetrar brukaroppleving utan at desktopen blir treigare.

Drift, deployment og overvaking: gjer Delphi-backend klar for portal-drift

Ein portal er vanlegvis permanent tilgjengeleg og dermed meir driftskritisk enn ein rein desktop. For administratorar er dette området der god arkitektur gir direkte avkastning: gjennom etterprøvbare deploy, klar observability (loggar/metrikk) og definerte vedlikevindauge.

Windows-service eller Linux-service: viktigast er driftsmodellen

Ein Delphi-service kan køyrast som Windows- og Linux-tenester eller som Linux-daemon. Viktigare enn operativsystem er standardar som gjer drifta stabil:

  • Health-Checks for overvaking og load balancer (t.d. «tenesta lever» og «database tilgjengeleg»).
  • Strukturert logging (inkl. Request-ID, brukar/tenant, kjøretid, statuskodar) so support-saker kan reproducerast.
  • Konfigurasjon utan ny bygd (t.d. miljøvariablar, sentrale konfigurasjonsfiler) for å automatisere deploy ryddig.
  • Rollback-funksjonalitet gjennom klare versjonar og migrasjonstrygg databaseendringar.

Lastprofilar: Portal er «mange korte requests» i staden for «få lange sesjonar»

Desktopbruk skapar ofte lengre arbeidsøkter per brukar, medan portalar gir mange korte, parallelle requests. Typiske tekniske tiltak er:

  • konsekvent paging, server-side filter og avgrensa responsstorleikar
  • caching for masterdata og sjeldne spørringar
  • asynkrone jobbar for lange oppgåver (eksportar, rapport-pakkar)
  • rate-limits og beskyttingsmekanismar mot misbruk

For avgjerdstakarar er dette sentralt: ytelse er ikkje «finjustering til slutt», men ein del av API-definisjonen (responsstorleikar, timeouts, bakgrunnsprosessering).

Modernisering utan Big-Bang: ein robust veg i fem steg

Eit komplett nyskrive prosjekt er sjeldan naudsynt og ofte risikabelt fordi prosesskunnskapen sit i Delphi-klienten. Ein gradvis tilnærming der kvart steg er produksjonsbrukbart og ikkje trugar drifta har vist seg føremålstenleg.

1) Inventar: prosessar, dataeigarskap, integrasjonar

Start ikkje med skjema, men med use-casar: kva flyt skal inn i portalen? Kva data kan ein ekstern brukar sjå eller endre? Kva grensesnitt finst mot ERP, DMS eller CRM? Dette gir ei prioritert API-liste som leverer reell verdi.

2) Definer service-grunnlegg: Auth, feilmønster, logging, versjonering

Denne basen avgjer seinare vedlikehaldsvennlegheit. Avtal tidleg standardar for autentisering/autorisasjon, einsarta feilmønster, request-korrelasjon, API-versjonering og telemetri. Det reduserer friksjon mellom portal-team, backend-team og drift.

3) Lever første portal-strekke end-to-end

Vel ein prosess med klar avgrensing (t.d. dokumentområde eller statusspørring). Viktig at heile kjeda er på plass: pålogging, rettigheitssjekk, API, UI, logging, overvaking og drift. Då ser organisasjonen tidleg kva standardar som fungerer i kvardagen.

4) Knytt desktop målretta på: kritiske skrivevegar over tenester

Når tenestene er stabile, flyttar de utvalde desktop-funksjonar over: særleg statusbyte, godkjenningar eller sentrale valideringar. Desktop held fram med å vere ytelsessterk, men reglane blir meir konsistente, og direkte DB-skrive-tilgang blir gradvis redusert.

5) Konsolider: fjern doble reglar og spesialvegar

Utan vil dette over tid bli «to system». Planlegg jamlege konsolideringar: kva reglar finst dobbelt? Kor kan portalen bruke desktop-service? Kva rapportar bør sentralt genererast? Målet er ei handterleg plattform, ikkje eit dogme.

Typiske fallgruver frå driftssyn – og korleis unngå dei

Reglar blir reimplimenterte i portalen

Det fører til avvik og support-saker. Mottiltak: Use-Case-APIs med server-side valideringar, klare feilretur og, om mogeleg, felles faglege testsenarier.

Uklart dataeigarskap mellom Desktop og Portal

Om begge klientar kan endre «alt», oppstår konfliktar. Mottiltak: statusmodell, definerte ansvarsområde og Optimistic Concurrency for konkurrerande endringar.

Sikkerheit blir behandla som etterpåklatt

Særleg for kundenportal er SSO, tenant-sjekkar, sikre filnedlastingar og audit nødvendig frå starten. Seinare implementasjon er dyrare og aukar risiko for sårbarheiter.

Manglande innsikt i drifta

Utan Request-IDar, strukturert logging og health-checks blir feilsøking detektivarbeid. Mottiltak: observability som obligatorisk del av første service-release.

Konklusjon: Ein service-kjerne bind saman desktop-styrke og portal-rekkevidd

Kombinasjonen av Delphi-desktop og web-portal er i mange verksemder den mest realistiske vegen for å halda på kjerneprosessar samtidig som ekstern samarbeid blir mogeleg. Avgjerande er at de ikkje driv to separate verdener, men byggjer ein samlande service-kjerne: Use-Case-APIs, reint rettigheitsoppsett, etterprøvbare tilstandar, kontrollerte datavegar og eit driftsmønster med logging, overvaking og planbare deploy.

Slik oppstår ein modernisering med mellommål: Desktop held seg produktiv, portalen leverer tidleg verdi, og arkitekturen blir trinnvis meir konsekvent og vedlikehaldbar.

I det faglege arbeidet spelar òg Delphi Modernisierung ei viktig rolle når integrasjonar, dataflyt og vidareutvikling må spelast saman på ein ryddig måte.

Prosjekt eller moderniseringsprosjekt med Net-Base diskutera.

neste steg

Når temaet blir eit reelt prosjekt, bør arkitektur, eksisterande system og drift tidleg saman vurderast.

Vi støttar ikkje berre ved enkeltspørsmål, men òg når korte kildekodesnuttar, legacy-tema eller portalidéar skal utviklast til eit robust bedriftsprosjekt.

  • Eksisterande tilstand, målbiletet og tekniske risikoar blir vurderast samla.
  • REST, datatilgang, portalar og utrulling blir ikkje utsett til seinare fasar.
  • De ser tidleg kva veg som er økonomisk og driftsmessig berekraftig.

Del innlegg

Del dette innlegget direkte

LinkedIn, X, XING, Facebook, WhatsApp og e-post er straks tilgjengelege. For Instagram klargjer vi lenke og kort tekst med det same.

E-post

Instagram opnar i ein ny fane. Lenkje og kort tekst blir kopiert til utklippstavla på førehand.