VB 6 to .net Migration

Any modernization effort has to go through identified phases before the actual migration effort begins – Understanding the current application landscape, considering solution options and the constraints the solution must meet, deciding on the best-fit solution and choosing the right strategy for such a migration. The actual modernization process requires planning and preparation, followed by solution implementation, leading to a completed migration project.

Before .net arrived, Visual Basic 6.0 provided the best platform available to develop many in-house and commercial applications under its Rapid Application Development features. These applications followed a client-server model and provided a very convenient way to develop multi-user applications.

Why to migrate?

  • Doing nothing has its own costs
  • Applications will outgrow in functionality, and will need scale.
  • Microsoft has stopped supporting this platform and intends to promote future development platforms on its .net platform
  • With time, knowledgeable resources will be hard to find, and where found, will be expensive.
  • Your application may stop being compatible with the underlying hardware and OS
  • If you don’t migrate now, it will cost you more for maintenance and support.

Which target platform should you move to?

Visual Basic 6.0 applications were usually window-based, client-server applications. The choice of the target platform will depend on following situations.

  • What business benefits will the new application will provide?
  • What will be your non functional needs like Scalability and Maintainability?
  • Do you want new, enhanced features or you are happy with old outdated functionality?

How would you move?

Selecting a right migration approach goes a long way towards successful migration.

Migration:

If, you are happy with the application just as it is and would like to retain the look and feel and consequently save on user training costs. You could evaluate Vanilla Migration. Here the application moves exactly as it is on the new platform. This approach includes building a functional equivalent on the new platform. This type of migration is usually tool based and provides no or minimal leverage for newer features.

Re-engineering:

Here the entire solution starts from ground zero. If you have high scalability needs, or the scope of the applications changes to the extent that the new application is expected to have highly enhanced functionality features. E.g. you want to move from a window based application to SAAS (Software as a Service) model.

COM Wrapper:

This would be your choice if you had previous executable or dynamic link libraries whose source code is no more available. You can build a wrapper around these objects and use them in your .net application

Re-factoring:

Slowly start re-writing of code to make it compatible with the old and new platforms. Over the time, entire application will have moved

Real life approach usually includes following a combination of one or more of the above. E.g. for a critical application, you would first choose vanilla migration, bring it to a steady state in the new platform and then enhance its functionality as you go along. By re-factoring, other times, the most preferred approach would be to Re-engineer.

Aarvick Solution Migration Framework

Aarvick Solution has a comprehensive migration framework composing of multiple tools like knowledge-based decision making tools, alliances with major migration tool vender, reusable components, tools and templates, deployment tool kits for implementation etc. That aid critical decision making and other processes.