Delphi Parser - nástroj pro migraci starších projektů

English verion below

Již řadu let Embarcadero "varuje" uživatele, že BDE je zastaralá a nepodporovaná technologie. Přesto s každou novou verzí je k dispozici i instalace BDE (pro 10.4 Sydney jej naleznete na této adrese). To ukazuje jak mnoho aplikací napsaných v historických verzích stále neúnavně odvádí svou práci. Migrace starších aplikací je časově náročná a tím pádem nikterak levná záležitost. Nové technologie, komponenty třetích stran, které již nejsou udržovány a podobně.

Embarcadero se samozřejmě (ve vlastním zájmu) snaží vývojářům pomoci. Množství informací soustředili pod Embarcadero Migration and Upgrade Center a již několik verzí je spolu s vývojovým prostředím dodávána také utilita "ReFind" založená na regulárních výrazech (najdete ji v adresáři bin).

DelphiParser

V rámci aktuální nabídky (bohužel pouze pro edice Enterprise a Architect) udělala společnost další vstřícný krok a do bonusového Enterprise Component Packu přidala i DelphiParser. Jedná se o nástroj, který je kompletně napsaný v Delphi a podle výrobce byl otestovaný na rozsáhlých projektech. V porovnání s ReFind je "inteligentnější" a shopný se učit.

Migrace probíhá ve více krocích na bázi předpřipravených, plně přizpůsobitelných skriptů. Ty jsou vygenerovány na základě analýzy existujícího kódu. Poradí si tak s různými jazykovými konstrukcemi (i těmi staršími jako je klauzule "With"), zvládá mapování objektů, vazby mezi objekty a DFM, přidávání / odebírání jednotek do / z uses a mnoho dalšího. Změny jsou prováděny do nové kopie projektu bez destruktivních zásahů do původního kódu. Hlavní oblasti na které se DelphiParser soustředí je převod aplikací z BDE na FireDAC, včetně vazeb na Data Access komponenty. Dále umožňuje optimalizaci databázových dotazů, přechod na Unicode, přechod na 64bit, převod z VCL do UniGUI, vyčištění a refaktoring kódu, nebo i přenesení C/S aplikací do prostředí RAD Serveru.

Delphi Parser - tool for migration of older projects

Embarcadero has been warning for years that BDE is quite fossilised and unsupported technology. Nevertheless, each new version comes with BDE installation package (for 10.4 Sydney is available here). This issue proves how many apps written using historical and obsolete versions of Delphi are still alive and purposeful. It's a matter of course that migration of outdated apps is time-demanding and cost-demanding. New technologies, unsupported third-party components etc.

In its own interest, Emarcadero endeavours to help the developers. A lot of information has been collected in Embarcadero Migration and Upgrade Center and ReFind utility (based on regular expressions) has been supplying together with IDE for a couple of recent versions of Delphi/RAD Studio (it can be found in bin subdirectory).

DelphiParser

Within the up-to-date offer (for Enterprise and Architect editions only, unfortunately) company has made further cooperative step onwards and DelphiParser has become a part of bonus Enterprise Component Pack. We're speaking about the tool completely written in Delphi, that has been - according to the vendor - carefully tested on large projects. It is "more intelligent" in comparison with ReFind and is also capable to learn autonomously.

Migration is done in more particular steps that are conducted by ready-made, fully customizable scripts. They are generated on the basis of the analysis of existing code. Delphi Parser is therefore capable to cope with various language elements and constructions (even with older ones like a clause "with"), manage object mapping, relationship among objects and DFM files, adding/removing units to/from uses and much more. All the changes are performed into a new copy of the projects without destructive intervention into an original code. DelphiParser's main area of specialisation is migration BDE-based apps to FireDAC, inclusive of Data Access components relations. Furthermore, it allows optimization of database queries, transition to Unicode, 64bit architecture migration, switching from VCL to UniGUI, code cleaning and refactoring or even transfer of Client-Server apps into RAD Server multi-tier environment.

About the Author

Petr Houf
embt.cz