Net-Base Списание

17.04.2026

Комбиниране на Delphi настолни приложения и уеб портали: архитектура, интерфейси и модернизация без прекъсване

Много компании поддържат стабилни Delphi-настолни приложения, но имат нужда и от уеб портали за клиенти, партньори и мобилни екипи. Публикацията показва как да свържете и двете чрез ядро на услугата: архитектурни варианти, REST-APIs, права и SSO, достъп до данни...

17.04.2026

От темата в списанието към проектната практика

Подходящи страници за услуги и технологии към публикацията

Video-Botschaft

Комбиниране на Delphi настолни приложения и уеб портали: архитектура, интерфейси и модернизация без прекъсване

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.

В много компании функционалната „комутационна централа“ се е развила през годините като Delphi-десктоп приложение: VCL-клиент, дълбоки процесни знания, бързо въвеждане на данни, печатни и репортинг потоци, специален хардуер и често директен достъп до базата данни в LAN. Паралелно нарастват очакванията за self-service и външно сътрудничество: клиентите искат да проверяват статуса на поръчки, да обменят документи или да регистрират рекламации – без VPN, без разгръщане на клиент и без локални инсталации.

Комбинирането на Delphi десктоп и уеб-портали означава на практика да се обединят тези два свята така, че експлоатацията, сигурността и консистентността на данните да останат управляеми. Решаващо не е „прекопирането“ на форми в браузъра, а архитектура, която ясно отделя процеси, права и пътища на данни и позволява и двата фронтенда да работят по общи правила. Печалбата е път за модернизация без Big‑Bang: десктопът остава продуктивен, докато уеб-порталът расте контролирано.

Тази статия е насочена към ИТ‑ръководство, администратори и технически проектни отговорници. В центъра са въздействията върху експлоатация, администрaция, интерфейси, сигурност, съхранение на данни и миграция – по-малко детайли на фреймуърк. Ще получите приложими в практиката шаблони, критерии за вземане на решения и типични капани с контрамерки.

Защо „портал вместо десктоп“ рядко е реалистично

В B2B среди има много причини десктоп клиентът да остане смислен. Администраторите често го преживяват много конкретно: порталът е идеален за разпределени потребители, но определени задачи в десктопа остават по‑ефикасни или изобщо възможни само там.

Силни страни на десктопа, които имат значение в ежедневието

  • Сложно въвеждане на данни с много плътни форми, работа с клавиатура, големи таблични изгледи и бързи смени между записи.
  • Периферия и локални интеграции като етикетни принтери, скенери, серийни устройства или специални Windows компоненти.
  • LAN‑базирана производителност, когато се обработват големи обеми данни или процес изисква изключително ниска латентност.
  • Узрели работни потоци с много изключения, при които 1:1 портване в портал първоначално носи високи рискове.

Силни страни на портала, които покриват нови изисквания

  • Външен достъп за клиенти, доставчици или партньори, без необходимост от разгръщане на клиент.
  • Централизирано управление (версии, функционалности, права) с ясна външна граница.
  • Независимост от устройства (браузър, мобилна употреба) за полеви екипи и мениджмънт.
  • Целенасочено отваряне на процеси като справки за статус, качвания, одобрения или тикетни потоци.

Ползата е в комбинацията: десктопът остава power‑инструмент за вътрешни роли, порталът е контролираният достъп за външни групи. За да не се получат две паралелни „истини“, е необходим обединяващ център.

Когато комбинирате Delphi десктоп и уеб-портали: три целеви архитектури

При избора на архитектура става дума предимно за отговорности: Къде лежи бизнес правилото? Кой може да променя данни? Кой слой е „Single Source of Truth“ (т.е. определящият източник за правила и състояния)? За техническите решения е важно: изборът има пряко влияние върху експлоатация, отстраняване на грешки, управление на релийзи и сигурност.

Вариант A: Портал като допълнение през REST‑API, десктопът остава водещ

Порталът обслужва избрани use cases, типично „четене и инициране“: статуси, документи, одобрения, прости въвеждания. За това се въвежда Delphi REST‑API или отделен REST‑сървър. Десктоп приложението може първоначално да продължи да има директен достъп до базата данни.

Оперативно предимство: бърз старт, малки намеси в десктопа, подходящо за първоначална портална стойност.

Рискова точка: съществуват два пътя за данни (Desktop → DB директно, Portal → API). Ако бизнес правилата са само в десктопа, възникват несъответствия. Контрамярка е да започнете с портални функции там, където правилата са прости и могат да се реализират на сървъра (напр. предоставяне на документи, справка за статус, дефинирани действия за одобрение).

Вариант B: Сървис‑ядро като общ процесен слой (препоръчително при парален експлоатация)

Тук премествате поетапно бизнес логика от десктопа в услуги. Десктопът и порталът ползват едни и същи крайни точки. Десктопът става по‑силен като Rich Client (UI, локални интеграции), а правилата и валидациите се изпълняват сървърно.

Оперативно предимство: централно място за права, audit, логика на статуси и валидации; консистентно поведение през всички фронтенди.

Натоварване: по‑високо в началото, тъй като стандартите за API, формати за грешки, версиониране, мониторинг и деплой трябва да се планират чисто. В замяна натоварването по‑късно спада значително, защото има по‑малко специални пътища.

Вариант C: Порталът води, десктопът остава като специален клиент

Този вариант е целесъобразен, ако браузърът е стратегическият стандартен достъп (напр. силно разпределена организация), а десктопът остава за роли с специален хардуер или високопроизводително въвеждане. Сървис‑ядрото трябва да е особено стабилно и мащабируемо.

Layer-3 архитектура като разбираема насока

Независимо от варианта помага Layer-3 архитектура: (1) презентация (десктоп/портал), (2) приложение и домейн слой (use cases, правила), (3) инфраструктура (база данни, файлов сторидж, messaging, външни системи). За администраторите това е важно, защото границите на експлоатацията се изясняват: кое е „frontend-проблем“, кое е „service‑проблем“, какво лежи в базата данни или сториджа? Това разделение скъсява отстраняването на грешки и намалява страничните ефекти при деплой.

Практически подход: Как десктоп и портал споделят един и същи процес

Най‑голямото предизвикателство рядко е „да се построи портал“, а въпросът: Как да разделят отговорностите в един и същ процес, без правилата да се дублират? Три шаблона са особено релевантни в практиката.

1) Use‑Case‑APIs вместо таблици или CRUD‑APIs

Честа задънена улица е API, което само оголва таблици от базата данни („Create/Read/Update/Delete“). Тогава правилата се налага да се преправят в портала, а десктопът остава със собствените си правила. По‑добри са Use‑Case‑APIs: крайните точки описват бизнес действия като „създай рекламация“, „одобри поръчка“, „качване на документ“, „потвърди статус на доставка“.

Ефектът в експлоатация е осезаем: валидациите се случват сървърно, съобщенията за грешки са възпроизводими и и двата клиента (десктоп и портал) задействат същия поток чрез една и съща логика.

2) Управление на конфликти и повторения

С портал се увеличава вероятността за паралелни промени и повторни заявки (напр. при таймаути, retries или двоен клик от потребителя). Тук помагат три концепта, без да се въвеждат „постоянни заключвания“:

  • Idempotenz: Критичните действия са устроени така, че повторение да има същия ефект и да не се изпълнява двойно. Практически това се реализира чрез уникален идентификатор на заявката (Idempotency Key).
  • Optimistic Concurrency: Един запис носи информация за версия (напр. „Row Version“). При промяна услугата проверява дали версията е валидна и връща конфликт при несъответствие.
  • Къси транзакции: Вместо „да заключим всичко“ записите за писане се задържат кратко. Дълги операции (напр. експорти, пакетни репорти) се изпълняват асинхронно.

За техническите отговорници е важно: тези механизми намаляват усилията на поддръжката, защото типичните проблеми („стана два пъти“, „моят запис изчезна“) се срещат значително по‑рядко.

3) Чисто моделиране на състояния и предавания

Ако десктопът обработва сложни случаи, а порталът само подава заявки или предварителни елементи, са нужни дефинирани преходи на статуси. Практичен разрез е: порталът създава или допълва записи в ясно ограничени статусни зони (напр. „подадено“), десктопът обработва специалните случаи, а сървис‑ядрото решава и протоколираме смяната на статуси. Така се избягва портален клиент да „счупи“ процеса чрез индиректна конфигурация.

Данни и документи: често подценяваната област на интеграция

Почти всеки портал включва операции с файлове: качвания, доказателства, товарителници, изображения, PDF‑извеждания. За администраторите това е ключов момент, защото влияе на backup, права, антивирусни проверки, разходи за сторидж и производителност.

Къде да се съхраняват файловете: база данни, файлов споделян ресурс или обектен сторидж?

Има три разпространени опции за съхранение, всяка води до различна оперативна реалност:

  • База данни (BLOB): добър избор, когато транзакциите трябва да са силно свързани и backup/restore да останат единен пакет. Недостатъците са по‑големи бази и удължени backup прозорци.
  • Filesystem/Share: типично On‑Prem, лесно интегрирано в съществуващите backup концепции. Важно е ясното управление на права и API слой, който контролира достъпа.
  • Обектен сторидж: подходящ при мащабиране, правила за жизнен цикъл или когато външните достъпи трябва технически да се капсулират. Изисква съзнателен модел за ключове и права.

Независимо от мястото на съхранение: порталът не трябва да зарежда файлове „директно“ от share. По‑добре е контролиран download през service‑ендпойнти с проверка на права, протоколиране и опционална времево ограничена URL за сваляне.

PDF и репорти: сървърно, а не двойно

Delphi десктопите често имат развита печатна и репортинг логика. Порталите често имат нужда от същото съдържание като PDF. Вместо поддържане на две реализации, има смисъл централното генериране на документи в сървис‑ядрото: шаблони, версиониране и формати за изход да са сървърни; десктопът и порталът консумират резултата. Оперативно това носи ясни ползи: възпроизводими изходи, единно съхранение и по‑малка зависимост от десктоп инсталации.

REST‑сървъри и услуги: Delphi, C# или смесена архитектура

При решението „Delphi или C#“ става дума по‑малко за идеология и повече за възможността на екипите, експлоатационната среда и сервизируемостта. В много среди смесена архитектура е реалистична, стига отговорностите да са ясно изрязани.

Delphi като сервизна платформа: уместно при налична бизнес логика

Ако бизнес логиката и достъпът до данни вече са солидни в Delphi, Delphi‑базиран REST‑сървър може да бъде ефективен. За администраторите и вземащите решения е важно: обслужването на сървър не е „стартиран десктоп в постоянен режим“. Продуктивна услуга изисква ясна конфигурация, коректни таймаути, структурирани логове, health‑checks и възпроизводим деплой.

Също така достъпът до данни трябва да се модернизира, ако още се използват стари драйвери или BDE е въвлечена. BDE‑Ablösung и преминаване към модерни данни намаляват смущения в експлоатацията и улесняват деплойването, защото се изискват по‑малко legacy компоненти за инсталиране и поддръжка.

C# услуги в порталната екосистема: често заради хостинг и identity

Ако порталът се реализира в .NET доминирана среда, C# услуги са логичен избор – не на последно място заради интеграция на Identity, съществуващи оперативни стандарти и хостинг зад Microsoft IIS или в контейнери. Решаващо е да се избегне двойна имплементация: или ядрената бизнес логика остава в Delphi‑услуги и C# поема edge теми (напр. портал‑специфична оркестрация), или планирате контролирана миграция на логиката в .NET с ясни граници по бизнес области.

API‑Gateway: елемент за подредба, но не задължителен

API‑Gateway може да консолидира централни функции (routing, rate‑limits, логиране, автентикация). За по‑малки стартови архитектури често е достатъчна консистентна API с единни стандарти. Когато обаче има множество услуги и потребителски групи, gateway‑ът улеснява стабилизирането на външната граница и централното прилагане на политики.

Автентикация и права: от вътрешния десктоп към външния портал

С портала се променя ландшафтът на потребителите: освен вътрешни потребители идват външни акаунти, роли и клиенти/манданти. Това налага изисквания към identity, права и audit. За администраторите е важно, защото identity системите и моделите на роли по‑късно се променят трудно.

SSO с SAML 2.0 или OIDC: по‑малко административно натоварване, по‑добър контрол

В B2B конфигурации SAML 2.0 (single sign‑on чрез Identity Provider) е разпространен, защото компаниите искат да използват съществуващи идентичности. OIDC (OpenID Connect) също е често срещан, особено в по‑съвременни платформи. Класическите логини с потребител/парола са възможни, но носят допълнителни усилия за политика на пароли, MFA, процеси за ресет и поддръжка.

Важно за архитектурата: автентикацията (кой си ти?) и авторизацията (какво можеш?) трябва да се проверяват сървърно – не във фронтенда на портала.

Мулти‑мандантност и модел на роли: не „да се добави по‑късно“

Един клиентски портал практически винаги изисква разделяне на манданти: един клиент вижда само своите данни. Това трябва да се реализира в сървис‑ядрото, по възможност чрез:

  • Claims в токена (напр. Tenant‑ID, роли, договорна референция), за да могат услугите да вземат решения.
  • Проверки на ниво запис (Row‑Level‑Checks в бизнес логиката), а не само „скриване на менюта“.
  • Audit‑trail за ключови действия (кой, какво, кога), плюс корелация чрез Request‑ID за анализ при грешки.

Десктопът може – при желание – също да работи с токени срещу същия identity стек. Това намалява специални пътища и улеснява проследимостта на промени, особено когато порталът и десктопът редактират един и същи запис.

Модернизация на достъпа до данни: FireDAC, PostgreSQL и контролирани пътища на данни

Много Delphi‑десктоп решения са исторически изградени с директен DB‑достъп. С появата на портал това става архитектурен въпрос: пътищата на данни трябва да са контролируеми, валидациите да работят централизирано и производителността да остава стабилна и при паралелно натоварване.

FireDAC като основа за поддържим достъп до данни

BDE‑Ablösung с нативно свързване е разпространен стандарт в Delphi среди за достъп до модерни СУБД. По‑важна от конкретния компонент е унификацията: параметризирани заявки, ясни транзакционни граници, единна обработка на грешки и измерими времена на изпълнение. За експлоатацията е съществено, че таймаутите и потреблението на ресурси са предвидими и че проблемите се проследяват в логове и мониторинг.

PostgreSQL с Delphi: управляемо при чист тип‑и миграционен концепт

PostgreSQL с Delphi е стабилно решение, ако тип‑мапирането (напр. UUID, времеви печати, JSON‑полета), индексите и schema‑миграциите се третират коректно. Порталите генерират много филтрирани заявки за листове; за тях филтрите, странирането и сортирането трябва да се реализират сървърно, за да не се предават ненужно големи обеми данни. Това намалява натоварването и подобрява потребителското усещане, без да влошава производителността на десктопа.

Експлоатация, деплой и мониторинг: осигуряване на портална зрелост за Delphi бекенд

Порталът обикновено е постоянно достъпен и следователно изисква по‑интензивна експлоатация отколкото чист десктоп. За администраторите това е областта, където добра архитектура дава бърза възвръщаемост: чрез възпроизводими деплойове, ясна observability (логове/метрики) и дефинирани прозорци за поддръжка.

Windows‑услуга или Linux‑услуга: решаващ е експлоатационният модел

Delphi‑услугата може да се експлоатира като Windows‑ и Linux‑услуги или като Linux‑демон. По‑важни от ОС са стандартите, които правят експлоатацията стабилна:

  • Health‑Checks за мониторинг и load balancer (напр. „услугата е жива“ и „базата данни е достъпна“).
  • Структуриран логинг (вкл. Request‑ID, потребител/tenant, време на изпълнение, статус кодове), за да могат случаите на поддръжка да се възпроизвеждат.
  • Конфигурация без прекомпилиране (напр. променливи на средата, централизирани конфигурационни файлове), за да са деплойовете автоматизируеми.
  • Възможност за rollback чрез ясни версии и миграционно‑безопасни промени в базата данни.

Профили на натоварване: портал = „много кратки заявки“ вместо „малко дълги сесии“

Десктоп‑употребата често генерира по‑дълги работни периоди на потребител, докато порталите предизвикват много кратки, паралелни заявки. Типични технически мерки са:

  • консеквентно страниране, сървърни филтри и ограничени размери на отговорите
  • кеширане за справочни данни и рядко променящи се заявки
  • асинхронни job‑ове за дълги операции (експорти, пакетни репорти)
  • rate‑limits и защитни механизми срещу злоупотреба

За вземащите решения е централно: производителността не е „финна настройка накрая“, а част от дефиницията на API (размери на отговори, таймаути, фонова обработка).

Модернизация без Big‑Bang: един устойчив път в пет стъпки

Пълен нов строеж рядко е необходим и често е рисков, тъй като процесните знания са в Delphi клиента. Ефективен е подход, при който всяко ниво е продуктивно използваемо и не застрашава експлоатацията.

1) Инвентаризация: процеси, владение на данни, интеграции

Не започвайте от формите, а от use cases: кои потоци да влязат в портала? Кои данни може външен потребител да вижда или променя? Какви интерфейси съществуват към ERP, DMS или CRM? От това произлиза приоритетна API‑листа с реална добавена стойност.

2) Дефиниране на service‑основи: Auth, формат за грешки, логинг, версиониране

Тази база определя бъдещата поддържимост. Договорете рано стандарти за автентикация/авторизация, единно форматиране на грешки, корелация на заявки, версиониране на API и телеметрия. Това намалява триенето между порталния екип, бекенд екипа и експлоатацията.

3) Доставете първата портална пътека end‑to‑end

Изберете процес с ясни граници (напр. документен модул или справка за статус). Важно е цялата верига да работи: login, проверка на права, API, UI, логинг, мониторинг, експлоатация. Така организацията рано вижда кои стандарти работят в практиката.

4) Целенасочено свързване на десктопа: критични записващи пътеки през услуги

Когато услугите са стабилни, мигрирайте избрани десктоп функции: най‑вече смени на статус, одобрения или централни валидации. Десктопът остава мощен, но правилата стават по‑консистентни и директният запис в базата се намалява поетапно.

5) Консолидиране: премахване на двойни правила и специални пътища

Иначе с времето се оформят „две системи“. Планирайте редовна консолидaция: кои правила са дублирани? Къде порталът може да ползва десктоп‑сървиса? Кои репорти да се генерират централно? Целта е управлявана платформа, не догма.

Типични капани от гледна точка на експлоатацията – и как да ги избегнете

Правилата се пренаписват в портала

Това води до отклонения и случаи за поддръжка. Контрамярка: Use‑Case‑APIs със сървърни валидации, ясни връщания при грешки и, където е възможно, общи бизнес тестови сценарии.

Неясно владение на данните между десктоп и портал

Ако и двата клиента могат да променят „всичко“, възникват конфликти. Контрамярка: модел на статуси, дефинирани отговорности и Optimistic Concurrency за конкуриращи се промени.

Сигурността се третира като последващо допълнение

Особено при клиентски портали SSO, мандантни проверки, сигурни сваляния и audit са необходими от началото. Добавянето им по‑късно е по‑скъпо и увеличава риска от пробойни в сигурността.

Липса на прозрачност в експлоатацията

Без Request‑ID, структурирани логове и health‑checks отстраняването на грешки става детективска работа. Контрамярка: observability като задължителна част от първите service‑релийзи.

Извод: Сървис‑ядро свързва силата на десктопа с обхвата на портала

Комбинацията от Delphi десктоп и уеб‑портал е в много компании реалистичният път да се запазят ключовите процеси и същевременно да се позволи външно сътрудничество. Решаващо е да не оперирате две отделни светове, а да изградите обединяващо сървис‑ядро: Use‑Case‑APIs, чисти права, проследими състояния, контролирани пътища на данни и експлоатационен модел с логинг, мониторинг и предвидими деплойове.

Така се реализира модернизация с междинни цели: десктопът остава продуктивен, порталът доставя ранна стойност и архитектурата постепенно става по‑консистентна и поддържима.

В бизнес контекста важна роля играят и Delphi модернизации, когато интеграции, потоци от данни и по‑нататъшно развитие трябва да работят чисто заедно.

Обсъдете проект или модернизационно начинание с Net-Base.

Следваща стъпка

Когато темата прерасне в реален проект, архитектурата, съществуващите активи и експлоатацията трябва да се разглеждат заедно още в ранния етап.

Подпомагаме не само при отделни въпроси, но и когато от фрагменти от изходен код, проблеми с наследени системи или идеи за портал трябва да бъде реализиран надежден корпоративен проект.

  • Сегашното състояние, целевото състояние и техническите рискове се оценяват съвместно.
  • REST, достъпът до данни, порталите и разгръщането не се отлагат като по-късни последващи задачи.
  • Вие виждате навреме кой път е икономически и оперативно жизнеспособен.

Сподели публикацията

Споделете тази публикация директно

LinkedIn, X, XING, Facebook, WhatsApp и електронна поща са налични веднага. За Instagram подготвяме директно връзка и кратък текст.

Електронна поща

Instagram се отваря в нов раздел. Връзката и краткият текст се копират предварително в клипборда.