Net-Base Магазин

09.04.2026

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

Многа предузећа имају стабилне Delphi-апликације са вредном логиком и значајним оперативним знањем. Питање је ретко само заменити или задржати.

09.04.2026

Од теме часописа до пројектне праксе

Одговарајуће странице услуга и техничке странице за чланак

Delphi-апликације у многим предузећима раде стабилно већ годинама – и приказују управо ону пословну логику која обезбеђује приход, квалитет услуге и усаглашеност. При модернизацији је због тога ретко реч о „новом корисничком интерфејсу“, већ о контролисаном даљем развоју при којем се правила, изузеци и историјско процесно знање очувају.

У овом тексту показујемо проверени приступ за постепену модернизацију Delphi: од инвентара преко одвајања UI/приступа подацима до техничке модернизације (Unicode/64‑Bit, BDE-Ablösung, API/Services) – укључујући осигурање кроз тестове, мониторинг и паралелни рад. Циљ је архитектура погодна за модернизацију, без Big-Bang-Rewrite и без губитка логике.

Модернизације у пракси ретко не успевају због компајлера или оквира, већ због погрешних претпоставка о понашању система. Током година развијане Delphi-апликације обично садрже пословна правила у GUI-догађајима, SQL у логици формулара, варијанте по купцу/мандантy, историјски условљене изузетке и интеграције које су документоване само „у раду“.

Big-Bang-Rewrite приморава на реконструисање тог знања – укључујући и грешке које старо решење одавно више не прави. Бољи приступ је третирати пословну логику као имовину: изоловати, осигурати, па затим корак по корак модернизовати.

Одржива циљна слика за процесно-критичне B2B-системе није „све ново“, већ архитектура која омогућава промене – без угрожавања текућег рада:

  • јасна подела UI, домен-логике, приступа подацима и интеграција
  • тестабилност и мерљивост (регресија, логовање, мониторинг, репродуцибилни builds)
  • постепена заменљивост (модернизовати UI без непосредне DB-migracije – или обрнуто)
  • API-способност (нпр. REST), за повезивање портала, мобилних решења или системских интеграција
  • deployments спремни за рад у производњи са опцијом rollback-а

Delphi је за то погодан, јер постојеће Units и доменске класе могу да се поново користе док се споља модернизује околина.

Пре него што се код прилагоди, потребна је поуздана основа за одлучивање – не потпуна документација. Показала су се корисним ова три резултата:

  • Mapa poslovne logike: критични use-case-ови, правила/рачунања, варијанте (манданти/земље/клијенти), интерфејси, job-ови/batch-извршавања.
  • Profil rizika: посебно критичне области за грешке, квалитет података, регулаторни захтеви, уски грла у раду (перформансе, стабилност, одрживост).
  • Backlog modernizacije: приоритизовани пакети по пословној вредности и ризику (шта мора остати стабилно, шта сме да се промени, шта може касније).

То омогућава да се модернизација планира: јасним инкрементима уместо једног „све-или-ништа“ пројекта.

Да пословна логика не би била „случајно“ измењена, потребно је осигурање које функционише независно од UI-рефакторинга. Типични грађевни блокови:

  • Characterization/Golden-Master-testovi: постојеће понашање се преко репрезентативних улаза/излаза замрзава (извештаји, израчунавања, процесни кораци).
  • Regresioni testovi na nivou use-case-a: пословно-критични токови се аутоматски или полу-аутоматски репродукују.
  • Telemetrija: логовање, метрике и обрасци грешака чине се упоредивим пре и после промене.
  • Paralelni rad & kontrolisana промена: нови модули раде уз постојеће (Feature Toggles, пилот-групе), са јасном rollback-стратегијом.

Тек када су ти сигурносни механизми успостављени, стварна техничка модернизација има смисла – јер се ризик и накнадни рад драстично смањују.

Најчешћи разлог за губитак логике је мешање UI, приступа подацима и пословних правила. Због тога модернизација почиње раздвајањем – не заменом UI-оквира.

Прагматичан циљ је структура са 3 слоја:

  • Presentation: VCL/FMX, Presenter/ViewModel, само валидација блиска UI-ју (формат, обавезна поља)
  • Business: модели домена, сервиси, правила, логика стања, израчунавања
  • Data/Integration: Repositories, приступ бази података, адаптери за ERP/DMS/CRM, REST-Clients, Messaging

Практично правило: пословна правила се премештају из OnClick/OnExit у доменске сервисе. SQL се премешта из Forms у Repositories. Тако логика постаје тестабилна и касније поново употребљива преко UI-ја, сервиса и Jobs.

При Strangulation Pattern настаје ново намерно „поред“ постојећег: нове функције се већ имплементирају у одвојену структуру, док стар систем наставља да ради. Корак по корак нови слој преузима све већу одговорност, док стари делови нестану.

Пример (типично B2B):

  • Екстрахујете логику поруџбине у доменски сервис.
  • Постојећи VCL-UI у почетку користи исти сервис (без прекида процеса).
  • Паралелно настаје REST-Endpunkt за портал клијената или интеграцију.
  • Након стабилизације појединачне старе Forms се замењују – без потребе да се језгрена логика изнова гради.

Тако смањујете ризик пројекта, одржавате оперативност и брзо остварујете мерљиву корист (нпр. API, перформансе, одржавање).

У зависности од почетног стања ови елементи су често релевантни – пресудно је приоритизација по ризику и пословној вредности:

  • BDE/Legacy-DB-Zugriff zameniti: модерни drajveri/provideri, чисте границе трансакција, репродуцибилни Deployments.
  • Unicode: руковање стринговима, база података/интерфејси, компоненте трећих страна.
  • 64‑Bit: зависности, меморија/перформансе, екстерне библиотеке.
  • API- und Service-Schicht: REST, Windows-/Linux-Services, интеграције.
  • Build & Release: CI/CD, управљање артефактима, потписани инсталери, rollback.

Важно: ове тачке се идеално имплементирају након раздвајања и осигурања – тада се измене могу сигурно верификовати.

Потпуни Rewrite је у појединим случајевима сврсисходан – често је, међутим, најскупљи пут да се добије „модерна техника“. Ова питања помажу при процени:

  • Да ли је пословна логика у потпуности схваћена и тестабилна – или је много знања имплицитно у раду?
  • Постоје ли чврсти рокови (нпр. крај платформе, Compliance) који искључују паралелни рад?
  • Колика је разноликост варијанти (Kunden-/Mandantenlogik)?
  • Колико је критична доступност и колика је толеранција на промене процеса?
  • Који делови су заиста „криви“ (UI, приступ подацима, интеграције, deployment) – и који су стабилни?

У многим B2B сценаријима постепени приступ брже води до мерљивих резултата, јер контролише ризике и штити пословну логику.

Delphi-Modernisierungs-Audit (за процесно критичне апликације): Анализирамо архитектуру, зависности, области ризика и испоручујемо приоритизовану Roadmap како да модернизујете, без губитка пословне логике.

  • Input: codebase (read-only), build-setup, 2–3 кључна случаја употребе, системско окружење (DB, интеграције).
  • Резултат: мапа пословне логике/модула, анализа ризика и зависности, препоручена циљна архитектура, план имплементације у инкрементима укључујући обезбеђење (тестови/паралелни рад).
  • Опционо: Proof of Concept за одвајање + први Golden-Master тест.

Так добијате поуздану основу за одлуку пре него што буџет и време буду уложени у ризичан Rewrite.

Може ли се Delphi модернизовати без поновног писања апликације?
Да. У многим случајевима се прво одваја пословна логика од приступа подацима, а потом се врши техничка модернизација. То смањује ризик и одржава стабилност рада.

Како спречити да се пословна логика „тихо“ мења?
Путем Golden-Master/регресионог тестирања, телеметрије као и контролисаног паралелног рада са јасном стратегијом повратка (rollback).

Који кораци често доносе најбржу корист?
Транспарентност (Assessment), одвајање UI/SQL, BDE-замена и API-/Service-слој за интеграције – сваки од њих обезбеђен тестовима.

Колико дуго траје модернизација?
То зависи од критичних случајева употребе, разноврсности варијанти и зависности. Процена обично у кратком времену пружа поуздану роадмапу и приоритетне инкременте.

Следећи корак

Када тема прерасте у реалан пројекат, архитектуру, постојеће системе и операције треба рано разматрати заједно.

Подржавамо не само у појединачним питањима, већ и када из исечака изворног кода, застарелих тема или идеја за портале треба да настане поуздан корпоративни пројекат.

  • Постојеће стање, циљано стање и технички ризици оцењују се заједно.
  • REST, приступ подацима, портали и роллаут се неће одлагати као накнадне последице.
  • Ви рано видите који пут је економски и оперативно одржив.

Подели објаву

Поделите ову објаву директно

LinkedIn, X, XING, Facebook, WhatsApp и е-пошта су одмах доступни. За Instagram припремамо линк и кратак текст.

Е-пошта

Инстаграм се отвара у новој картици. Линк и кратак текст се претходно копирају у међуспремник.