Nilotpal Bhattacharya Partner Technical Consultant| Microsoft
Agenda ► Why VB.NET? ► Migration Decision Framework ► Migration Strategies ► Migration Tools ► Demos
► Move towards Object Orientation ► Many great language features ► Better and powerful IDE ► Awesome XML support ► Disconnected data architecture ► Web programming support ► Easy deployment ► Plenty of resources and full support Why VB.NET?
Rewrite Migrate Replace/ Partner Reuse Application Quality Application TYpe Custom Standard High Low Migration Decision Framework
Migration Strategies Client Tier Business Tier Data Tier Component vs. Horizontal vs. Vertical Migration Horizontal Com Interop Component Vertical Form Interop
Using COM from.NET
Potential issues with RCW ► Object Runtime Components that assume deterministic finalization may “leak” resources Destrcutors or Class_Terminate events will not execute untill the object is being collected Marshalling Types Custom marshalling/serlialization of complex types may be required Try to expose simple types (string, integers, dates when possible
Runtime Callable Wrapper
Using.NET from COM
Restrictions with CCW Classes must have a default constructor (One that takes no parameter) Classes cannot expose shared methods Classes cannot expose overloaded methods Note: If you expose overloaded methods, then you’ll get non descriptive names in the CCW (e.g Hello and Hello_2
Using.Net from COM
Interop Forms Toolkit 2.0 Reduce risks by moving one form at a time instead of entire modules or tiers Extend existing VB Forms with VB.Net Controls Provides guidance, tools and code to make phased upgrade easier Not a code converter VB 6 Application VB6 Form(s) Com Interop VB.NET Form(s)
Features in v2.0 Interop UserControls Net Controls that look and feel like ActiveX controls Extend VB6 apps within the same form Can be placed in MDI Easy Deployment Redistributable RegFree COM Support More Documentation
Interop ToolKit v2.0
► Code Advisor Add-in for VB6 Review code against pre-determined standards Identify migration issues ► Upgrade Assessment tool File Dependency and Call graphs Estimates of cost and effort to migrate Other potential migration issues Migration Tools
► EXE & DLL ► Copies project ► Creates reports ► Links to Help ► Four Levels IssueNo Automatic Upgrade ToDoRequires Finishing WarningPossible Behavior Change NoteInformational Migration Migration Wizard
Tools
► Install Visual Basic 6.0 on the computer that you will be using for upgrading. ► Windows Forms is largely compatible barring few differences like ► Non compatible Clipboard statements ► No support for the Name property for forms and controls at run time ► Setting 0 in Timer control to disable the Timer. ► Get an estimate by running Upgrade Wizard Some Pointers for migration
► Mainstream support ended March 31, years of free support is far longer than competitors ► Extended support is available through March 31, Custom support through 2012 ► The VB6 Runtime is slated to ship as a part of Windows Vista FAQ – VB Support policy How much longer are you supporting VB6?
Resources ► “Upgrading VB6 to VB.NET” MS Press – FREE ! ► Designing an Application Migration Strategy… ► Upgrade Assessment tool and Upgrade guide ► Preparing your Visual Basic 6 Applications for Upgrade ► Code Advisor 0caa02634fae&displaylang=en
Feedback / QnA Your Feedback is Important! Please take a few moments to fill out our online feedback form Use the Question Manager on LiveMeeting to ask your questions now!
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.