The first three parts of this series discuss virtual machines in the cloud as an intro, digital transformation strategies as a strategic overview and how to simplify and automate application transformation as a proactive step towards effective execution of an application modernization strategy. It is only natural then to focus now on some concrete examples of application transformation coming from aging source platforms.The first three parts of this series discuss virtual machines in the cloud as an intro, digital transformation strategies as a strategic overview and how to simplify and automate application transformation as a proactive step towards effective execution of an application modernization strategy. It is only natural then to focus now on some concrete examples of application transformation coming from aging source platforms such as Visual Basic, PowerBuilder, VB.NET or Java desktop, to modern target platforms such as ASP.NET MVC or Spring, and clients like Angular. These are just a few examples of course, so even if your team has voted either C# or C Sharp in all past projects or even if you prefer not to marry Microsoft or Google when choosing a target platform for cloud transformation, the examples here can be easily generalized for many other cases of moving desktop applications to the cloud.An interesting example to examine is that of modernizing a monolithic VB6 desktop application into a well architected web application. Back in the day VB6 apps were sprouting on desktops like mushrooms after rain, with Visual Basic being one of the prominent RAD tools of the 1990s. They were quick to write, had lots of third party controls available and boasted a nice looking UI for that time. Nostalgia aside, when it comes to cloud deployment, VB6 which was designed by Microsoft with desktop applications in mind, cannot compete with modern web-oriented user experience when that is desirable. As explained in part one, even when performing lift & shift and uploading the aging desktop app to a virtual machine in an IaaS cloud it still has a lot of drawbacks, as in order to benefit from what a native cloud has to offer the VB6 app has to be re-architected for PaaS deployment. Let's examine then how a solution that simplifies and automates the modernization process can transform the VB6 application, or any other desktop application for that matter, into a cloud application with web-based browser accessibility. The VB6 application on the left is modernized into the PaaS-ready web app on the right by the GizmoxTS tool-based solutionDepicted above on the left is an exemplary VB6 application that is to be transformed into a well-architected cloud application with web-based UI that is ready for PaaS deployment, as appears on the right. During the transformation process, the Visual Basic data access module on the left is extracted and transformed into data components in the data layer of the modernized cloud/web application on the right. The challenging part of the transformation is yet to come though, as in many cases engineers have used the permissive VB6 to create applications that the aging platform was not originally designed for. The code of such applications is not called spaghetti code for nothing and in many cases it has little to no separation between business logic, UI and other modules, which makes it a mammoth task to extract the business logic. Unfortunately, it is essential to extract the often entangled business logic from the VB6 app in order to re-specify it as a preparation for a manual rewrite to cloud/web platforms.As the task of re-specifying a desktop application that was written decades ago is often impractical to be done manually, we first run an automated analyzer that scans and analyzes the functionality and structure of the legacy application so it could then rewrite it with equivalent functionality on the target platform. The tool can achieve that as it performs full holistic- semantic analysis of the app based on machine learning, and its valuable output is then used in next stages of the transformation process as well as for assessing time and cost for the whole application modernization project. Then if there is an interface like WCF it moves to the controller communication layer and binding and validation are transformed into the model, as VB6 does not have a pure model but rather a model that is intertwined with the UI. Finally, the UI of the VB6 app is transformed into the view module as appears in the presentation layer of the web application on the right. A control framework like Sencha JS is then used to render the client, which interacts with the server through an AJAX pipe and supports both desktop and mobile devices as appears on the bottom right.User interface of the analyzer that scans and analyzes the legacy application Other desktop applications such as .NET and Java ones can also be transformed into well-architected web applications with ASP.NET MVC or spring on the server side and modern JS clients in a similar manner. PowerBuilder desktop apps are also popular candidates for modernization into cloud/web applications. In general, PowerBuilder offers better separation between business logic and UI than VB6 but its sophisticated building blocks can make it challenging to refactor, and a tool that can simplify and automate the app refactoring and re-architecting process comes in very handy in this case as well.The PowerBuilder application on the left is refactored and re-engineered into the PaaS-ready web app on the right by the tool-based GizmoxTS solutionDepicted above is an example of refactoring a PowerBuilder application into a well architected cloud/web application in a similar manner to the above VB6 example with the required adaptations based on the respective feature set of each source platform. Similarly, below is another example for application transformation with PowerBuilder as a source platform but this time with Angular as a target platform.PowerBuilder app on the left is refactored into the Angular app on the right by the GizmoxTS tool-based solutionAll in all, the various examples above can be generalized to any case where a desktop application needs to be transformed into a cloud/web application, potentially with a mobile interface and with a user experience that is in line with modern web standards. Using a dedicated tool is often essential for such transformations to be successful, especially in order to perform the complex task of analyzing the desktop applications and then refactoring and rearchitecting them for a cloud/web platform.