Blog

Delphi migration, conversion, and modernization - Servoy

Written by Ron van der Burg | Jan 20, 2021 5:43:00 AM

Automatic migration, conversion, and modernization of Delphi Applications: are there magic shortcuts?

Over the years, we have forged relationships with many ISVs and enterprise teams, and we’ve observed that Delphi-based applications tend to be fairly sophisticated and are, quite often, complete ERPs. Delphi developers are accustomed to having extensive UI tools and plug-ins in the Windows world. However, the Delphi platform hasn’t kept pace in the era of “webified” biz apps, leaving many of its developers scrambling to find a solution.

Rewrite vs. RAD

Too often, the only choice is to start over – the dreaded word: “rewrite”. Most companies look to .Net or other DIY approaches, perhaps not fully appreciating that the leap from a RAD platform to low-level languages and frameworks is a whole different ball-game. In these cases, developers are not just rewriting their business logic and UI, but they also have to build (and maintain) an entire development and deployment stack. Is it any wonder that many of these projects fail?

The Servoy platform is a natural evolution from Delphi to a modern offering, without the need to build the “stack” from the ground up. We’ve been asked, more than a few times if there could be some kind of automated conversion from Delphi to a modern platform; a sort of magic wand. Unfortunately, for sophisticated applications, this is almost never possible, although there are sometimes shortcuts.

Three layers of applications

But here is what we have seen and done. We see an application as three layers: the database, the business logic layer and the UI. Let’s take each one separately.

  1. Converting databases: This part is generally easy because Delphi applications often use a standard relational backend already, so…check in the box! (Even DB schema or vendor changes are routinely handled with common tools and approaches)
  2. Converting business logic: This is the most challenging part. Application code is always written in the context of available APIs, frameworks and environments which does not translate well when the context changes. The good news: we generally see that the amount of code required to do the same tasks is significantly less when moving from classic RAD tools to Servoy. And the availability of newer APIs and frameworks can give a fresh take on approaches.
  3. Converting the UI: Ah here we have some decisions to make. First, there are shortcuts. In Delphi’s case one can export screens to XML and Servoy can parse and rebuild those, making it possible to have an auto-conversion of sorts. But this begs the question…Why are we modernizing this application in the first place?! When moving a classic (Windows) application to a modern SaaS/browser offering, why not take advantage of modernUX possibilities, even new deployment models and novel revenue streams.

So… what should you do? There are, generally speaking, two motivations in-play for two different types of organization. Software vendors need modern (UX-driven) applications in order to compete effectively. Today that typically means Cloud or SaaS and Mobile. Enterprise organizations with in-house or customer-facing applications often have a growing need to support Windows and Mac, and a desire to outsource the “hosting” piece (obviating the need for on-premises infrastructure). There is of course the risk of remaining dependent on “dying” platforms.

Minimum Viable Product as focus on modernization

Our advice is to establish an MVP (Minimum Viable Product) as a focus of your modernization. Try to define a small product (a subset or single module) that you could deliver independently to your current users/customers or (if you are an ISV) sell to new customers who don’t need the full-feature immediately. There are situations where MVP is not an option. In these cases, a module-by-module approach can be a successful way to quickly build momentum and reduce risk.

Watch our Dephi webinar

But don’t take our word for it! Watch our webinar “From Delphi to Cloud, Web, and Mobile” and listen to two software vendors who have gone through this themselves.