Microsoft Ireland Podcast: Modernising your VB6 code with NewCode
(I'm hoping to invite (fairly regularly) ISVs/Partners/Customers in Ireland/Northern Ireland to come talk about the development of their products and applications. If you'd like to participate in the future please contact me .)
In this podcast (or mp3-on-a-share as I'm told I should be calling it, you know who you are!) I talk to Peter Owens, CEO of NewCode, about how to accelerate moving VB6 legacy code to the .NET platform. NewCode were one of our partners for the launch of Visual Studio 2008 in February, and have developed an add-in for Visual Studio 2008 which offers a different approach to, say, the VB6 migration wizard from Microsoft - I wanted to catch up with them to see how things have progressed in the intervening 9 months or so since launch.
The full podcast is nearly 16 minutes long, but I have included markers in the audio so you can use the skip buttons (either side of the stop button) to skip directly to the topics as per the table below:
Time
Topic
00:00:00
Welcome/About NewCode
00:05:55
How does it work?
00:07:36
What about 3rd party components / custom controls?
00:09:15
What's the usage model?
00:11:24
Components of the product (VS integration & associated service)
00:13:58
Takeup/feedback
00:15:54
Closing
Also available: mp3
One key difference of NewCode's approach from say the VB6 code advisor is that it uses MS DSL to produce a model of your existing VB6 application as shown below:
This modelling is kept logically separate from the code generation step meaning that you can refactor your application's architecture prior to generating .NET code. The premise is that you are not just porting your existing code and doing what amounts to a recompile. Rather, you get the opportunity to refactor to take advantage of the features of the target NET platform, and you can customise the code generation to meet in-house coding standards . For example, you can decide whether you want the tool to produce a Windows Forms or an ASP.NET application. And - you can then decide to generate VB.NET or C# code - sweet!
Below is a screenshot of an existing VB6 application open within the VB6 IDE:
And here is the migrated application within Visual Studio 2008:
Note the various nodes within the solution explorer: not just code, but also your model along with documentation and migration reports generated as part of the migration process. Listen to the podcast to hear Peter talk in more detail about the features of the tool, and check out his screencast to see the tool in action.
All in all it's a great example of how to integrate closely with Visual Studio, and great to see how one of our launch partners is helping their customers move to the .NET platform so they can start using all the latest and greatest features of VS 2008 .NET 3.5 SP1.
In the past few months I've talked to quite a few organisations who are wondering whether they should rewrite/migrate/replace their existing VB6 applications, and to a large extent this issue has been put front and center by the end of extended support for the VB6 runtime in April 2008. There are plenty of issues to consider, not all of them technical - training for example, testing of the migrated solution and projected lifespan of the migrated solution. Here are some resources to help you decide the best way forward for your organisation:
- MSDN Rampup Program (resources for those new to .NET e.g. from VB6 or Java backgrounds) : http://msdn.microsoft.com/en-us/rampup/default.aspx
- VB6 Resource Center http://msdn.com/vbrun/
- PAG Migration Guide Book & Assessment Tool http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/VB6ToVBNetUpgrade.asp
- Interop Forms Toolkit 2.0 & VB Power Packs http://msdn2.microsoft.com/en-us/vbasic/ms789080.aspx#PP
- Sample Hybrid VB6 and VB.NET Application http://msdn.microsoft.com/en-us/library/cc300139(VS.80).aspx
- “Upgrading VB6 to VB.NET” MS Press Book http://www.microsoft.com/MSPress/books/5699.asp
- VB6 Code Advisor Tool http://msdn.microsoft.com/vbasic/downloads/codeadvisor/default.aspx : updated to http://www.microsoft.com/downloads/details.aspx?familyid=a656371a-b5c0-4d40-b015-0caa02634fae&displaylang=en
- VB6 on Vista Support Statement http://msdn2.microsoft.com/en-us/vbrun/ms788708.aspx
- Blog http://blogs.msdn.com/vbteam
Cross posted from Ronan's blog