Application migration from VB6 to .Net is more than just a one-to-one code conversion which may/is common understanding. It should be looked as an opportunity to realign with market, with technology, with business goals etc. etc. The major business drivers that that lead to migration are:
- Flexible solution than can be extended easily
- Integration with external systems
- Scaling up to cope with ever increasing number of users
- Adding new features and functionalities
- Quick and automated conversion (probably using readily available tools)
- Re-architecting – Green field approach
- Re-architecting – hybrid approach
Quick and automated conversion, in my view is a dirty way of conversion and there are lots of tools – open source and commercial - available in market to do this. But still they do not do 100% job, you have to tweak the code after conversion. The biggest draw back in the approach is you do not get the opportunity to take advantages from new technology and realign. All coding sins from earlier code base gets percolated to new code base. You do not get the chance to understand the code which can have impact on bug-fixing turnaround time. Moreover the coding conventions/standards and imposed by the tools which may differ significantly from your organizations coding standard.
Above section described approaches that can be taken for migration, with my inclination towards Re-architecting-hybrid approach. The details about technology stack, architectural style, tools and platform can be decided only after better understanding of the product.
1 comments:
Each case is different; it really depends on the source application. Of course, Garbage In / Garbage Out, but if your application is well written and has considerable business value, it is better to use automated tools and then enhance the converted codebase. It's much less risky, considering that a large part of these VB6 applications were developed long time ago and most of the times the original developers are no longer available for the task. Also, a manual rewrite or re-architecture from scratch takes more time and normally ends up costing more. Finally, there are some commercial tools that can be extended and customized, so that the output can be made to comply with internal standards.
I found many useful white papers on the topic at ArtinSoft, including one that compares the automated vs. manual approaches.
Post a Comment