GizmoxTS - BLOG

BLOG

Welcome to the new Gizmox Transposition blog. We will be using this space to share perspectives from the Gizmox team, comment on industry happenings, discuss how to get the most out of Gizmox products, and generally check in. User feedback is greatly appreciated and we will do our best to respond promptly. Hope you enjoy…

Desktop App Modernization: Who’s Who in the Zoo, Part Two: Effective Digital Transformation Strategy

Which cloud transformation strategy would fit your organization? Is there a ‘one size fits all’ strategy?
Which cloud transformation strategy would fit your organization? Is there a ‘one size fits all’ strategy? Analyzing the motivations for modernization to the cloud is a good place to start when looking into such profound questions. Also, as part one of this series started to portray, selecting IaaS or PaaS is a strategic issue that goes beyond what is simpler and faster to implement, and the search for a winning strategy has to include a careful examination of what each of those cloud solutions has to offer and what the organization is trying to achieve. Categories to be examined include the main motivations that made the organization consider moving applications to the cloud in the first place, namely scale up and scale down, maintenance and modern UX. ROI of each alternative is another important consideration and as explained below, a lot has changed in this regard in the past few years to the point where original vision of SaaS and PaaS clouds has become a lot more cost-effective than people might think.

p2.jpg

An effective strategy can be found when exploring the motivations for modernization – scalability, maintenance and UX

As in life, the easier way to go might not be the best one

Scale up and scale down sound like fundamental cloud features don’t they? Well, it is in a way but there are different degrees of agility when comparing IaaS and PaaS deployments as well as different quality of UX and different costs, all of which can make a big difference in ROI. One thing is for sure though, unlike a PaaS-based solution, selecting IaaS means that the same aging desktop app is merely uploaded to a cloud VM or to a container that mimics its original running environment, hence preserving its desktop-oriented nature. Such architectures were meant to serve a single user on a desktop machine, and as a result they lack fundamental features required to leverage PaaS cloud platforms.

Scalability is one thing, but what about maintenance? Take legacy windows apps like WinForms or PowerBuilder for example. It might be tempting to select IaaS for those as a simpler and more straightforward cloud modernization solution. A trivial yet oftentimes overlooked consideration is that selecting IaaS cannot solve the issues associated with aging languages such as Visual Basic, earlier versions of .NET and PowerBuilder. Finding programmers who can maintain the aging apps is also not a cakewalk. Not only that, going IaaS means there is now another layer to maintain, that of the virtualization and remote access solution for accessing the virtual machine in the IaaS cloud. This part is normally handled by a third party, which adds to the equation additional costs and periodic upgrades.

Another main consideration is UX, which in a world of modern applications is the indisputable king. An IaaS-based solution relies on virtualization and in most cases offers inferior UX comparing to well-architected web-based solutions designed for a PaaS cloud. Virtualization introduces additional latency and cannot compete with native solutions when it comes to supporting touch and gestures as well as adaptation to different form factors, all of which are considered a standard that users have come to expect.

Considering the above strategic disadvantages, it is possible that IaaS should be regarded as a bridging solution between a desktop app and a truly modernized native web app, and should therefore be treated as such in terms of investment and planned lifespan. From where we stand it is already evident that organizations that were part of the first generation of IaaS deployment from the past four years or so are starting to experience disillusionment following the disappointing scalability, maintenance and UX of their IaaS-based solutions. Many of those organizations are now evaluating their alternative, which might eventually result in an upgrade to a PaaS-based solution.

It all boils down to ROI

When comparing PaaS and IaaS and carefully examining strategic modernization factors like UX, agility and scalability, it seems like it is not a question of which solution performs better. In most cases aging desktop apps uploaded to an IaaS cloud VM are no match for desktop apps that are transformed into well-architected web applications optimized for PaaS. Why is it then that decision makers might still prefer IaaS over PaaS? Assuming they haven’t overlooked the factors mentioned above, it could be due to misperception about the ROI of a PaaS-based app modernization solution, as indeed on paper such a solution could seem more expensive and riskier than an IaaS-based solution.
scale.jpg

Native scale up and scale down is only possible when applications are modernized and support stateless sessions

So is there a path with better ROI for PaaS-ready application transformation? Consider an aging VB6 or Java desktop application for example. While selecting PaaS means there are no additional virtualization and remote access costs like in the case of selecting IaaS, it does require reengineering of the desktop app into a PaaS-deployable platform like ASP.NET MVC or Angular. Reengineering is mandatory when moving a desktop application to a PaaS cloud because a monolithic desktop app cannot run as is and serve multiple users in a multi-tenancy model on cloud. For example, the stateful monolithic app must be converted into a stateless one that serves multiple users to benefit from the native multi-tenancy and scale up and scale down of a PaaS cloud. While such transformations can unleash the full potential of the app running on a PaaS cloud, they do sound costly.

That indeed used to be the case, as reengineering a desktop app used to involve costly alternatives like manual app rewrite. The impractical ROI of such alternatives mainly stems from their tendency to fail to meet budget and schedule as they are often defeated by the mammoth task of extracting the business logic from the aging desktop app, and failing, as we all know, is expensive. However, a solution that is gaining traction and is as ROI-friendly as it is innovative makes transformation of desktop apps into PaaS-ready web applications a reality. It starts with a fully automated assessment tool available for a free download, which helps keeping risk under control as it analyzes the legacy app and provides time and cost estimations for the whole modernization process. It also automates business logic extraction and its valuable output is then used by the rest of the tool chain, which was designed to deliver a well-architected web application in a fraction of the cost of manual rewrite. Such a strategic sneak peek can make decision makers wonder why they have to compromise on IaaS when ROI for a fully modernized PaaS-ready application looks better than ever.
Desktop App Modernization: Who’s Who in the Zoo, Part Two: Effective Digital Transformation Strategy

Desktop App Modernization: Who’s Who in the Zoo, Part One: Virtual Machines in the Clouds

For many organizations these days there is not enough clarity when defining their digital transformation strategy, especially when it comes to selecting the right platform and deciding how to modernize their aging desktop applications to take full advantage of the cloud.
For many organizations these days there is not enough clarity when defining their digital transformation strategy, especially when it comes to selecting the right platform and deciding how to modernize their aging desktop applications to take full advantage of the cloud. In quite a few examples, going halfway with occurs due to misperception of what is possible and what is not when it comes to application modernization. There is a lot of confusion around this and not by accident, as giants like Amazon and Google aggressively promote their IaaS cloud solutions that might prove insufficient in many cases. Take the Amazon EC2 IaaS for example. Some organizations that have migrated their desktop apps to EC2 came to realize that it is more like a cloud VM than the modern PaaS or SaaS platforms they have envisioned. Merely moving old applications to the cloud, be it Visual Basic, PowerBuilder, C# or Java desktop ones, does not modernize them overnight.

cloud.jpg
Cloud VM doesn't really solve your problem; it just moves that old legacy app to the cloud

IaaS is not PaaS. Make sure you read the small letter(s)

PaaS solutions, such as the Google App Engine and AWS Elastic Beanstalk, may support applications with ASP.NET MVC or Spring on the server and an Angular client, for example. As such, PaaS is suitable for desktop applications that get truly reengineered for the cloud. PaaS solutions and true app modernization will be further discussed in part two of this article series, so stay tuned. IaaS, however, is more of a cloud-based hosting option for the same aging desktop application. This means that if you go IaaS and your old code base is based on Visual Basic or PowerBuilder for example, it won’t magically turn into Angular or ASP.NET MVC code and provide all the goodies that those modern platforms have to offer as cloud applications.

Instead of running the application natively in a desktop environment it now simply runs in a VM on the cloud, but the application itself remains exactly the same. This concept is promoted by those cloud giants as part of their lift and shift strategy for digital transformation, which basically means this – take your desktop workloads, throw them to the cloud and voilà. Sounds good doesn’t it? The headache of dealing with the hardware and software environment is handled by the cloud provider that offers virtually unlimited resources, and all that is left to do is to configure the cloud environment like the desktop one and upload the desktop application to be hosted there. What is the catch then?

Drawbacks of selecting IaaS and VM on the cloud

Know those very impressive “before and after” photos? This is NOT what is going to happen to your old desktop application when you move it to a cloud VM, as under the hood it remains identical. Actually, in some aspects, the “after” photo will look even worse. Selecting IaaS preserves all existing drawbacks of your old application, namely its aging UI, old programming language and runtime, challenging maintainability, sluggish user experience, nonexistent interoperability and so forth. Say for example, that after this pseudo application transformation, a customer reports a bug in your VB6, PowerBuilder or C# application. You still have to find the engineers that can dive into that legacy code, drink 42 cups of coffee, eat 32 slices of pizza, fix the bug, test the app and deliver it, even though this is now seemingly a modern cloud application. On top of these considerations, while cloud VM sounds like a nice buzzword, the virtual part means it needs to be accessed through a remote desktop solution, which introduces lots of latency and could actually make you miss the old days when it was just a regular desktop app.

bna.jpg
Modernization vendors will tell you anything you want to hear. Always ask for POC and case studies
 

What about a PaaS-oriented application modernization?

While PaaS-oriented app modernization will be further elaborated upon in the sequel of this post, let’s draw some general lines of a truly modernized application. First and foremost, using an , you could finally get rid of that old legacy code and upgrade to a new platform, such as ASP.NET MVC, Angular or Spring. Such a tool can modernize legacy desktop apps in fixed time and price thanks to an advanced assessment tool that analyzes the legacy code prior to the transformation, and is actually available for free. As depicted below, the tool automates and simplifies the re-architecting of the monolithic legacy app, such as Visual Basic, .NET, PowerBuilder or Java, into a server-based app like ASP.NET MVC or a client-based one like Angular 2. The tool automatically analyzes the business logic of the old application and preserves it in the modernized version, thus the learning curve of the modernized code is quite gentle. The tool also handles the partitioning of the desktop app into a modular web server and client design, which provides all the benefits of a modern Angular app such as web and mobile interfaces, superb performance and scalability, advanced security etc.
pb.png
PowerBuilder app on the left is automatically modernized into the Angular 2 app on the right by GizmoxTS
Desktop App Modernization: Who’s Who in the Zoo, Part One: Virtual Machines in the Clouds

Halfway Digital Transformation and Why Application Modernization Is a Priority

The world of digital transformation is buzzing with activity these days, as almost every company that hasn’t done so already is interested in moving its applications to the cloud. Why is it so critical to go through application modernization as part of this process?
The world of digital transformation is buzzing with activity these days, as almost every company that hasn’t done so already is interested in moving its applications to the cloud. Why is it so critical to go through application modernization as part of this process? Isn’t it possible to leave the old Visual Basic, PowerBuilder, C#, .Net or Java desktop applications as they are, and just migrate them to a cloud infrastructure? When carefully looking into this, there are a few bridging solutions that can indeed provide partial remedy, but in order to unleash the full potential of cloud technology, it is imperative to weave application transformation into the very fabric of the digitally transformed organization.

A bridging solution could rely on IaaS for example, by migrating the old desktop applications to the IaaS environment without modernizing them first. However, there are a lot of consequences that make this solution a short-lived one as explained below. While such a solution can provide abundant hardware resources, it perpetuates all software-related drawbacks, as the application itself remains the same including its old UI, performance issues and outdated code and maintenance challenges.
halfway.jpg

While halfway digital transformation might seem good on paper, it has a lot of painful consequences

Why legacy desktop applications are a block that has to be removed

Legacy desktop applications have become a real burden on numerous organizations that will have to go through an application modernization  process sooner or later to stay competitive. These outdated systems are often sluggish and their update process often takes a lot of time and resources. Furthermore, their outdated security infrastructure can be easily hacked by sixth graders if not updated frequently. On top of that, desktop applications are isolated and don’t integrate or communicate with other systems. Such communication is at the heart of modern applications as they easily share data and communicate with each other. It is easy to understand why this is so popular when looking at smartphone apps - you take a photo, you share it with the photo editor to tune colors and lighting and then share it with your favorite texting app. Similarly, modern enterprise technologies are highly effective and enable a dramatic boost in productivity. Once an advanced application modernization tool is used to simplify and automate the transformation of legacy desktop applications, this block can be removed and the organization can finally benefit from an upgrade to a web UI, new business strategies like SaaS, improved performance and better security.

We all know what it feels like facing a sluggish legacy app. Luckily, most of us are a little better at anger management

Unleash the full potential of cloud technology by automatically migrating to PaaS!

Until recently, migrating old applications directly to PaaS was considered a privilege. However, there is no more need to compromise on IaaS when choosing a target platform for your modernized solution. Thanks to recent advancement in application modernization technology, for the first time it is now possible to automatically migrate those old Visual Basic, PowerBuilder, VB.NET, C#, .NET or Java desktop applications into PaaS as full-blown cloud applications. What has changed? Among other breakthroughs, this was made possible thanks to successful handling of application state from old desktop environments in a stateless cloud environment. Cloud frameworks, such as those based on ASP.NET MVC, Spring and Angular, are stateless by nature as the application is partitioned between the local client and the cloud-based server. In a desktop application however, everything that comprises the application state is directly accessible to the business logic - each variable, checkbox value, textbox content and radio button position. Application transformation technology that can automatically bridge this gap is therefore essential for successful transformation to PaaS, and it is so revolutionary that it is actually patented.

A word about security and how to avoid those nasty worms

Going halfway with digital transformation, where old desktop applications are not modernized, introduces security risks that can take heavy tolls. This was painfully demonstrated by the Wannacry worm in mid 2017, as it exploited vulnerabilities of old Win systems, causing massive damages by billions of dollars to hospitals, airlines and others. Those massive damages could have easily been avoided by modern security measures, which are baked into the automatic application modernization tool. What makes an old Visual Basic, C Sharp or Java desktop application so vulnerable? It is actually a combination of two factors - its outdated security standards and a wrong belief that everything is fine as long as the application is under the protection of the firewall. This misperception is exactly what the Wannacry worm has disproved – when the firewall is bypassed, all sensitive information can be easily accessed and those old legacy apps are like sitting ducks, as their design assumes only a single user and their security measures are flimsy at best and often nonexistent. On the other hand, modernized cloud applications, like those based on Angular, Spring and ASP.NET MVC, have been designed for multiple users with tight security, user management and privileges built-in. These tough cookies are built to survive out in the wild without counting on a firewall to protect them, and are far superior if you have sensitive user information to protect.
ransom.png

The Wannacry ransom note. Legacy desktop applications are like sitting ducks when it comes to security standards
Halfway Digital Transformation and Why Application Modernization Is a Priority

How to Choose a Target Platform for Application Modernization When Your Fortune Teller is OOO

In the process of digital transformation, choosing a target platform is one of the first tasks to handle, and as this paper shows, there are quite a few aspects to consider when doing that. On the client side, should you prefer Angular or ASP.NET MVC? On the server side should you prefer .NET or Spring? And does it at all matter if your aging platform is based on Visual Basic, PowerBuilder or C# when choosing a target platform? How to avoid a vendor lock-in when moving applications to the cloud? Which platforms require a shorter learning curve? How to invent a time machine and travel to a future time when this decision has already been made? Well, if you are not into modern physics or if your application transformation project has an earthly schedule, here is a more practical way to choose a target platform for the modernized application.
In the process of digital transformation, choosing a target platform is one of the first tasks to handle, and as this paper shows, there are quite a few aspects to consider when doing that. On the client side, should you prefer Angular or ASP.NET MVC? On the server side should you prefer .NET or Spring? And does it at all matter if your aging platform is based on Visual Basic, PowerBuilder or C# when choosing a target platform? How to avoid a vendor lock-in when moving applications to the cloud? Which platforms require a shorter learning curve? How to invent a time machine and travel to a future time when this decision has already been made? Well, if you are not into modern physics or if your application transformation project has an earthly schedule, here is a more practical way to choose a target platform for the modernized application. fortune
If your fortune tell has no cloud expertise, this paper is for you

Want to have your cake and eat it too? Gartner says you can

While you cannot decide not to decide, you can choose a gradual upgrade approach as suggested by Gartner’s bimodal paradigm. The paradigm suggests a gradual transformation into a digital organization through modernizing core applications while maintaining some old technologies in parallel. In the end of this process, all business-critical systems are modernized. Many companies that have already implemented bimodal are now ready to completely let go of the old VB.NET, C Sharp or Java desktop applications and reengineer them for the cloud, mostly through an automated process as explained below.

On top of suggesting a gradual transformation approach, Gartner also predicts much shorter modernization cycles in near future. Instead of an average life cycle of 10-15 years just a couple of decades ago, new technologies nowadays last for as little as 3-5 years! This means that organizations need to adopt an approach of continuous modernization rather than a one-time effort. Selecting a long-term application modernization partner with latest digital transformation  technology at hand is therefore essential and could be a more strategic decision than mere selection of a target platform. Such a partner could keep your solutions up to date to ensure you will not lag behind the competition, which is probably also reading Gartner’s reports. Take banks for example. These financial behemoths are getting increasingly worried about newcomers like Amazon with no experience in banking but with lots of experience in mobile wallets and digital transformation of traditional industries.

Prioritizing the modernization process of old technologies could rely on Gartner’s market clock. Some old technologies that prove too costly to preserve, such as VB.NET, C# and Java, are top priority for modernization. These can be transformed either to server-based solutions or to client-based solutions as explained below.

phone.jpg
Modernization cycles get shorter and shorter. Plan your digital transformation accordingly

Cloud it is, but which type of cloud?

It is becoming clearer and clearer that cloud is not an “if” question, but a “when” question. Once the “when” question is answered, it is time to decide which type of cloud should be used. There are three options here in general, public, private and hybrid, and preferring one over the other two depends on data security and management needs.

Public clouds, such as the Amazon EC2 or Microsoft Azure are very scalable and cost-effective, but might not fit organizations with highly sensitive data that have to comply with strict regulations. A private cloud is owned by the company, and enables keeping sensitive date within the firewall. The superior security provided by a private cloud comes on the expense of a more moderate economy of scale comparing to a public cloud, and is therefore more suitable for large enterprises that can afford it. A hybrid cloud consist of a private cloud for everyday operation with the option to use a public cloud as needed, for peaks that cannot be served by the private cloud, for disaster recovery and predictable outages, or for less sensitive parts of the application.
elephant.jpg
Cloud technology that best fits your needs balances performance, security, scalability, maintenance and cost,
and leverages in-house programming skills


Next it is time to choose between Infrastructure as a Service (IaaS) and Platform as a Service (PaaS). IaaS is basically an advanced hosting option for you old application with a rather minimal utilization of what the cloud has to offer. It is somewhat of an intermediate compromise between the old days of desktop applications and actually moving applications to the cloud. While migration to IaaS involves less reengineering than migration to PaaS, it does not facilitate a full application transformation to the level of modernized apps that users have been accustomed to. When it comes to performance, integration and maintenance, PaaS is definitely superior, and when one realizes that IaaS is only an intermediate compromise, migrating directly to PaaS is also more cost-effective, as there is no need to migrate twice, to IaaS and then again to PaaS.

Client-based and server-based digital transformation

Once decision is made to upgrade to PaaS, there are two alternatives to consider for transforming your old C#, PowerBuilder or Java desktop application into a modern cloud-based one. First option is client-based and includes frameworks like Angular Node.JS, which is more natural for Java script developers. Second option is server-based and includes frameworks like ASP.NET MVC, which requires a shorter learning curve for .NET developers. A good example for this is when moving from Visual Basic or VB.NET to ASP.NET MVC with a Sencha-based client. In any case it is recommended to consider an agile and highly modular architecture with a decoupled client like web services or API-based architecture. A decoupled client makes maintenance a lot easier as it allows frequent updates of the client without necessarily updating the server.

As mentioned above, application modernization cycles have become a lot shorter and it is therefore important to avoid vendor lock-in and enable flexibility when upgrading to new technologies in the future. Some open platforms with a highly active community, like Angular for example, are quite appealing from these perspectives. Angular is also backed by Google, so you can count on it to remain up to date with latest features and innovation.

Once a final decision is made regarding the target technology for the application transformation process, it is time to choose between a manual rewrite and automated digital transformation. While this paper does not focus on how to keep risks under control, such as the risks involved in a manual rewrite of the code, it is worth mentioning that an automatic solution based on a holistic and semantic processing of the code is the most cost-effective and involves significantly less risk than other alternatives for any given target technology of your modernized PaaS solution.
How to Choose a Target Platform for Application Modernization When Your Fortune Teller is OOO

Application Transformation is a Go? Keep Risk under Control Using These 8 Methods

Congratulations! You’ve received a green light to modernize your old code base. Be it an application written in Visual Basic, PowerBuilder, .NET or Java, the transformed solution will be better in every way possible and will support platforms and features that were wishful thinking at best not so long ago. Maintenance will become a breeze and human resources department will throw a party when they realize they can stop looking for prehistoric engineers that are going extinct. What’s the catch then, how come it is only starting now and not five years ago? Well, there is no catch, assuming you follow these eight methods for keeping risk under control.
Congratulations! You’ve received a green light to modernize your old code base. Be it an application written in Visual Basic, PowerBuilder, .NET or Java, the transformed solution will be better in every way possible and will support platforms and features that were wishful thinking at best not so long ago. Maintenance will become a breeze and human resources department will throw a party when they realize they can stop looking for prehistoric engineers that are going extinct. What’s the catch then, how come it is only starting now and not five years ago? Well, there is no catch, assuming you follow these eight methods for keeping risk under control. App modernization is a go
App modernization is a go! Celebrating the end of the Jurassic era (Source: Splitthekipper)


Go with automated digital transformation rather than a manual rewrite

Statistics are very clear in this case, as 85% of automated application modernization projects are successful, while 85% of manual rewrite attempts fail, oftentimes doubling and even tripling allocated time and budget. Almost everyone who has ever worked on manually transforming large amounts of code will identify with this based on their firsthand experience (pun intended, those hands get really sore). Even a more common task like refactoring a large code base is often overwhelmingly difficult, not to mention a complete app modernization, especially when it comes to moving applications to the cloud. An automated process is also much more predictable and controllable, and can even provide early-stage resource estimations as explained below.

manual application rewrite.jpg

Manual application rewrite is like a box of those oddly looking chocolates. You kind of know what you’re gonna get

Prefer holistic and semantic reengineering over line by line code translation

An automated modernization process definitely involves a lot less risk than a manual rewrite, but which one to chose? A major consideration in this regard is whether or not the solution relies on a semantic understanding of the business logic behind the code and on a holistic analysis of the complete application. This allows rearchitecting the solution to a new platform while maintaining the semantics of the original code rather than mere translation of the old code from one language to another. As a result, this approach introduces a lot less risk than the old way of line by line code translation. This is especially true when the source and target platforms have little in common, such as when migrating from VB.NET or C# to modern platforms like Angular or Spring.
line by line.jpg

Line by line code translation is a thing of the past. Insist on a holistic semantics-based solution (Source: Paul Townsend)

Insist on getting a relevant demo and success references

Seeing is believing will never grow old. A relevant demo of digital transformation and real life case studies will help you assess the risk a lot more than some nice words and shining slides. Ask for those at the very first meeting with your app modernization provider.

Insist on a POC

Complete application rewrite must always begin with a representative proof of concept. This is the best way to assess risks and estimate resource requirements and can also help you understand the modularity and quality of the code you will end up with.

Use an automatic assessment tool first to analyze your code

Scanning your code with a dedicated modernization analyzer tool is an ultimate risk reduction method and should be done as early as possible. Some vendors offer such a tool as a free download, which means you can use it prior to the POC process and even prior to contacting that vendor. Such an advanced tool can perform a semantic and holistic analysis of your application as explained above, and generate a valuable report that can be used to estimate time and budget requirements for the whole project. This automated analysis actually performs one of the hardest tasks in application rewrite that renders it almost impossible to be done manually – understanding the entire business logic of the old application, which is often poorly documented and contains layers upon layers of code that have accumulated throughout the years, as well as cryptic bug fixes applied by renegade ninjas. The output of such a tool can also be used for the POC process mentioned above.

Angular is on fire! Make sure it is available to you

Angular is the platform of choice for many modern applications. Make sure your app modernization partner supports it as a target platform. If at some point down the road your team recommends going with Angular, you want to have that option available and avoid the risk of lagging behind.
angular.png

Angular support must be taken into consideration. Make sure that your app modernization partner supports it

Keep an eye on user and data security

Moving those old Visual Basic, C Sharp or Java Desktop applications to the cloud or transforming them into SaaS might introduce a lot of vulnerabilities. When selecting a solution for your application rewrite, make sure rewriting is done according to latest and best practices when it comes to security. As this is an automatic process, insist that the tool will have those security practices baked in rather than added at a later stage.

Old code base still breathing? Make sure migration does not require a long code freeze

Select an application modernization process that does not mandate a long code freeze, so you can keep maintaining the old code base easily until that very final stretch before the actual upgrade occurs. You can therefore avoid risk that might affect productivity and cause unexpected costs due to long code freeze during the migration project.
Application Transformation is a Go? Keep Risk under Control Using These 8 Methods

How to answer the question: Where do Software patents come from?

(and in particular, could they support a claim for a sole supplier status in bids?)
(and in particular, could they support a claim for a sole supplier status in bids?)

mom and child


First there was an idea.  Even before that there was a need.  Some of us started to see a growing need for modernizing enterprise scale desktop applications based on the RAD tools of the 1990s such as VB6 and PowerBuilder.  These applications may be performing core business tasks in Insurance, government finance or manufacturing, but compared to current web based, mobile ready applications they were starting to show their age.

We can go even further back, when legacy application modernization had a very clear meaning – migrating mainframe applications, usually to open systems and with modern databases.  But legacy applications are a moving target and now we were faced with re-architecting monolithic or Client/Server desktop applications to a completely different architecture – that of a modern web application.



And then they start reading…



(Semantic code reading & DOM creation is unique…)
kids

Guy Peled, CTO and founder here at Gizmox Transposition has already described in detail the unique approach to application modernization  he has chosen which can be summed up as Semantic Code Understanding. 

Semantic Code Understanding uses compiler technology to let our tool build an internal representation of the source application which in turn allows the tool to re-create a new well architected version of the application on an entirely different platform while retaining the original functionality.  See here and here for a more detailed discussion of the actual process.

So Gizmox built a migration tool  based on Semantic Code Understanding and started to perform migrations with it.  This was already quite unique, and the quality of the re-architected applications was quite appealing.  But we saw that unsurprisingly, when delivering a project, the tool users still had ways to improve the migrated applications.  So the next step was adding an IDE which will not only use Semantic Code Understanding to re-architect a legacy application, it will harness the power of Semantic Code Understanding to interactively guide, enhance and safe guard the work of the architect performing the job.

And this is how Gizmox Transposition Studio came to be – a suite of architect tools that harness the power of advanced algorithms to digitally re-write and re-architect a legacy desktop application to a modern web or cloud based applications with full support for mobile experiences.  All of this while keeping the decades long investment in business rules and logic which are the valuable IP our clients need to keep using for application modernization.

Then graduation… how exciting!

(the claims that support sole supplier status for application modernization)


ScreenHunter 124 Sep. 13 17.25


And, the unique claims


This combination has proven to be so unique we just received a USA patent – quite an achievement given the difficulty to patent software processes.  The unique tool features result in the following advantages of the Gizmox Transposition process:

  • Semantic code understanding that allows re writing to the target platform and framework with faithful functional equivalence, and a best practices based architecture.
  • Code quality and maintainability resulting from the retention of the original code structure and business objects (unlike the completely new code which is the result of a re-write).
  • The opportunity to apply custom architectural changes such as adding layers or services, with the confidence and power of the tool based process (block operations).
  • The possibility of revising and improving security in an automatic, repeatable and reliable way – essential especially if migrating to the web.
  • Minimal code freeze requirement allowing continued development until several weeks before the start of QA – a result of the mapping rules mechanism.
  • Automatic translation of dynamically constructed SQL to parameterized LINQ – uniquely made possible through semantic understanding.
  • Last in the list but very significant - minimal requirement on the client’s resources, mostly because of the elimination of the re-specification phase and the reduction in re-training because of functional equivalence.
mom_and_child.jpg

Congrats, moving off client / server to the Web, Mobile and Cloud?

But What About Application and Network Security?!

But What About Application and Network Security?!

danger
Application and network security have become prominent concerns for IT organizations, large and small.  The threat of data loss, of business and customer data falling into the wrong hands, and of disruption to business processes caused by malicious attacks are all center stage in IT priorities.

Mind the gaps! 
First.sketchFigure 1: There is a lot consider where security is concerned...


In the context of application modernization, security concerns can often pose a risk factor delaying or complicating the decision to move desktop based client server applications to modern platforms, especially to the web or cloud.  Securing what are now considered to be traditional applications was much easier before applications started to be delivered over public networks using general purpose browsers.  Yet in a recent publication, Gartner estimates that “Through 2020, 99% of vulnerabilities exploited will continue to be ones known by security and IT professionals for at least one year”.  In other words, almost all of harmful attacks have been and will continue to be preventable if up-to-date best practices are employed.

Risk or opportunity?

So why is security perceived as a risk factor instead of an opportunity when considering the modernization of a legacy application?  After all, getting rid of older operating systems and often un-supported platforms as VB6, PowerBuilder and WinForms should have clear security related benefits.  The answer is that when organizations consider modernization, they usually think in terms of re-development, or of a manual re-write.  The manual re-write process is a lengthy, risky and resource intensive undertaking.  Security standards and best practices are usually added at the end of the re-write process, employing static analysis tools which point to vulnerabilities and require very precise across the board modifications to the new application, as well a whole separate testing cycle as a result.

What if there was …

What if there was a process to modernize an application, faithfully capture all the business rules for which the organization has invested major development efforts over decades, and produce a modern application that has up-to-the minute security best practices baked in?  This is really only possible if the re-write was done by a machine that will re-architect and re-write the application for the new platform.      

Well, there is!

Gizmox Transposition is the leader in machine based modernization of legacy desktop based applications.  The company’s innovative & patent protected tech produces migrated applications that have best-practices-based security procedures and features inherently built in to the code base, as opposed to ‘bolted on’ security wrappers that are much more vulnerable to attacks.

Gizmox Transposition’s migration technology is based on complete code understanding of the source application and then a re-architecting to a new solution on a target platform - desktop, web and cloud, including mobile experiences with a unified codebase.  The process is based on reading in the source application, automatically building an intermediate representation of the source code in Transposition Studio, creating refactoring and mapping rules for all source objects (both automatically and by the architect driving the tool), and then automatically applying those rules to create a re-architected application with all business rules intact and a UI that is appropriately equivalent to the legacy UI, depending on the target platform.

 And, in more detail

Several features of the migrated application on the new platform are specifically in answer to security concerns inherent to the web or cloud environments.  These include:

 

  • SQL injection resistance

All legacy SQL statements are migrated to parameterized ADO.NET or Entity Framework commands.  Any string manipulation that may have existed in the legacy implementation is automatically rewritten as command operations, removing the threat malicious input attacks.
2nd.sketchFigure 2: The dreaded SQL injection exploit

  • All services are authenticated at all times. 

This is achieved by automatically creating the required code and attribute decoration so developer error can never be responsible for vulnerable code to be created.  Identity authentication can be generated automatically to connect with standard (e.g. LDAP) or proprietary identity systems, using custom mapping rules during the migration process.

 

  • Similarly, Identity Spoofing is thwarted

By including authentication on all services, and creating corresponding secure code on the client, during the automatic code creation of the re-architected application.

 

  • Cross Site Scripting prevention

Requires escaping all user inputs, as well as validating all inputs.  Because applications may use different browsers and client frameworks, automatic static analysis will not always find these vulnerabilities, and developers are hard pressed to close all the cracks.  The automatic code generation of Gizmox Transposition is the perfect solution here too.

3rd.sketchFigure 3: A cross site scripting attack 

  • Double Input Validation

Because any data that is entered or influenced by application users should be untrusted, the migrated application will validate everything twice, both on the client (mostly for convenience and the elimination of unnecessary roundtrips) and on the server, for security as well for data integrity.  It is important to note that not only data directly entered by users is validated but also information in HTTP headers, cookies, GET and PUT parameters including hidden fields, which can all be the source of vulnerabilities.
4th.sketchFigure 4: If data is not validated...

  • Data protection

 Gizmox Transposition has two complementary approaches for data protection.  For ASP.NET MVC applications, the VisualTree layer limits to a minimum both data being transmitted between browser and server and code running and visible on the client.  Encryption can be added automatically to protect especially sensitive information.

  • Standard Logging

 Application logging should not be an afterthought or limited to debugging and troubleshooting.  Gizmox Transposition automatically includes logging for all or specific activities, for monitoring, intrusion detection, compliance verification and auditing purposes.  As the migrated application is the result of automatic code generation, rules can be written at varying granularities to automatically add logging at many levels.

 

  • Error handling & exceptions

Several attack methods rely heavily on causing exceptions, stack overflows etc.  The challenge with applications migrated from legacy frameworks such as VB6 or PowerBuilder is that exception handling in those framework is non-standard and in many cases not adherent to best practices.  Translating business logic which includes such error handling to modern languages such as C# or Java may cause one or both of the following – the business logic will not be reproduced faithfully in the migrated application, and some errors will not be handled by the migrated code, causing potential exceptions to be introduced to the migrated code.  Gizmox Transposition automatically translates legacy error handling patterns to precise and secure patterns in the target language, thus eliminating this potential vulnerability from being introduced. 

An additional challenge with error handling on migrated legacy applications is that often, critical parts of the application have simply not been correctly protected from possible exceptions.  Gizmox Transposition allows the automatic addition of standard error handling and logging, in vulnerable areas of the application such as I/O.


Or in short, the new-gen practice: secure while modernizing!   


In summary, probably the most unique security related feature of a Gizmox Transposition migrated application is that all the above is not added after the fact, or ‘bolted on’ to the application as a result of a vulnerability audit done on the application after it is migrated or written from scratch.  All the previous points are an integral part of the code generation process with the added benefit of the process being both automatic and configurable so specific practices, standard or proprietary will be implemented across the board, with the confidence that only a machine based process can provide.
danger.jpg

Thank you for asking – yes, this is how digital transformation tools differ!

People keep asking us – so, what is the difference? Can you answer this question without diving too deep into the technology?  Will you please summarize what makes you stand out of the crowd into say, a page or two?
this is how digital transformation tools differWell here is what I got from under my pen… 

Who should care?

Anyone who answers yes to at least one of the following questions:

  • Does your organization/unit rely on core business desktop applications?
  • Were they written with the RAD systems of the 1990's, say – VB6, PowerBuilder, or desktop Java or .NET etc.?
  • Are you aware of their costs? Maintenance burdens? Are they blocking innovation and holding your organization back? Are you aware of the "lost-opportunity" cost?
  • Do your users complain about the user experience those systems provide?
  • Does the vendor no longer support them? Do they not have good web or cloud versions? Are they nearing their end of life?
  • Are they badly integrated with the new platforms – or not at all?
 

Why should you care?



Because you should be concerned with the wellbeing of your organization, right? After all it is your professional prestige on the line, isn't it? Whether you like it or not pretty soon you will find out that like the dinosaurs at the time, your organization is at risk of losing grounds, your competition is ahead.  Mind you, history is not as forgiving: "Since 2000, 52% of the companies in the Fortune 500 have either gone bankrupt, been ac­quired, ceased to exist, or dropped out of the List".

 

What are the concerns?



  • End of vendor support is a risk, most probably a regulation breach and a big headache, right?
  • Shortage of experienced programmers forces you to pay more and more, if at all possible to find? 
  • Your users, customers and partners increasingly complain and argue they need up-to-date, the today so-common user experience to stay relevant?  They want the fast, real time experience like web browser, opening up to mobile and cloud?
  • And possibly, just possibly there is a requirement from your peers and management for far more efficient IT?

Is manual rewrite an option?


Ummm… although those old good systems will have to go through some process of updating by rewrite and reengineering, you should ask yourself! 

  • Do you really know how to extract their business logic?
  • How would you select the newest platform and best language for your organization?
  • If manual rewrite - how exactly are you going to do it without documentation, the programmers who wrote the application and without knowing the business logic of those systems? Who really knows what and how the system does what it does today? Who has the full structure of the business rules embodied in this bunch of code? in short you may get stuck before you even start.
  • Can you really spare the resources, lead and take the responsibility for the intensive and risky work of manual rewrite?  
 

Soooo?

  • Enter this new patented Automated Rewrite technology….
The new patented Complete Code Understanding technology automatically builds a full intermediate representation of the source (the legacy) application from which it can re-create and generate the original business functionality on a new platform and usually in a new language.


  • The first question you might be asking – does it deliver a high-quality, standratly maintainable application?
Yes, the target application will follow best practices both in architecture and in code quality. Because the target application is generated, not translated, the Automated Rewrite is able to incorporate the Microsoft static analysis standards for example, as well as MVC or MVVM architectures.


  • A concern we often hear – will the new application be functionally equivalent?
Yes, because the new application is generated from a precise internal representation of the source functionality, and is based on additional patented advances in virtual compilation, the re-architected system will strictly adhere to the existing business logic. In fact, Gizmox will use a current test suite if it exists to validate the modernization.


  • Those who know something about the limitations of the automatic migration tools often ask – is the modernized application customizable?
Yes – in addition to the powerful code understanding and virtual compilation engines, the Automated Rewrite Studio includes an IDE in which extensive customization is possible, for everything from Cloud (PaaS) backend, through the UI to creating web services from existing code blocks.
 

What am I to gain from all this?



Lots. Lots of fame by leading your organization to really benefit from:

  • Reviving and reusing core business client/server applications fast and efficiently with a new life on the web/cloud. The modernized application will include standard ways to add mobile experiences and a well architected, standards-based and maintainable code base – all without the cost and risk of a re-specification effort and manual rewrite. 
  • Migration of enterprise scale applications written in VB6, PowerBuilder, desktop .Net Java and others to modern web applications on ASP.Net, Java and/or Angular. VB6 and PowerBuilder can also be modernized to .Net desktop applications.
  • A full-service modernization project, or we can work with partners and customers to provide a ready-for-production modernized application. 
Thank you for asking – yes, this is how digital transformation tools differ!

Automated Rewrite

Finally, an Application Modernization Solution That Produces the Code Quality and Maintainability You Want

 

Finally, an Application Modernization Solution That Produces the Code Quality and Maintainability You Want

robo

Gizmox Transposition provides a patented enterprise-level solution for modernizing enterprise-level applications to the latest platforms and operating systems, such as web, cloud, and mobile. Applications which were rewritten by our automated, fast, reliable, and low-risk solution are currently being usedby Fortune 500 companies including financial organizations, health care institutions, insurance companies, and ISVs.

The Need for Modernization


As technology advances, web, cloud, and mobile compatibility is becoming more important to remaining relevant in a competitive market.

Companies that do not modernize face:

  • Rising maintenance challenges and excessive costs

 

  • Losing business opportunities

 

  • A decline in customer loyalty due to deteriorating user experience

 

  • Security vulnerabilities and malfunctions due to lack of vendor attention and support

Modernization is crucial to keep up with the latest technological benefits and to remaining one step ahead of the competition.

Modernization Challenges



While the need for modernization is clear, the solutions are not as straightforward, and companies face many challenges in a process that can be time consuming, costly, and risky. Current methods include:

  •   Manual Rewrite: Expensive and very risky every time it is used. Companies need to reverse engineer existing applications to be able to identify undocumented business logic, which is a big challenge.



  • Automatic Tools: While this is a much cheaper and faster solution than manually rewriting the code, it produces low-quality code that is hard to maintain and extend.

 

  • Off-the-Shelf Software: In most cases, this method can't really replace the homegrown specific business logic, and customization, if at all possible, is very expensive. 

 

  • Virtualization: Virtualization refers to creating a virtual environment that is compatible with new platforms, and run the application there, but it doesn’t solve the legacy obsolete code and architect challenge.   

 

Preserving the application's proven business logic. All the rest is upgradeable



Gizmox's automated rewrite solution supports the migration of legacy applications to modern platforms while preserving the application's proven business logic. All the rest is upgradeable: new target optimized components, code, user interface, and application architecture. Our customers benefit from the enhanced performance, scalability, security, and mobility of using modern platforms while limiting the risk associated with migrating a mission-critical application. Our patented approach has proven itself time and time again as the best solution to bringing business applications up to date with the latest cloud, web, and mobile platforms, systems, and technologies.
robo

Significant threat comes from newer, more aggressive, better fit and digitally aligned start-ups or digitally transformed competitors!

"Significant threat comes from newer, more aggressive and digitally aligned start-ups" says Tim Sandle in an article in Digital journal. In the article Sandle explains how CEOs of large and established organizations realize the threats from new innovative startups or digitally aligned and transformed organizations, but also expresses their dilemma of how to compete in such a dynamic environment.
"Significant threat comes from newer, more aggressive and digitally aligned start-ups" says Tim Sandle in an article in Digital journal. In the article Sandle explains how CEOs of large and established organizations realize the threats from new innovative startups or digitally aligned and transformed organizations, but also expresses their dilemma of how to compete in such a dynamic environment. 

To some extent this was the dilemma of the dinosaurs back then?

Significant threat comes from digitally transformed competitors

 Given the emerging competition from digitally-ready startups or digitally transformed companies, the question is what should large established companies do to fight back, survive and protect their market and customers?

New survey conducted by KMPG sheds more light on the evolving situation: "KPMG asked more than 100 insurance CEOs about their plans and concerns over the next few years, and what we heard reveals some surprising insights. This report highlights the top-level findings and how insurance CEOs will need to pick up the pace of transformation and innovation if they hope to remain competitive in this rapidly-evolving market."

 

Start where it starts, the dinosaurs! Legacy desktop applications like Visual Basic, PowerBuilder, Delphi, Older .NET, Java and alike are your dinosaurs!


You are asking yourself – how come? What have these oldies got to do with the threats on insurance giants?

Recent survey report from University of Surrey explains:

“Although many core systems have become efficient and stable over the many decades of their existence (dating back in many cases to the 1970s and 1980s), they are now seen as a key obstacle in the rapid evolution to a fully integrated digital business. A senior automotive executive expressed the problem clearly in his statement ‘software is the new rust’.”

Those good old friends of the past, which in many cases still carry the IP and heavy loads in many of the large organizations, are also your IT's most bitter enemy. Legacy holds your organization back from innovating at the same pace as your new competitors that do not have to carry Legacy on their back. Legacy means "cost of living ", or rather keeping-alive is ever raising: You can't find programmers to maintain them; they will not integrate with new systems or run on new infrastructure like cloud or web; they pose a huge security threat – which most regulated organizations cannot bear; they provide a poor user experience; they will not support real time interactions – and that is only the tip of the iceberg. Bottom line: they drain your blood in a much higher pace than you may think. They carry hidden costs like loss of business opportunities which you might not even be aware to.  Pay attention to the way this Harvard business review describes the legacy situation as "the death grip of legacy technologies".

 

Google, Apple and Amazon threats are good examples


Legacy systems are one of the biggest barriers keeping banks from imitating the digital experiences provided by the likes of Apple, Google, and Amazon. These companies deliver more personalized services faster than banks can, and the competition among them means they have to constantly refine those experiences and deliver them more quickly. That competition is driving the digital world in a direction of real-time, anywhere access to services, data, and analytics for enterprises and customers.

Could the legacy like desktop applications be an opportunity instead of a dinosaurs?


The answer is not so simple. On one hand, the desktop applications like Visual Basic, PowerBuilder, Dot.NET and Java are the most invested software assets in the organization and probably will continue to be so for many years to come. Often the legacy desktop application is also the IP of the organization. On the other hand, what are the options to convert legacy to run as a new open standard application that runs on cloud or web, provides modern user experience and multiple device accessibility?

Up to now your options were limited. We had discussed some of the options in in this blog post. But there are new innovations, some are still evolving, gaining traction and their field experience as we speak.

 

One of the innovations is GizmoxTS, a new Automated Rewrite solution


It is a fast, efficient, machine-based Automated Rewrite solution that might save an organization tons of time and resources in transforming desktop applications to Web, Cloud or Mobile and help them protect their market in an ever evolving space.  

What is the innovation?

The innovation is based on 3 main pillars, each is a breakthrough in its space:   

The holistic approach, a breakthrough in the way desktop applications are being analyzed and assessed before being modernized:

Based on unique patented algorithms for semantic code understanding, the legacy desktop application is read and holistically represented in the tool. Unlike with the traditional ‘line by line’ processors of yesterday, the holistic approach allows re-architecting to a new platform or framework, while preserving the semantics (business rules, data relationships and flow and UI element functionality). One important benefit of the holistically understanding of the desktop application is that it removes the need to reverse engineer the desktop application’s business functionality, thus considerably reducing the cost, duration and especially the risk of the modernization effort. The semantically explicit internal representation of the desktop application serves as the basis for the machine-driven process to automatically perform a large proportion of the re-architecting much of what was manually handled till now.  Through a process of virtual continuous compilation, the software guides the user – in most cases a software architect – through completing, refining and modifying the migrated application.

The unique IDE, a set of software architect tools that allow complete customizability:

The IDE is similar to the Visual Studio IDE, but powered by the semantic understanding and continuous compilation engines. Virtual continuous compilation allows the user in most cases a software architect, to be guided in refactoring, mapping, or wider ranging re-architecting such as breaking the application into layers and actions they still need to perform, through suggestions and comments.  Even more remarkably, it shows the results of those changes directly to the user, without the need to complete the migration – including error messages and warnings that further guide the user on the path to a well-written and architected, optimized and modernized application. An important task performed in the IDE is adding standard or custom security software, identification and authorization to the modernized application, so that these extremely important parts of a modern application are not added as an afterthought to the end product.

The production-ready delivery, all you have to do is accept the new modernized application and put it to work:

The application re-assembly and QA are integral parts of the GizmoxTS process. We start with the source code of the desktop application and we deliver the ready-to-deploy code of a modern, secure and tested application on your chosen platform. The end-to-end process has a very low requirement for client personnel during most phases and does not include a post migration modification phase – we deliver to production.
Significant threat comes from newer, more aggressive, better fit and digitally aligned start-ups or digitally transformed competitors!

Are you digital transforming or are you giving up to competition?

This doesn't seem to be the question anymore. But just in case you were too busy to read or hear what is going on these days, here is a short reminder: Today every part of the business – whether internal or external facing – is subject to new user experience expectations.

Your competitors are on it!
Are you digital transforming or are you giving up to competition


This doesn't seem to be the question anymore. But just in case you were too busy to read or hear what is going on these days, here is a short reminder: Today every part of the business – whether internal or external facing – is subject to new user experience expectations.

Every business has the need and the potential to be a digital business. The modern technological era sets a growing pace of real time response, fast and effective internal and external interactions and numbers of smart, connected devices from phones to cars to wearable tech are ever growing. And as the pace is growing, companies that quickly deliver digitally upgraded software assets or services, interact with real time data, reap data from processes or market interactions, and use insights to rapidly optimize their internal processes and value chain – are gaining competitive advantage.

Businesses that digitally transform will be able to react faster, make processes more efficient, connect more closely with partners and customers, speed up the pace of innovation and, as a result, claim a greater share of market and profit in their sectors.

Today digitally transformed companies, especially cloud based services, are gaining an edge; tomorrow, only digital businesses will survive.

 

Your legacy desktop is a major pain!



Companies and their CIOs today are facing a serious challenge.  Legacy IT infrastructure and desktop applications are a constraint as CIOs look to start on digital transformation process. In fact, researches show that this might be a major roadblock on the way to digital transformation and the adaption of new technologies.

Unlike the digital natives, organizations born before the Internet typically don't have the luxury of starting from scratch with their IT infrastructures and desktop applications. Their enterprises usually are cluttered with older, transaction-based systems and applications that are infeasible or impractical to rip out because they still serve mission-critical business processes and reflect substantial investment in money and skills over the course of years. Many companies struggle with the resulting conundrum: How can they deliver on a digital transformation blueprint when legacy systems and desktop applications continue to do so much of the heavy lifting in the enterprise?

Success in addressing this legacy landscape is crucial for companies that want to be more agile competitors in today's ultra-fast-paced market. It is not only your pain, but you should push to overcome your most painful piece! 

According to Gartner, global businesses will spend $3.5 trillion on IT – $1.3 trillion of which will go toward enterprise software and IT services. Unfortunately, much of that software and services spend is dedicated to just keeping the lights on — maintaining existing enterprise applications that run the business. That's a lot of money just to maintain the status quo.

That's why moving legacy applications onto a modern infrastructure, such as cloud, holds great promise for businesses that want to reduce IT spending and convert the savings into a competitive advantage. Modernizing makes sense, if you do it right and know how to avoid the pitfalls.

 

The modernization conundrum


Many IT organizations and DevOps teams have embarked on application modernization projects. The problem is that these projects are taking too long and creating vendor lock-in. Organizations are forced to choose a single cloud or container vendor, which can lead to unexpected (and unplanned) price increases down the road.

Modernizing legacy versions of applications such as Visual Basic, Power Builder, Oracle forms, Older Java versions etc. is a hard work, since they and their custom-built brethren were often designed as single, unbreakable monoliths. The applications – including associated data, security, and networking configurations – are tightly coupled with the underlying infrastructure. This tight coupling means it's difficult to upgrade components of an application individually. Even small updates trigger a long, slow regression-testing process that involves setting up a near-production testing environment, along with the appropriate data, configurations, etc. This process can be resources consuming, even for the smallest changes.

Applications at larger enterprises also tend to live in silos. At a bank, for instance, the retail business unit may have legacy desktop applications installed on completely different infrastructure than a commercial business unit running the same applications. This compounds the testing problem but also makes it difficult for IT to consolidate and optimize its infrastructure budget for platforms that offer the best combination of speed, agility, and cost. Even when applications are deployed in cloud environments, CIOs are wary of vendor lock-in and the specter of unexpected, unplanned price increases.

Finally, managing a diverse portfolio of legacy applications can be challenging for the IT operations team because the tools available to manage applications are either infrastructure-specific (e.g., older versions of Windows) or application-specific (e.g., Visual Basic, PowerBuilder etc). Most IT operations teams are quickly overwhelmed with the scope and quantity of tools they must master – not to mention the challenge of managing multiple vendor contracts, all with different pricing, terms, and upgrade schedules. It's no wonder that CIOs often complain about “tool fatigue” and the hard integration work it takes to weave all these point products together into a cohesive application delivery process.

To overcome these challenges, organizations must change the way they think about modernizing legacy applications.

These five ideas that could help:

 

1) Break down the monolith


Learn and analyze your legacy desktop applications. Create a good understanding of what the application looks like—comprehensively, holistically. Analyze every individual piece of that application: the components, functionality, dependencies like network configurations, the storage configurations, the servers, the organization they will use, and the target – how the application will use modern standard communication, deploy on the new servers etc.

Analyze all of the networking, connections and dependency between the individual components. Deconstruct that map into its different building blocks, functionalities and configurations. Breaking down the monolith into its individual working parts is the only way to reengineer it into the new modernized application.

Sounds impossible to do manually without advanced tooling? That is probably right. In most cases there is no good documentation, you will have to dig deep into the archeological layers of the application without much help from the developers who wrote the application because they have moved on. Are there any tools to help you?

You will be happy to hear – there are new tools. One of them is GizmoxTS analyzer .

2) Unshackle applications from infrastructure


Enterprise applications must be abstracted and separated from any custom legacy dependency on underlying infrastructure – in most cases broken into N- layers to fit the new modern platforms and for maintenance and extension purposes. 

The application should be reengineered to integrate easily with modern middleware, sources of data and the network and security configurations. By transforming the dependencies of an application into open standard that can run on new modern platforms, it's possible to then deploy the application to the new platforms without changing a single line of code.

Good target planning allows you to rebuild the application to achieve complete portability between open standard platforms. It's only through complete portability between open standard environments, cloud included, storage options, and servers that IT organizations will break vendor lock-in and gain the flexibility required to move their applications to vendors that offer the best combination of price, performance, reliability, and features.

Are there tools that can help you reengineer your application to run natively on open standard platforms? Absolutely – Here is one of them.

3) Build security into your modernized application



Application security should not be tacked on after deployment. Doing so slows down continuous delivery processes such as DevOps and creates friction between the DevOps and the security teams. Instead, consider security an essential component of your overall application reengineering and treat it the same as any other component, by baking it into the new modernized application from the start. In this way, organizations can protect transformed legacy applications the instant they are deployed, regardless of the infrastructure used.


4) Build the new modernized application to last



Break the reengineered application into layers, consider the SOA based architecture. It will provide you the flexibility to adopt the current most advanced client / user interface technology that will probably change and be enhanced in 3-5 years. Make sure you convert the application to use open standard server technology that will last, but decouple the application layers in a way that you will not have to rewrite the complete application when the new client technology will kick in and become the hottest new thing. If you do not provide adequate user experience you will find yourself behind.

 

5) Modular equals well modernized


A modular application should be the crux of your modernization process. Decoupled layers is the magic word here.

It allows organizations to maintain and test the application in the most effective way and also to add modules and extend the application using new modern components and integration. 
Are you digital transforming or are you giving up to competition?

Five Things to Keep in Mind before Modernizing your business Desktop Applications for Web, Cloud or Mobile platforms

Thinking about modernizing your business app? We've collected five major things to keep in mind when opting to take your business from the desktop - to web, cloud and/or mobile platform.
5 Things to Keep in Mind before Modernizing Web Cloud or Mobile platforms
  1. Trust me, your app will need a certain level of reengineering if you really want to reap the benefits of the new Web, Cloud or Mobile platforms. Why?
Mind you, your good old desktop application – whether Visual Basic, PowerBuilder, .NET, Delphi or some version of Java desktop – was written most probably sometimes ago during the last couple of decades. Facing the modern technologies, these applications are lagging behind:  They were written for outdated infrastructure and operating systems like older versions of Windows; They were written using languages and platforms that are either already out of support like Visual Basic or frameworks that do not evolve as fast anymore and see fast migration of developers to more modern platforms, like PowerBuilder, Delphi and others; They were written by developers who had been pushed to deliver the application here and now back then – even if they were the visionaries at the time, they could not foresee the way software will evolve over so many years or foresee the revolution of the web, cloud and mobile.

Consequently, there are wide architectural gaps between a monolithic desktop application and a Web or PaaS cloud application, so the application will not run as is on neither.  Even if the desktop application will be rationalized to run on virtual infrastructure (IaaS for example), "old" code will still have to be maintained and the user interface will have to be reengineered especially for a multi-transactional application to really provide an acceptable user experience and accessibility from multiple devices.

The old-era obstacles require a massive application reengineering, including redoing of its user interface, if you seek to truly reap the benefits of native Web, Cloud and Mobile platforms and provide acceptable user experience.

 

  1. Do you really know your options when it comes to application reengineering? Familiarize yourself with the options before you decide.
There are 3 main options and some gap stoppers such as virtualization or containerization, which are temporarily bridging solutions that will not provide an adequate and scalable user experience. If you seek to provide native, scalable and maintainable solution, your options are: 1) Redevelop the application; 2) Replace it by a modern package application; 3) Modernize it.

A study conducted in 2010 by the Standish Group has found that application modernization projects have the highest likelihood of being completed on time, on budget and with all critical features included when compared to alternative approaches. The following tables clearly demonstrate the core difference between these 3 application reengineering options:

 

Resolution Results Comparison

The following table shows the likelihood of resolution of the project in all three cases:

Resolution/Project

1: Application development

2: Package application

3: Application modernization

Successful

4%

30%

53%

Challenged

47%

54%

39%

Failed

49%

16%

8%

 

Expected ROI Comparison

The following table shows the expected return on investment in all three cases:

ROI

1: Application development

2: Package application

3: Application modernization

High

11%

34%

52%

Average

66%

57%

37%

Low

23%

9%

11%

 

 

  1. Be careful if redevelopment is the option you lean towards - experience shows that a mistake here could be fatal for your organization.
Old code is often regarded as a pile of ugly mess that programmers would rather dismiss altogether and start over. Indeed, it's harder to read code than to write it - what makes the old code not so easy on the eye happens to be the very attribute that makes it valuable: bug fixes, feature additions, and architectural changes that result from long-term usage and maintenance of the application. When one decides to redevelop or rewrite from scratch, one is likely to lose the knowledge and functionality hidden in all that legacy code. Rewrite at the expanse of discarded legacy code could be dangerous when applied to large scale commercial applications and too often proves to be a strategic mistake.

And this is what Joel On Software, a guy with a lot of experience, has to say on legacy code rewrite in his blog: " they did the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch"

Why does he say that? Because too many companies that took the decision to rewrite legacy code, found the hard way that it was the wrong decision. You are welcome to read more about it.

 

 

  1. Whatever it takes to pre-assess the task you are about to face – it might be the best investment you ever make.
With so many layers, code additions, bug fixes, generation of developers and owners, poor or no documentation – there is only one acceptable solution: reverse-engineer the app and map the gaps to the target platform.

Is it imperative? Absolutely. Do not start a journey if you are not sure that you know where you want to go and how you should get there. Yes, nowadays you can really do it using tools to help you.

One of these tools is GizmoxTS Analyzer. It is based on a unique algorithm for semantic-holistic code understanding – the legacy application is read and holistically represented. Unlike with the traditional ‘line by line’ processors of yesterday, the holistic approach allows re-architecting to a new platform or framework, while preserving the semantics (business rules, data relationships and flow, UI element functionality).

One important benefit of holistically understanding the legacy application is that it removes the need to reverse engineer the legacy application’s business functionality – thus considerably reducing the cost, duration and especially the risk of the modernization effort.

The semantically explicit internal representation of the legacy application serves as the basis for the machine-driven process to automatically perform a large proportion of the re-architecting. Through a process of virtual continuous compilation, the software guides the user – in most cases a software architect – through completing, refining and modifying the migrated application.

 

 

  1. Set measurable milestones! Define them clearly, and get your vendor or service provider to commit – Fixed, no T&M! 
Here is an example of building a modernization project  with measurable milestones. Coupled with tight schedule it should become a plan to commit to, follow and monitor:

Setup

Initially, a stable source and baseline environment is setup by loading the legacy code & configuring the Automated Rewrite Tool.

 

Analysis & Automated rewrite PLAN

Next, the sources to target gaps are identified via a virtual compiler and other Automated Rewrite assessment and query tools. The automated Rewrite expert then presents and discusses with the customer team the optional target components and code patterns. The deliverable is an agreed plan.

Refactoring and standard mapping

Once a plan is in place, the next phase includes refactoring and mapping of code fragments and components to the target environment using standard or common custom mapping rules. Stubs are generated for non-common specific mappings.

 

 First compilation & code quality tests

At this point, the transposed code compiles. Code might include stubs for custom extensions, components and custom rules. This phase also includes Initial code quality auto-testing.

 

Custom extensions, components and rules  

Custom extensions, components and mapping rules are created for non-standard types and members by either mapping legacy 3rd party controls to .Net equivalents, or by implementing specific code in the generated stubs. This phase can start earlier, in parallel to the standard refactoring and mapping phase.

 

Final compilation (Developer tests)

The final version of the transposed code compiles with all custom stubs mapped and ready for delivery tests. Some additional edits (post-transpose actions) may be done at this stage.

 

QA phase

- Delivery Tests/Bug Fixing - According to defined scenarios and success criteria.

- Acceptance Tests (followed by final bug fixing) - According to defined success criteria.
Five Things to Keep in Mind before Modernizing your business Desktop Applications for Web, Cloud or Mobile platforms

Application migration (like VB6 or PowerBuilder) to Web and Cloud, Made Easy

There are a lot of written and discussed reasons to migrate off your outdated desktop applications such as Visual Basic, PowerBuilder, Delphi, ASP / VBA, older Java versions and other older desktop platforms to modern platforms – to mentions just four of them...
timetoupdatevb6powerbuilder

Why bother?

There are a lot of written and discussed reasons to migrate off your outdated desktop applications such as Visual Basic, PowerBuilder, Delphi, ASP / VBA, older Java versions and other older desktop platforms to modern platforms – to mentions just four of them:

  • Out of support languages such as Visual Basic and PowerBuilder
  • Integration and communication with new technologies and databases is a challenge
  • Diminishing skillset for these older languages as developers retire or move to modern languages, which results in a growing difficulty to hire developers
Bottom line:  dramatic increase in costs and challenges in maintenance, integration and communication with new technologies and databases.

Organizations realize: sooner or later – and sooner seems to be the better choice – they will have to say good bye to those oldies and move on to modern platforms.

Where should we go?


That depends on what kind of applications we are talking about and what the organization wants to achieve by migrating.

In most cases the goal is moving to modern cloud and web platforms for higher efficiency and to provide modern user experience with multiple devices.  If that is the case, the next related dilemma is how to move the desktop applications to Web or Cloud:

  • What do we need in terms of user experience, application performance, data security and devices support?
  • What are the deployment and usage options?  Web, IaaS, PaaS or SaaS are all deployment models that mean to facilitate a cost-efficient modern deployments.
  • Is the application in question a core business application? Namely –
    • o An application that sometimes holds the IP of an organization
    • o An application that is significant to the user productivity or the user experience
    • o An application with a long life span that will require long maintenance, changes and modifications to the application 
When regarding an application that is a core business application – the best option for business applications would most probably be a PaaS Cloud or IaaS as a stepping stone towards PaaS.
 

What does it require?


In most cases moving desktop applications to Web or Cloud platforms will require some level of rationalization and re-engineering. 

  • Outdated languages have to be converted. To name but a few – Visual Basic, PowerBuilder, Delphi and many others are unsupported by modern platforms (or will be unsupported).
  • Moreover, many of the applications that are based on outdated technologies are impossible to use on Web, PaaS or IaaS Cloud phones and tablets as is, not to mention the high costs of supporting outdated infrastructure. Therefore they will have to be reengineered. 
  • Another challenge is almost always the outdated user interface which has to be updated.
  • Security risks would be another issue with desktop applications that are moved to modern platforms due to using legacy desktop technologies. There are many holes in the architecture itself which have to be dealt with.

Hold it – re-engineering? Is that really the only way?


Up to now most of the application reengineering has been done manually, using variety of acceleration tools – which is never easy. It is a human error prone process that in most cases ends up in dramatic time and budget overrun.

A major challenge of this manual process presents itself before the organization even begins the actual rewrite. It starts with far more basic issues – how to recapture the business logic and rules? Or the piles of debugging and updates that were introduced during the decades of application maintenance?  In most cases there are no documentation and the developers who originally wrote these applications are not available.

So how can such process be simplified and made easier?


For migration efforts where the source application is based on open-systems based OO language and framework, it has become possible to enhance the AST based approach in several ways – resulting in a simpler, more complete solution with better code quality without additional manual-based work:

  • For these source applications, advanced vendors like GizmoxTS are able to add semantic data and understanding to the AST, such that it becomes a much more holistic and complete representation of the application, its class structure, the data components and the UI.
  • With this holistic approach, as well as advances in virtual compilation, it is becoming possible to perform true continuous compilation of the application while it is being converted and modified, and before the target is complete. 
  • These new tools have huge implications as they enable an IDE which is driven by complete code understanding and the continuous compilation process.  The IDE experience can include errors, warnings and messages produced by the virtual compilation engine, continuously guiding the modernization expert and also showing the gaps to completing the project.
  • This type of IDE is enabling in turn a modernization approach which is completely tool based, highly automated, and also highly open to expert architect input, modification and improvement.
Now there is a clearer path for VB6, PowerBuilder or .Net and Java applications to the Web/Cloud

The bottom line is that it is now possible and easier to modernize with confidence large and complex desktop Client/Server applications based on Visual Basic, PowerBuilder, Java and .NET and possibly other similar environments, to the web or cloud and with a mobile experience baked in.

  • The resulting tool-generated application will have functional equivalence with the legacy desktop application, and will be expertly architected in accordance with the best practices of the target platform and language. 
  • Reducing the need for manual work makes the process easily repeatable and with a significantly lower number of issues remaining in the target application.

A good example: VB6, MS Access & .Net applications to Web at AIG


Gizmox Transposition is working with AIG on migrating core business applications from various legacy platforms to ASP.Net MVC web applications.  The main challenge AIG was facing was of moving to the web while retaining their IP, i.e. the significant investment in business rules and logic.  By using advanced patented code understanding and unique continuous compilation technologies, Gizmox Transposition is able to re-architect this diverse legacy inventory to a well-written, maintainable and readily available for re-development set of applications adhering to industry standard best practices on AIG’s platform of choice.

Gizmox Transposition’s modernization technology is a prime example of the newly available possibilities of a quality migration technology enabling enterprises to move their core applications from the client/server world to high quality web systems while retaining the decades-long investment in their business differentiators.
Application migration (like VB6 or PowerBuilder) to Web and Cloud, Made Easy

Migrating desktop applications to the cloud can now be faster than ever – here's how!

Still relying on desktop applications such as Visual Basic® 6, PowerBuilder or older .NET and Java? It is high time to consider migration to Java or .Net Modern Standards and Web or  Cloud.

Still relying on desktop applications such as Visual Basic® 6, PowerBuilder or older .NET and Java? It is high time to consider migration to Java or .Net Modern Standards and Web or  Cloud.

 

Untitled design 3.jpg

 What's the rush? 

 

  • The main reason:  the cloud, web or mobile era awaits no-one – and neither should you.
    "The idea that you should wait until you're ready to update a legacy application before moving it to the cloud is frankly crazy. With portfolios of hundreds or thousands of apps, CIOs must take advantage of the economies of scale web, and cloud computing delivers". As our esteemed colleague already wisely observed a couple of years ago, "the startups gunning for your customers aren't being held back by legacy desktop applications – they have new applications that were written yesterday".
  • Several  technical reasons to upgrade: Increasing legacy maintenance costs because of hard to find legacy developers, lack of support and hard limitations in integrating and communicating with new platforms, standards, and technologies
  • Eventually, all reasons create a major reason to be reckoned with: Business. Migrating applications to the cloud will dramatically reduce expenses as well as time to market, while increasing productivity, elasticity, and mobility. Essentially, the cloud offers your ample business benefits that you cannot afford to forgo.

What are the challenges?


Legacy desktop applications once had many advantages that over the time have become their flaws. Let's focus on three significant inherent challenges, in a nutshell:

  • First and foremost: Your application was written to work as monolithic on-premise desktop application and to run on Windows, using the decades-ago popular then languages, expecting to run as is on modern web or cloud is the least – being too optimistic.
  • Its user interface was written for a desktop screen and in most cases will not fit well in web cloud or mobile.
  • It was protected as many behind the firewall applications – which is almost not at all, so it should be adequately protected to move out of the firewall.  

Now when moving your desktop application to web or cloud, various technical challenges emerge, to name just a few of them:

  • It should scale up and down to serve multiple users just as any well-written web/cloud application does
  • It should have a safe thread to serve multiple users simultaneously
  • It should have a new user interface to enable remote secured accessibility
  • It should perform well over the network to enable remote and distributed multiple transactions
  • In most cases nowadays it should be effectively accessible from multiple devices that your users might be using, including small and touch mobile screens
  • Your application accessibility and data must be secured as it moves out of the firewall
In other words - your desktop application must become a web application that runs on Cloud preferably as native PAAS running.

It is a bit like expecting a horse with a single rider to now serve multiple riders at the same time, to be as fast and all that in different locations. Sounds impossible, right?


Now with the new transformation tools and methods, it is possible!  

Why not rewrite it all from scratch?


That'd be the instinctive response of any good software developer when facing such challenges: The application code needs refactoring, and the application needs to be re-engineered to overcome such architectural changes – let's rewrite from scratch. In most cases, the developers who recommend manual rewrite are conservative, unaware of the risks or simply unaware of the new technologies and the evolution of new technology transformation tools and methods around. This unawareness is a blind spot that might eclipse the very future of your enterprise.

Resisting that developer instinct is hard, but the blow that is coming for outdated legacy applications could be far more difficult. Maintaining them will expose you to rising risks, as well as rising costs. The vast majority of manual rewrite projects eventually fail to make the budget, schedule or user requirements.


So is there a sane alternative to manual rewrites?

Now there is. Here is how it works:

For migration efforts where the source application is based on an open-systems based OO language and frameworks like Visual Basic, PowerBuilder or ASP / VBA, it has become possible to enhance the AST based approach in several ways, resulting in a complete solution with better code quality without additional steps.

For these source applications, advanced vendors are able to add semantic data and understanding to the AST – such that it becomes a much more holistic and complete representation of the application, its class structure, the data components and the UI.  With this holistic approach, as well as advances in a virtual compilation, it becomes possible to perform a real continuous compilation of the application while it is being modified, and before the target is complete.

This has huge implications as it enables an IDE which is driven by complete code understanding and the continuous compilation process.  The IDE experience can include errors, warnings, and messages produced by the virtual compilation engine, continuously guiding the modernization expert and also showing the gaps to completing the project.  This type of IDE is enabling, in turn, a modernization approach which is entirely tool based, highly automated, and also highly open to expert architect input, modification, and improvement.

An automatic path for VB6, PowerBuilder or Java and .Net systems to the Web/Cloud

The bottom line is that it is now possible to modernize with confidence large and complex on premises desktop Client/Server applications based on Visual Basic, PowerBuilder, Java and .NET and possibly other similar environments, to the web or cloud with a mobile experience baked in.

The resulting tool-generated application will have functional equivalence with the legacy system and will be expertly architected according to the best practices of the target platform and language.  The reduction needed for additional steps (which were required for procedural program modernization and were usually manual) makes the process easily repeatable and with a significantly lower number of issues/bugs remaining in the target application.

Case in point: VB6, MS Access & .Net applications at AIG

Gizmox Transposition is working with AIG on migrating core business applications from various legacy platforms to ASP.Net MVC web applications.  The primary challenge AIG was facing was moving to the web while retaining their IP, i.e., the significant investment in business rules and logic.

By using advanced patented code understanding and unique continuous compilation technologies, Gizmox Transposition can re-architect this diverse legacy inventory to a well-written, maintainable and readily available for re-development set of applications adhering to industry standard best practices on AIG’s platform of choice.

Gizmox Transposition’s modernization technology is a prime example of the newly available possibilities of a quality migration technology enabling enterprises to move their core applications from the client/server world to high-quality web systems while retaining the decades-long investment in their business differentiators.
Migrating desktop applications to the cloud can now be faster than ever – here's how!

Shall we revive your dying desktop applications?

Let's face it: The new web and cloud era poses a challenge as on prem, desktop core business applications like those written with Visual Basic, VB.NET, PowerBuilder and ASP / VBA that will not deploy as is on web or cloud platforms are nearing their end of life.
Let's face it: The new web and cloud era poses a challenge as on prem, desktop core business applications like those written with Visual Basic, VB.NET, PowerBuilder and ASP / VBA that will not deploy as is on web or cloud platforms are nearing their end of life.
Happy birthday

Many of those on-premise, desktop applications are written with the RAD tools of the 1990’s – like VB6, PowerBuilder, ASP / VBA or even desktop Java or .NET  – are becoming outdated.  The reasons they need to be upgraded are varied – end of vendor support, a shortage of experienced programmers, and increasingly, the need for a distributed web accessibility, opening up to mobile, and possibly a requirement for more cost-efficient and scalable  Cloud infrastructure.


What's an IT department to do? 

The traditional solution would seem to be manual rewrite:  analyze your outdated application, write a spec select a new modern platform as well as language and delivery model. Put in the required manual work, take the risk of running well over budget and time – and then you might deliver to your users the system of their dreams.

But before you do all that maybe at the first all hands meeting a voice, perhaps of someone who has seen some large projects in his or her time, will ask – how are we going to write the spec?  Who knows exactly what it does today?  Who has the full structure of business rules embodied in this bunch of code? A real challenge, right?

And that's exactly where new methods and tools enter the picture.

What would be a practical solution?

The modern technology transformations require innovative solutions to keep a steady pace with the progress. Take for example GizmoxTS Automated Rewrite: It is a new patented complete code understanding and transformation technology that builds a full intermediate representation of the source application from which it can re-create the original business functionality on a new platform and in a new language of choice.

Let's dive into detail:

  • For migration efforts where the source application is based on an open-systems based OO language and framework, it has become possible to enhance the AST based approach in several ways – resulting in a more complete solution with better code quality without additional manual steps.
  • For these source applications, advanced vendors like GizmoxTS are able to add semantic data and understanding to the AST, such that it becomes a much more holistic and complete representation of the application, its class structure, the data components and the UI.
  • With this holistic approach, as well as advances in virtual compilation, it is becoming possible to perform true continuous compilation of the application while it is being modified, and before the target is complete.  This has huge implications as it enables an IDE which is driven by complete code understanding and the continuous compilation process.  The IDE experience can include errors, warnings and messages produced by the virtual compilation engine, continuously guiding the modernization expert and also showing the gaps to completing the project.  This type of IDE is enabling in turn a modernization approach which is completely tool based, highly automated, and also highly open to expert architect input, modification and improvement.

What about code quality? 

The Automated Rewrite will provide the highest code quality for the target platform – be it Cloud, Web HTML5 UI, Mobile or any other platform of choice.  The target application standards are customizable to best practices both in aArchitecture and in code quality. The GizmoxTS Automated Rewrite will deliver the highest quality because the target application is GENRATED, not TRANSLATED. GizmoxTS Automated Rewrite is able to incorporate the Microsoft static analysis standards for example, as well as MVC or MVVM architectures and modern data security practices.

What about functional equivalence?

The new application is generated from a precise internal representation of the source functionality, and is based on additional patented advances in virtual compilation – therefore the re-architected application will strictly adhere to the existing business logic.  In fact, GizmoxTS Automated Rewrite will use a current test suite if it exists to validate the Automated Rewrite generated code.

 

How customizable is the modernized application? Can one create a web service for example?  

In addition to the powerful code understanding and virtual compilation engines, GizmoxTS Automated Rewrite includes an IDE in which extensive customization is possible, for everything from the UI to creating web services from existing code blocks.

GizmoxTS Automated Rewrite can provide core business VB6, PowerBuilder on – premises desktop applications a new life on the web/cloud, standard ways to add mobile experiences and a well architected, and standards-based and maintainable code base, all without the cost and risk of re-specification or manual rewrite effort.

 

What about new web or mobile user interfaces?

 

Using GizmoxTS Automated Rewrite's IDE and standard development tools, the original desktop user interface might be rewritten into new, best practice adherence web or mobile user interface, including touch and gestures.

 

We are talking a critical mission application here – how could we minimize risks?

 

There absolutely is a way to minimize risks. In essence, the whole process of regenerating code is done by a machine, which is a risk reducer in itself. The machine-guided process eliminates the vulnerability of a manual rewrite practice which is human error prone process. Furthermore, the high efficiency of a machine-guided process not only reduces human mistakes, but also standardizes the generated code by using the same code patterns all over the generated application.
Shall we revive your dying business application? - GizmoxTS
Page 1 of 5