The latest Delphi IDE support IOT, iOS, Windows32-bit and 64-bit, Mac OSX and Android App development.

Why to Modernize the Application?

Experienced developers know that retaining users can be a challenge, so they continuously invest in making their applications faster, more functional and more user-friendly.

Application modernization can be by following means

  1. UpdatingApplication UI
  2. Changing Application Architecture
  3. Integrating the New Components
  4. Migrating the Application
Modernizing the Application

v-1

1. Updating Application UI (Skinning of the application)

These Delphi components change the look and feel of applications by adding themes and skins. It is an easy way to enhance the graphical user interface (GUI).

VCLSkin
VCLSkin is an easy-to-use component to create a GUI for a Delphi application. VCLSkin will theme or skin the whole application without any source code modification.

DynamicSkinForm
DynamicSkinForm VCL library provides skin support for forms, menus, hints, as well as many standard and non-standard original controls. SkinAdapter is a component of DynamicSkinForm which allows the skinning of applications without modifying the source code.

AppFace
The AppFace User Interface Development Kit is a visual application GUI skinning solution that can be used in VC, C#, VB.Net, Delphi, Visual Basic, C++ Builder, and Win32 SDK. The skinning library, appface.dll, is the kernel component; it can skin all the created windows automatically in the target application.

SUISkin
SUISkin offers automatic skin-supported application. With SUISkin, no modifications for existing projects are required. Just drop the skin engine component onto the main form and set some properties. It will skin all forms and dialogs automatically.

2.Changing Application Architecture
Embarcadero aims to make architectural transitions a lot easier for their customers. For instance, RAD Server comes with excellent support features for multi-tier architecture. The best approach is to start small and work in modules as much as possible. Plus, don’t rush to lose the VCL client as the speed it can deliver cannot be replicated, particularly in sensitive environments where even seconds matter.

Traditional Delphi development has allowed 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. 

3.Integrating the New Components
There are some excellent integration frameworks and components in RAD Studio. Embarcadero can do integration easily, and quickly. A large percentage of Embarcadero customers have adopted FireDAC according to their recent product survey. One suggestion for making your modern app more integrated is to display an inventory from the ERP or feeding into it.


4.Migrating the Application
 We see the need of migration due to various reasons:

    1. Due to slowness in the exe compiled in old version of Delphi
    2. 32-bit exe compatibility with 64-bit systems
    3. To give the application rich and new ‘look and feel’.
    4. File-based database, Sybase or Paradox makes it slow.

umang_india

Application Migration Strategies and Technologies

Below are some specific application migration strategies and technologies

1.Unicode Migration

Unicode is the name of the international character set, encompassing the symbols of all written alphabets of the world, of today and of the past, plus a few more. Unicode includes also technical symbols, punctuations, and many other characters used in writing text, even if not part of any alphabet.
The need of any Unicode changes is determined by how you’re using strings and for what purposes. If you’re not doing heavy text processing or manipulations and stick to the standard string operations, mostly likely your code will simply just work. Additionally, having lots of string literals in your code does not necessarily mean you have to make any code changes. The most common things that one has to watch for is file I/O and interfacing with external non-Delphi libraries and/or DLLs.
The UTF term stands for Unicode Transformation Format. These are algorithmic mapping, part of Unicode standards, that map each code point (the absolute numeric representation of the character) to unique sequence of byte representing the given character. Mapping can be done in both directions converting back and forth different representations.

2. 64-bit Migration

Since Delphi XE2, it has been possible to generate Delphi 64bit applications from the same code base as your traditional Windows 32bit Delphi code.

umang_delphi

Fig: 64-bit Windows target platform

If you have a code base of 32-bit Windows Delphi applications that you want to convert to 64-bit Windows, you should

        1. Open your 32-bit application in the IDE, add and activate the 64-bit Windows target platform, and compile your application as a 64-bit Windows application.
        2. Review and handle the issues (mostly related to pointer operations, NativeInt size, and Assembly code).

The sizes of the few datatypes has changed in 64-bit which we need to handle in the code. For example, on the 32-bit Windows platform, a pointer is 4 bytes whereas on the 64-bit Windows platform, a pointer is 8 bytes.

3. Migrations of Database and Middleware

Migrating from the Borland Database Engine (BDE) or DBExpress:
The Borland Database Engine (BDE) has been deprecated, and beginning with version XE8 the BDE has been removed from the Delphi installation, but is still available as a separate download from Code Central.

New versions of all dbExpress drivers with RAD Studio 10.3 Rio support have been released now. dbExpress drivers are thin and simple data-access layers with fast access to databases.

4. Migrating 3rd Party Components / Libraries
The 3rd party plug-ins (libraries) need to be rebuilt in the current Delphi version. Having the source code makes this easier. You will need to re-compile your 3rd party components / libraries from older Delphi using the current Delphi version so the components and libraries can be used in current Delphi projects.

Any 3rd party components / libraries without the source code may need updated versions for the current Delphi version.

The Delphi (XE8 and higher versions) includes the new Getit Package Manager to allow you to browse, download, purchase, and install GetIt packages into the current Delphi version.

References

          1. https://www.embarcadero.com/rad-in-action/migration-upgrade-center
          2. https://chapmanworld.com/migrating-your-project-from-older-versions-of-delphi-the-pitfalls/
          3. https://www.embarcadero.com/images/old/pdf/Delphi-Unicode181213.pdf
          4. http://docwiki.embarcadero.com/RADStudio/Rio/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows
          5. https://blog.devart.com/meet-dbexpress-drivers-with-support-for-rad-studio-10-3.html
          6. https://www.thoughtco.com/skinning-delphi-applications-1058343
          7. https://codematters.online/delphi-modernisation/
          8. https://community.idera.com/developer-tools/b/blog/posts/delphi-application-architectures-modernization-with-10-3