Application Architecture Modernization with Delphi 10.3

by Dec 7, 2018

Delphi is used to build some of the most powerful client-server applications in the world. From Defense to Healthcare, Delphi has been a reliable choice, especially when customers required high-performance Windows clients. The early 2000s saw a massive focus on homogeneous architectures with Java and .Net making dramatic gains in popularity among developers. Many of our customers were hesitant to update their Delphi applications unsure of the future. Some tried to re-platform at huge expense and high-level of risk.

Today, the application development is more heterogeneous than ever. Java and .NET are at a crossroads with a high level of uncertainty around future and cost. Large companies have accepted that technologies have different purposes. Even the popular JavaScript has many varieties and frameworks that all have different use cases. Shortages of qualified developers have led the industry to rediscover RAD.

Delphi is uniquely positioned to regain momentum. It continues to be the easiest enterprise-scale language to learn. The design of the language and tooling allows performance on par with and in some cases better than Java. There are high-quality tooling and frameworks to make development extraordinary fast and efficient. With the release of RAD Studio 10.3, there has never been a better time to start modernizing your Delphi application.

What does Delphi application modernization mean?

Delphi modernization would likely require transforming from a Client Server to a Multi-Tier-Architecture. Traditional Delphi development allowed to have less separation between business logic and the Windows client. A well-designed multi-tier application will require more rigid separation of tiers. The process of separating business logic from the client lends itself very well to adopt micro-services, which has become the staple in multi-tier architectures. It is a process and while there are parsers that can help, it clearly requires effort and resources. Of course, this is a small fraction of what any serious re-platform would require.

Developers would need to familiarize with new related technologies, both on the server side and the client. Delphi server technologies made leaps recently with RAD Server and several open source frameworks. RAD Server provides automated REST/JSON API publishing and management with multiple additional services. Server hosting may require an understanding of Clouds and possibly new platforms. Linux is available for RAD Server and is very cost efficient, but also new for many Delphi developers. On the client side, a modernization effort should consider our FMX native mobile technology and a Web Client. FMX is very similar to VCL with nuances on IDE environment setup, and most Delphi developers learn very fast, but obviously mastering will take some time. Depending on disconnected use cases and security requirements, customers should consider InterBase, which today includes many innovative features, such as Change Views. On the Web Site, Delphi developers have several options, but for larger applications and teams, it is probably better to consider a JS Web Framework. We offer Ext JS, which is the most robust enterprise-level frameworks. It has high performance and comes with many ready components and in many ways takes an approach that is familiar to Delphi developers. There is a short learning curve for a generic JS developer to master.

What is a sample architecture?

The following architecture was implemented to modernize an application of over 4M+ lines of code (credit to our partner KER-Soft Kft). The cost of the project was 15% vs the alternative re-platform and timing was 6 months vs 2 years. The resulting Delphi application has similar performance to the old application but has more features and modern UI. The architecture also provides a flexible path to continue to add new features and capabilities, faster and with fewer dependencies.

What is a good way to start?

RAD Studio 10.3 Architect Edition is a great bundle that includes all components you would need for a Delphi Modernization project. It comes with all the features of RAD Studio 10.3 Enterprise plus an unlimited RAD Server installation, an Ext JS professional edition. As an added bonus, you will get Aqua Data Studio to make InterBase development easy and a test license of Ranorex for Test Automation.

RAD Studio 10.3 (Rio) delivers an updated IDE with many new features. Delphi customers will benefit from enhancements to VCL for High DPI displays, a new VCL High DPI image list, Per Monitor V2 support, new Windows 10 and WinRT APIs, and much more. FMX includes updated mobile platform support, including Z-Order and native controls on Android.

RAD Server received significant performance improvements and enhanced support for Ext JS. RAD Server provides automated Delphi and C++ REST/JSON API publishing and management, Enterprise database integration middle-ware, IoT Edgeware and an array of application services such as User Directory and Authentication services, Push Notifications, Indoor/Outdoor Geolocation and JSON data storage.

Ext JS (by Sencha) provides everything a developer needs to build data-intensive, cross-platform web applications. Ext JS leverages HTML5 features on modern browsers and includes over 100 of pre-build, professionally supported components, including the most powerful Web Grid technology.

InterBase developer edition includes free deployment for iOS and Android making it ideal for Embedded applications. Our patent pending change view technology makes InterBase today stand out compared to SQLite and Firebird alternatives, with a much more attractive cost structure.

Aqua Data Studio is the universal database integrated development environment (IDE) for Database Developers, DBAs, and Analysts. It allows you to develop, access, manage, and visually analyze data. ADS will continue to increase support for InterBase.