VB6 to .NET Migration: Strategies, Challenges, Actuality
Why is a question about VB6 to .NET migration so timely? Visual Basic (VB) was created by Microsoft in 1991 and became very popular. A lot of in-house applications for enterprises were implemented along with an ecosystem of third-party components.
But later, Microsoft abandoned Visual Basic in favor of the modern .NET Framework. The final VB release was version 6 in 1998. Visual Basic 6.0 IDE is not supported anymore. According to Microsoft, Windows supports core VB6 functionality which is “used in the majority of application scenarios”
Why migrate from VB?
So should companies go for VB6 to .NET migration? The short answer is Yes. Microsoft itself published an article “Why is it a great time to stop developing in Visual Basic 6.0?” in 2009.
VB6 security security issues
Most importantly, Visual Basic might suddenly stop running. As a low priority process, VB6 support is not verified extensively in Windows updates. And that leads to the growth of VB6 security issues.
In 2019 a BlueKeep vulnerability in Windows was found, and a patch was released. But that update broke the functionality necessary for VB to run. Windows recommended automatic updates for security reasons. However, they just made VB applications to stop responding with an “invalid procedure call error”.
It took several days for MS to release an update to address the VB issue. During that time, customers were left with two options – don’t run VB apps or don’t install BlueKeep-related updates and be susceptible to viruses.
The US National Security Agency and Microsoft stated that virus attacks using BlueKeep could be similar in scale to EternalBlue-attack such as the notorious WannaCrypt. That “worm” encrypted the whole hard drive and demanded a ransom in bitcoins. No wonder it got a nickname from frustrated victims as WannaCry.
NSA is raising their own concern that the Microsoft RDP flaw (#BlueKeep) is of significant risk to unpatched systems. Patch and protect! https://t.co/hj1c40psma
— Rob Joyce (@RGB_Lights) June 4, 2019
Is Visual Basic outdated now?
A closer look at Microsoft’s pledge to support VB core reveals that they never promised to uphold everything.Users might experience strange behaviors of applications, cryptic error messages, and crashes resulting in data loss. The core VB might work, but third-party components written in VB6, such as OCX/ActiveX controls, might stop working.
Customers are advised to contact original vendors. The thing is, a lot of these vendors also don’t provide support for their old programs. they even are not present in the business anymore. All this makes the need for VB6 to .NET migration quite obvious.
Eventually, all companies will face no choice but to rewrite their applications. Take as an example the recent 2020 case with the US government systems working on COBOL. It shows that the longer the problem is postponed, the more costly it is to resolve.
Ancient languages like COBOL and Visual Basic don’t attract current students. As a result, the number of experts is dwindling each year. Scarce programmers willing to work in that field must be paid exorbitant salaries.
Microsoft team about Visual Basic support. By Abto Software
Also, problems arise because old languages used old architecture approaches. Such “spaghetti code” drastically increases the complexity of the applications. Another problem is poor documentation. Reverse engineering of such legacy applications earned the name “software archaeology”.
All companies must evolve to keep up with their competitors. Company software entails a change in processes, integration with new industry-standard applications. Business growth demands program scalability, and modern enterprises are going web, cloud, and mobile. These all are either very expensive or even impossible in Visual Basic.
How to choose VB6 to .NET migration strategy?
Now, what can we do when a company is ready to start a transition to the new technologies? There are three possible VB6 to .NET migration strategies:
Let’s discuss every one of them in more detail to convert VB6 to .NET with no problems.
The extension strategy is for your application if:
- The application works fine;
- Described above issues and risks are accepted;
- You need to develop new features with fewer efforts and costs.
Additional .NET modules can be called from within old applications. You can leave a legacy as it is but implement new stuff with some modern framework. Eventually, old modules that are still relevant to the business can be also migrated to .NET. This approach is well-known as a “strangler” pattern.
Pros of the Extension approach:
- It might be the cheapest way in the short term.
- The system is converted gradually.
Cons of the Extension approach:
- Business continuity risk. Visual Basic Parts will be prone to VB6-related issues until they are fully rewritten.
A good choice in case:
- An old application works unstably;
- It annoys users with frequent errors, sometimes even causing work loss;
- The number of users is relatively constant;
- Business processes are attuned to the desktop experience.
This VB6 to .NET migration strategy might be started with automated converters that take Visual Basic code and translate them to C# .NET. The resulting code requires manual adjustments for specific parts that are conceptually different in those languages, for replacing OCX/ActiveX controls. Also, upgrading from default for converters Windows Forms to the newer WPF is desirable.
Abto has good experience in implementing the Migration strategy. For example, we convert VB6 to .NET for a charity platform for an international company. Also, our team provided VB6 to WPF migration for a leading manufacturer.
Advantages of the Migration approach:
- That is the second cheapest way after the Extension approach.
- The similarity of platforms allows preserving the usual user experience. Also, it lowers the chances of incorrect implementations.
- The whole application will be free from VB6 security and stability issues.
Disadvantages of the Migration approach:
- The base application must be developed before the new functionality can be added.
- Poor architecture choices might be inherited from the original code. Eliminating them will need extra efforts.
The third VB6 to .NET migration way is a complete rewriting to the .NET Framework. This approach is required when:
- The migration is done from the legacy desktop VB6 application to another platform. These transitions can support the extending base of users by scaling into the cloud;
- The company want to extend market share;
- The original application is totally outdated. It does not satisfy business in significant areas thus major overhaul is anyway necessary.
As an example, Abto Software implemented the Rewriting approach for the US retail company. We modernized and migrated legacy ERP to the web.
Advantages of the Rewriting approach:
- Change of platform to web or mobile is the only way to go;
- Architecture written from scratch using modern approaches allows cheaper development of improvements. Also, it makes more reasonable ongoing support expenses in the long term.
Disadvantages of the Rewriting approach:
- It requires a bigger initial investment than the previous two ways. However, it is still justified by the future benefits.
- Rewritten functionality must be extensively tested to confirm compliance with the old behavior.
What are VB6 to .NET migration challenges?
If you want to convert VB6 to .NET, you have to consider some important things in advance. And it’s not only choosing the right migration strategy. You need to find and assemble the team who will perform VB6 to .NET migration in the best way possible. You must make sure your code is prepared for migration and won’t need extra time for improvement.
Steps to consider before migration
It is always a good idea to check your software before migration. Are there code lines that do nothing and go nowhere? Cleaning up your code before migration will save time for developers and the amount of expenses for a business.
Third-party controls check
There are third-party controls used with Visual Basic that are not compatible with .NET. If you continue using those controls, it can decrease your app performance and speed.
Quality Control is important during migration as well as before it. If your code is unclear and has many bugs, the better decision will be to choose a rewriting migration strategy. If you convert poor quality code VB6 to .NET automatically, you will have to spend too much time on bug fixing. For business owners, it means lost time and money.
This step is quite obvious. Better preparation before VB6 to .NET migration will help to reduce the number of bugs significantly. Do not postpone bug fixing to give your app users the best user experience.
After successful migration and bug fixing, it is always a good idea to think about how you can improve your software. Isn’t it outdated? Does it cover all business needs? Are there some functions that need reimplementation?
VB6 to .NET migration is a necessary but painstaking process. Provided professionally, it brings growing opportunities for business. Make sure your development team is a team of professionals with good experience in .NET Framework. The best way is to choose a company that has Microsoft Certification and positive reference from previous clients.
.NET Software Development Services
Abto is Gold Microsoft Partner. Use over 16 years of our team's .NET experience to bring profit to your business.
VB6 to .NET migration is necessary for every business that wants to stay on the market and be compatible. But as well as in any other business areas, it is crucial to entrust your software development to professionals.
Want to find out more about our experience? Check out case studies about award-winning e-Procurement and e-Sourcing software used worldwide, a suite of digital retail solutions for a Swiss retail software provider, and EMR & medical practice management software for our US customer.
Discover how .NET, .NET Core and ASP.NET development can benefit your business! Contact us by filling out the form below.