<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>VB Migration Partner</title>
    <description>blog</description>
    <link>https://www.vbmigration.com/Blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.6.1.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>https://www.vbmigration.com/Blog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.vbmigration.com/blog/syndication.axd</blogChannel:blink>
    <dc:creator>My name</dc:creator>
    <dc:title>VB Migration Partner</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>[INTERVIEW] Yours truly on .NET Rocks!</title>
      <description>&lt;p&gt;&lt;img src="https://www.vbmigration.com/Blog/image.axd?picture=2014%2f5%2fNETROcks.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;A few weeks ago I had an interesting and entertaining conversation with Carl Franklin and Richard Campbell of .NET ROCKS, about VB6 migration, the effect that Windows XP retirement is having on companies that can't afford keeping their mission-critical VB6 apps on an unsupported operating system, and a lot more. Yesterday the interview went online, at &lt;a style="font-weight: bold;" href="http://www.dotnetrocks.com/default.aspx?showNum=977" target="_blank"&gt;this URL&lt;/a&gt;,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Happy listening!&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2014/05/02/INTERVIEW-Yours-truly-on-NET-Rocks!.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2014/05/02/INTERVIEW-Yours-truly-on-NET-Rocks!.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=c37bc115-8714-436a-a2bc-c21274b466eb</guid>
      <pubDate>Fri, 02 May 2014 16:30:00 +0200</pubDate>
      <category>Introduction</category>
      <category>VB Migration Partner</category>
      <category>VB.NET</category>
      <category>VB6</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=c37bc115-8714-436a-a2bc-c21274b466eb</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=c37bc115-8714-436a-a2bc-c21274b466eb</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2014/05/02/INTERVIEW-Yours-truly-on-NET-Rocks!.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=c37bc115-8714-436a-a2bc-c21274b466eb</wfw:commentRss>
    </item>
    <item>
      <title>Code Architects partners with Ianiri Informatica</title>
      <description>&lt;p&gt;Code Architects has recently acquired 50% of Ianiri Informatica, an Italian software house that was founded n 1982 and that is known as the makers of &lt;strong&gt;&lt;a href="http://www.gipo.it/" target="_blank"&gt;GIPO&lt;/a&gt;&lt;/strong&gt;, the leading software for small clinics, day hospitals and physioterapy centers.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.vbmigration.com/Blog/image.axd?picture=2013%2f8%2fGipo.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Code Architects and Ianiri Informatica will work together to deliver the next generation of GIPO software, codenamed &lt;strong&gt;GIPO Sky&lt;/strong&gt;, that will be entirely Cloud-based and use HTML5 for a modern and functional user&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At the same time, Ianiri Informatica's expertise in areas such as HTML5 and scripting languages will be used by Code Architects in building the next generation of VB6 migration software and application modernization tools.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;More details will follow... STAY TUNED !&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2013/08/19/Code-Architects-partners-with-Ianiri-Informatica.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2013/08/19/Code-Architects-partners-with-Ianiri-Informatica.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=e39ca0eb-b79c-44a2-adf3-3e57d423e1fe</guid>
      <pubDate>Mon, 19 Aug 2013 20:27:00 +0200</pubDate>
      <category>Partners</category>
      <category>Tools</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=e39ca0eb-b79c-44a2-adf3-3e57d423e1fe</pingback:target>
      <slash:comments>124</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=e39ca0eb-b79c-44a2-adf3-3e57d423e1fe</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2013/08/19/Code-Architects-partners-with-Ianiri-Informatica.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=e39ca0eb-b79c-44a2-adf3-3e57d423e1fe</wfw:commentRss>
    </item>
    <item>
      <title>[NEW RELEASE] Version 1.51 is available to registered users</title>
      <description>&lt;p&gt;Since early 2013 we have been distributing version 1.50 to selected customers, gathered their feedback and suggestions, and the result here: &lt;strong&gt;VB Migration Partner 1.51 is now ready&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.vbmigration.com/Blog/image.axd?picture=2013%2f6%2fVBMP151+options.png" alt="" width="400" height="300" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are tons of improvements in this new release, but the most important one is surely &lt;strong&gt;full-featured&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;C# code generation&lt;/strong&gt;. While our competitors are compatible with the C# language found in Visual Studio 2008, we decided to focus on C# 2010, which allows us to support modern C# features were not available in earlier language versions, most notably the &lt;strong&gt;dynamic type&lt;/strong&gt; and &lt;strong&gt;optional parameters&lt;/strong&gt;. These two single features, together with the many enhancements that only VB Migration Partner offers, let our users to create the most efficient and readable code a VB6-to-C# converter can possibly generate.&lt;/p&gt;
&lt;p&gt;Here is a short and &lt;em&gt;incomplete &lt;/em&gt;list of C# features offered by VB Migration Partner (and in many cases only by VB Migration Partner!):&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C# specific&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;support for the dynamic type&lt;em&gt; =&amp;gt; faster and concise code&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;support for optional parameters =&amp;gt; &lt;em&gt;more readable code&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;ByRef parameters rendered using the out keyword if possible =&amp;gt; &lt;em&gt;faster code&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;the ability to generate method overloads for ref/out parameters avoids the need for temporary variables in method calls =&amp;gt; &lt;em&gt;concise and readable code&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;support for WithEvents variables =&amp;gt; &lt;em&gt;less verbose code&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;ability to implement an interface either implicitly or explicitly =&amp;gt; &lt;em&gt;compliance with your own programming style&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;transformation of On Error Goto into try-catch blocks (with warnings when the transformation isn't perfectly equivalent)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;transformation of On Error Resume Next into lambda expressions =&amp;gt; &lt;em&gt;full functional equivalence&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;preserves error codes =&amp;gt; &lt;em&gt;no need for manual fixes after migration&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;transformation of And/Or operators into either bit-wise or logical C# operators&amp;nbsp;&lt;/li&gt;
&lt;li&gt;transformation of Select blocks into either if or switch blocks =&amp;gt; &lt;em&gt;more logical and efficient code&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Exit For,Do,While keywords in nested loops =&amp;gt; &lt;em&gt;code works as expected&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;expressions and function calls in compiler constants&lt;/li&gt;
&lt;li&gt;string and math native .NET methods used if possible =&amp;gt; &lt;em&gt;compliance with .NET programming style&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;strong&gt;VB.NET and C#&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;code generation for VS 2010 and VS 2012&lt;/li&gt;
&lt;li&gt;support for .NET 3.5 and 4.x&lt;/li&gt;
&lt;li&gt;improved support for User Control serialization in code-behind sections of forms =&amp;gt; &lt;em&gt;faster .NET form loading&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;simplified design-time and runtime support for scaling User Control at different screen resolution and system font sizes =&amp;gt; &lt;em&gt;no-brains compliance with .NET coding guidelines&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;positional pragmas&lt;/strong&gt;: it is now possible to keep all pragma (including method-specific pragmas) in separated text files =&amp;gt; &lt;em&gt;less cluttered source files&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;automatici generation of AccessibleName property for .NET or custom controls =&amp;gt; &lt;em&gt;.NET apps ready for visually-impaired users&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;support for external source file editors =&amp;gt; &lt;em&gt;edit VB6 or .NET code with your favorite tool&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;many bugs fixed (of course!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these features (and of the many features that I didn't mentioned) would require a separate discussion, and I will surely devote some posts to the most interesting ones.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For now, you can learn more about C# specific support&amp;nbsp;&lt;a href="http://www.vbmigration.com/whitepapers/vb6tocsharp.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2013/06/04/NEW-RELEASE-Version-151-is-available-to-registered-users.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2013/06/04/NEW-RELEASE-Version-151-is-available-to-registered-users.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=c7a6d0d9-75c6-4de8-ba59-dab92319ba7f</guid>
      <pubDate>Tue, 04 Jun 2013 11:06:00 +0200</pubDate>
      <category>C#</category>
      <category>VB Migration Partner</category>
      <category>VB.NET</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=c7a6d0d9-75c6-4de8-ba59-dab92319ba7f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=c7a6d0d9-75c6-4de8-ba59-dab92319ba7f</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2013/06/04/NEW-RELEASE-Version-151-is-available-to-registered-users.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=c7a6d0d9-75c6-4de8-ba59-dab92319ba7f</wfw:commentRss>
    </item>
    <item>
      <title>Feedback from Apogeo, Italy</title>
      <description>&lt;p&gt;One more customer who used VB Migration Partner and Code Architects' migration services...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;VB Migration Partner has been a winning choice for migrating our VB6 application, that serves over 700 customers. In a few months they delivered an error-free version of our 500K lines of code application and we appreciated the VB Migration Partner efficient and skilled technical support. Code Architects is a crucial partner to quickly adapt the product to the new technologies.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Gianluca Zanella&lt;br /&gt;Technical Team Apogeo - Gruppo Zucchetti &amp;ndash; Italy&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2013/01/22/Feedback-from-Apogeo-Italy.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2013/01/22/Feedback-from-Apogeo-Italy.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=aafb795f-1423-4b04-9df7-f4a76e5148b6</guid>
      <pubDate>Tue, 22 Jan 2013 17:30:00 +0200</pubDate>
      <category>Migration cases</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=aafb795f-1423-4b04-9df7-f4a76e5148b6</pingback:target>
      <slash:comments>63</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=aafb795f-1423-4b04-9df7-f4a76e5148b6</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2013/01/22/Feedback-from-Apogeo-Italy.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=aafb795f-1423-4b04-9df7-f4a76e5148b6</wfw:commentRss>
    </item>
    <item>
      <title>VB Migration Partner will support Visual Studio 2012</title>
      <description>&lt;p&gt;A few customers asked about our support for the forthcoming Visual Studio 2012, so here is the official announcement:&lt;/p&gt;
&lt;p&gt;VB Migration Partner will add support for Microsoft Visual Studio 2012 within a few weeks after VS official release. This includes code generation for both VB.NET and C# and support for .NET 4.5.&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2012/07/23/VB-Migration-Partner-will-support-Visual-Studio-2012.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2012/07/23/VB-Migration-Partner-will-support-Visual-Studio-2012.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=b29ab9dd-fccf-4181-8646-22089d2dbccc</guid>
      <pubDate>Mon, 23 Jul 2012 15:48:00 +0200</pubDate>
      <category>C#</category>
      <category>VB Migration Partner</category>
      <category>VB.NET</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=b29ab9dd-fccf-4181-8646-22089d2dbccc</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=b29ab9dd-fccf-4181-8646-22089d2dbccc</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2012/07/23/VB-Migration-Partner-will-support-Visual-Studio-2012.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=b29ab9dd-fccf-4181-8646-22089d2dbccc</wfw:commentRss>
    </item>
    <item>
      <title>[EVENT] Forthcoming webcast on VB6 migration to VB.NET and C#</title>
      <description>&lt;p&gt;On Tuesday, June 19 at 10.00 am Pacific Time I will give an MSDN Webcast entitled &lt;strong&gt;Proven Methodologies and Tools for Migrations from Visual Basic 6 to Visual Basic .NET or Visual C#&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In spite of the long and complex title, it's a Level 200 webcast, so it is suitable even for those who never had to migrate their VB6 code to .NET (lucky guys! &lt;img title="Laughing" src="http://www.vbmigration.com/Blog/editors/tiny_mce3/plugins/emotions/img/smiley-laughing.gif" border="0" alt="Laughing" /&gt;).&lt;/p&gt;
&lt;p&gt;In 60 minutes I will show some useful insights in how to migrate VB6 to either VB.NET and C# with the best results and will descrive our &lt;em&gt;&lt;strong&gt;convert-test-fix&lt;/strong&gt;&lt;/em&gt; methodology, which is enabling many developers all over the world to convert their &lt;em&gt;evolving&lt;/em&gt; VB6 codebase and still be able to generate a VB.NET or C# code that is synched with the most recent version of the VB6 code. (By comparison, our competitors force you to freeze the development on the VB6 side during the weeks or months while the migration takes place.) I will also show the ADOLibrary in action and how you can solve most of your ADODB-to.ADO-NET headaches with it.&lt;/p&gt;
&lt;p&gt;You can attend the event and ask your question by visiting &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032515397&amp;amp;culture=en-US" target="_blank"&gt;this&lt;/a&gt; page. See you online.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2012/06/12/EVENT-Forthcoming-webcast-on-VB6-migration-to-VBNET-and-C.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2012/06/12/EVENT-Forthcoming-webcast-on-VB6-migration-to-VBNET-and-C.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=8927360b-2769-44ff-a482-925f42c8e9f8</guid>
      <pubDate>Tue, 12 Jun 2012 18:02:00 +0200</pubDate>
      <category>ADOLibrary</category>
      <category>Events</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=8927360b-2769-44ff-a482-925f42c8e9f8</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=8927360b-2769-44ff-a482-925f42c8e9f8</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2012/06/12/EVENT-Forthcoming-webcast-on-VB6-migration-to-VBNET-and-C.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=8927360b-2769-44ff-a482-925f42c8e9f8</wfw:commentRss>
    </item>
    <item>
      <title>[NEW RELEASE] VB Migration Partner 1.50 Public Beta with C# support is available!</title>
      <description>&lt;p&gt;VB Migration Partner &lt;strong&gt;with C# support &lt;/strong&gt;has been in private beta for a few months: results and feedback have been VERY encouraging and we are now ready to make it available to all users!&lt;/p&gt;
&lt;p&gt;Our last released version was 1.34, therefore this version should be 1.35, but we decided to jump to &lt;strong&gt;version 1.50 &lt;/strong&gt;to emphasize the new C# support.&lt;/p&gt;
&lt;p&gt;VB Migration Partner isn't the first or the only VB6-to-C# generator on the market, but for sure it features &lt;em&gt;&lt;strong&gt;the most sophisticated engine for converting from VB6 to C#&lt;/strong&gt;&lt;/em&gt;. Unlike our competitors, who still target older C# versions, we decided to generate C# code for Visual Studio 2010, so that we could take advantage of the many great features of this new version, such as optional parameters and the dynamic data type for seamless late-bound calls. The result is C# code that is far more concise, readable, and efficient that ANY OTHER tool that converts from VB6 to C#.&lt;/p&gt;
&lt;p&gt;Here is a short and incomplete list of what VB Migration Partner 1.50 can do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;converts VB6 optional parameters into either C# optional parameter or method overloads; as with all VB Migration Partner's options, you can set your preferences at the project, file, or method level, therefore you can produce exactly the code that you like most. &lt;em&gt;&lt;br /&gt;By comparison, other VB6-to-C# tools can only translate optional parameters into method overloads, which typically means more code to maintain in the future.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;convert Variant and Object variables into the &lt;strong&gt;C# dynamic &lt;/strong&gt;type, which means better and concise C# code that doesn't rely on clumsy and inefficient helper methods to perform late-bound calls. &lt;em&gt;&lt;br /&gt;Unbelievably, two years after VS 2010 launch, our competitor still ignores that late-bound calls can and should rendered via the dynamic data type, and stubbornly generate a lot of code that relies on helper methods and Reflection to invoke a late-bound method.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;generates &lt;strong&gt;out &lt;/strong&gt;instead of &lt;strong&gt;ref &lt;/strong&gt;parameters if possible, thus allowing the C# compiler to generate faster method calls. &lt;em&gt;&lt;br /&gt;No other VB6 conversion tool has this feature.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;converts Select Case blocsk into either &lt;strong&gt;switch &lt;/strong&gt;blocks (if possible) or &lt;strong&gt;if..else if &lt;/strong&gt;blocks (in the most general case); switch blocks are preferred to if..else if blocks because the C# compiler can optimize them into jump tables, whereas if...else if blocks require that a given expression must be re-evaluated many times. &lt;em&gt;&lt;br /&gt;As you might have guessed, no other VB6 conversion tool can generate efficient switch blocks.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;can optionally generate method overloads to account for &lt;strong&gt;ref &lt;/strong&gt;parameters that receive expressions and constant values; this feature alone dramatically simplifies the code that is needed to call the method. &lt;br /&gt;&lt;em&gt;By comparison, other VB6-to-C# generate tons of temporary variables for each method call, a technique that makes the code more verbose and in some cases generates compilation errors.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;it can generate an interface implementation either implicitly (with public methods) or explicitly, which helps keeping the object model tidy and elegant. &lt;em&gt;&lt;br /&gt;Other converters can only generate implicitly-implemented interfaces.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;convert an On Error Goto statement into a try-catch, with a warning if the try-catch block isn't perfectly equivalent to the original VB6 code. &lt;em&gt;&lt;br /&gt;Other converters do the same, but never emit a warning.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;convert an On Error Resume Next statement into a series of lambda expressions, with you deciding whether this option is applied at the project, file, and method level. &lt;br /&gt;&lt;em&gt;Other converters offer this feature only at the project level, which gives you no control about where the conversion should or shouldn't be applied.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;refactor Gosub calls into separate private methods. &lt;em&gt;&lt;br /&gt;No other converter has this important feature, which VB Migration Partner has since 2008.&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;gives you control over which .NET methods should be used instead of helper methods (defined in the support library), and where the replacement is OK. &lt;br /&gt;&lt;em&gt;Other converters provide this option only at the project-level, which often leads to a behavior that isn't equivalent to the original VB6 code.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;convert from ADODB to ADO.NET, including support for server-side SQL Server cursors, thanks to our ADOLibrary. &lt;br /&gt;&lt;em&gt;No other convert even comes close to this!&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As if all this weren't enough, remember that VB Migration Partner 1.50 generates C# project that use our feature-rich support library, which &lt;span style="text-decoration: underline;"&gt;perfectly &lt;/span&gt;mimics the VB6 behavior and prevents you from wasting weeks or months trying to duplicate the behavior of the application being migrated. This includes full support for graphic methods, drag-and-drop, data-binding, weird Windows API methods, subclassing, etc. What can you ask for more?&lt;/p&gt;
&lt;p&gt;VB Migration Partner 1.50 Beta is available to all registered users, together with white papers that contain tips and recommendations for whoever wants to convert VB6 projects to C#. We are in the process of updating all our online docs.&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2012/06/09/NEW-RELEASE-VB-Migration-Partner-150-Public-Beta-with-C-support-is-available!.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2012/06/09/NEW-RELEASE-VB-Migration-Partner-150-Public-Beta-with-C-support-is-available!.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=19fd1dc1-84e3-49c1-a148-2fd1bc19fc52</guid>
      <pubDate>Sat, 09 Jun 2012 19:31:00 +0200</pubDate>
      <category>C#</category>
      <category>Competing products</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=19fd1dc1-84e3-49c1-a148-2fd1bc19fc52</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=19fd1dc1-84e3-49c1-a148-2fd1bc19fc52</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2012/06/09/NEW-RELEASE-VB-Migration-Partner-150-Public-Beta-with-C-support-is-available!.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=19fd1dc1-84e3-49c1-a148-2fd1bc19fc52</wfw:commentRss>
    </item>
    <item>
      <title>Happy New Migration Year</title>
      <description>&lt;p&gt;I know, it's been a long time since my last post, which followed version 1.34, the first release that officially supports ADODB-to-ADO.NET conversion.&lt;/p&gt;
&lt;p&gt;I have a good excuse for this absence, though: we have been working hard on the next major release VB Migration Partner, which will include support for VB6-to-C# migration. We are very excited about this new great feature, and look forward to releasing the first beta release to our registered users.&lt;/p&gt;
&lt;p&gt;Converting VB6 to C# is way more complex than converting to VB.NET. Here are just a few of the VB6 features that require special treatment under C#:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Late-binding calls&lt;/li&gt;
&lt;li&gt;On Error Goto, On Error Resume Next and Resume&lt;/li&gt;
&lt;li&gt;Option Strict Off&lt;/li&gt;
&lt;li&gt;Modules and global variables&lt;/li&gt;
&lt;li&gt;Static local variables inside methods&lt;/li&gt;
&lt;li&gt;With...End With blocks&lt;/li&gt;
&lt;li&gt;Select Case blocks (C# switch blocks don't allow &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;= and TO operators)&lt;/li&gt;
&lt;li&gt;ref/out optional parameters (C# only supports by-value optional params)&lt;/li&gt;
&lt;li&gt;Date constants and optional Date parameters (both are unsupported under C#)&lt;/li&gt;
&lt;li&gt;Multiple default properties with arguments (C# only supports one indexer per class)&lt;/li&gt;
&lt;li&gt;WithEvents variables&lt;/li&gt;
&lt;li&gt;#IF and #ELSEIF blocks (C# doesn't support operators in compile-time expressions)&lt;/li&gt;
&lt;li&gt;... and counting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The good news is that &lt;strong&gt;&lt;em&gt;VB Migration Partner will be able to correctly migrate all these features&lt;/em&gt;&lt;/strong&gt; (and many others) and will generate code that contains fewer compilation errors and is more efficient than any other VB6-to-C# converter, including those that have been on the market for years.&lt;/p&gt;
&lt;p&gt;VB Migration Partner also leverages the C# features that are missing in VB.NET, for example it generates &lt;strong&gt;out &lt;/strong&gt;parameters instead of &lt;strong&gt;ref &lt;/strong&gt;parameters when possible and can emit both explicit and implicit interface implementations, a choice that no other tool provides. As for all other VB Migration Partner features, and unlike other migration products, these options can be controlled via pragmas at the solution, project, file, and method-level, thus you can always generate that C# code that matches your programming style.&lt;/p&gt;
&lt;p&gt;We don't have an exact release date yet, but we hope it to be "very soon". Just stay tuned!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2012/01/11/Happy-New-Migration-Year.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2012/01/11/Happy-New-Migration-Year.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=027a3c0d-ae84-4883-b969-dd74ef6e2928</guid>
      <pubDate>Wed, 11 Jan 2012 07:14:00 +0200</pubDate>
      <category>VB Migration Partner</category>
      <category>C#</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=027a3c0d-ae84-4883-b969-dd74ef6e2928</pingback:target>
      <slash:comments>62</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=027a3c0d-ae84-4883-b969-dd74ef6e2928</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2012/01/11/Happy-New-Migration-Year.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=027a3c0d-ae84-4883-b969-dd74ef6e2928</wfw:commentRss>
    </item>
    <item>
      <title>New KB articles about version 1.34</title>
      <description>&lt;p&gt;As explained in &lt;a href="http://www.vbmigration.com/Blog/post/2011/10/06/MAJOR-UPDATE-Announcing-VB-Migration-Partner-134.aspx" target="_blank"&gt;my previous post&lt;/a&gt;, VB Migration Partner 1.34 is a major update that contains many great features that make the most powerful VB6 converter on the market even more powerful.&lt;/p&gt;
&lt;p&gt;If you are using the new version to re-migrate VB6 projects that have been instrumented with pragmas - in other words, you are adopting our convert-test-fix methodology - the notes that follow aren't really pertinent to you. On the other hand, if you plan to simply replace the current version of CodeArchitects.VBLibrary DLL with the new version there are a few things you should know.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;we have changed the way the ImageList control is implemented, and this change may affect existing (migrated) forms. You can read more in &lt;a href="http://www.vbmigration.com/detknowledgebase.aspx?Id=676" target="_blank"&gt;this article&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;If you take advantage of the new CodeArchitects.VBPowerPack DLL - for example by copying it into VB Migration Partner's setup folder - you should consider that a few VB6 objects will be rendered by means of objects exposed by this new DLL, namely: the CommonDialog, Line, and Shape controls, the Printer object, and the Printers collection. The objects in this DLL are fully .NET classes that have no dependency on COM, however they are slightly less compatible with VB6 than the objects used by VB Migration Partner v.1.33 (that are still available in the main CodeArchitects.VBLibrary support library). Please read &lt;a href="http://www.vbmigration.com/detknowledgebase.aspx?Id=694" target="_blank"&gt;this article&lt;/a&gt; before deciding whether to use the new objects.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;VB Migration Partner 1.34 introduces many new features that can greatly improve the behavior of your migrated projects. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The new &lt;strong&gt;VB6Config.UseExCompositeStyle&lt;/strong&gt; boolean property allows you to leverage a little-known feature of .NET forms and eliminate the flickering you may see when loading or resizing a form that contains many controls. (The flickering is especially apparent if the form has a background image). &lt;a href="http://www.vbmigration.com/detknowledgebase.aspx?Id=692" target="_blank"&gt;This article&lt;/a&gt; explains how and when to use this property.&lt;/li&gt;
&lt;li&gt;The new &lt;strong&gt;VB6Config.DBCSSupport &lt;/strong&gt;boolean property can be set to true to improve support for DBCS strings. This is especially useful for Japanese users. (Don't set this property to True unless necessary, because it would slightly reduce exection speed of some string functions.)&lt;/li&gt;
&lt;li&gt;If the new &lt;strong&gt;VB6Config.UseVBPowerPack &lt;/strong&gt;boolean prooperty is set to True, then the &lt;strong&gt;PrintForm &lt;/strong&gt;method internally uses the PrintForm class defined in Microsoft VB PowerPacks. In some cases this setting delivers better results. Of course, if you assign True to this property the Microsoft.VisualBasic.PowerPacks.dll file must be installed on the end user's computer.&lt;/li&gt;
&lt;li&gt;The VB6Form, VB6PictureBox, and VB6UserControl classes now expose the &lt;strong&gt;DoubleBuffered &lt;/strong&gt;property. If you set this property to True - in the Properties window at design-time or programmatically via code - applications that perform massive graphic operations will run remarkably faster, &lt;strong&gt;&lt;em&gt;up to a factor of 8x&lt;/em&gt;&lt;/strong&gt;! The speed improvement is especially noticable for graphic methods that run inside the Paint event handler.&lt;/li&gt;
&lt;li&gt;The CommandButton, CheckBox, and OptionButton controls now expose a boolean property named &lt;strong&gt;UseTextAlignment&lt;/strong&gt;. If you set this property to True  - in the Properties window at design-time or programmatically via code - then you can supercede the standard VB6-styled text alignment and precisely align the caption by means of the .NET TextAlignment property.&lt;/li&gt;
&lt;li&gt;A new migration INFO message is generated for all Variant and Object variables whose type has been inferred into a more specific type. Thanks to this new message you can quickly check that VB Migration Partner inferred the correct type.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;VB Migration Partner 1.34 has also fixed a few minor bugs and further improved the compatibility with VB6 in many areas.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2011/10/17/New-KB-articles-about-version-134.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2011/10/17/New-KB-articles-about-version-134.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=7799c1ad-723c-4616-b218-fecd4e9abe87</guid>
      <pubDate>Mon, 17 Oct 2011 12:55:00 +0200</pubDate>
      <category>Optimization</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=7799c1ad-723c-4616-b218-fecd4e9abe87</pingback:target>
      <slash:comments>62</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=7799c1ad-723c-4616-b218-fecd4e9abe87</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2011/10/17/New-KB-articles-about-version-134.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=7799c1ad-723c-4616-b218-fecd4e9abe87</wfw:commentRss>
    </item>
    <item>
      <title>[MAJOR UPDATE] Announcing VB Migration Partner 1.34</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.vbmigration.com/images/VB_Migration_Partner_logo.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Many months have passed since the last VB Migration Partner release (1.33), but surely we haven't been lazy in the meantime. As a matter of fact, the upcoming version 1.34 is filled with great and exciting new features. Don't let the "minor release number" fool you: &lt;strong&gt;this is a major upgrade &lt;/strong&gt;that will make your migrations easier and faster than ever!&lt;/p&gt;
&lt;p&gt;First and foremost, version 1.34 officially includes &lt;a href="http://www.vbmigration.com/Documentation/adolibrary.aspx" target="_blank"&gt;&lt;strong&gt;ADOLibrary&lt;/strong&gt;&lt;/a&gt;, the revolutionary .NET library that makes the transition from ADODB to ADO.NET a child play. A will illustrate all the features of this library in a forthcoming post, but for now let me say that ADOLibrary fully supports forwardonly-readonly server-side cursors and client-side cursors with batch optimistic updates. Unlike other vendors in this market, &lt;strong&gt;when we say "fully support" we really mean it&lt;/strong&gt;! In fact, we support all Connection and Recordset events and even rarely used dynamic properties such as Update Criteria or Unique Table. On top of that, we even offer nearly complete support for &lt;strong&gt;server-side SQL Server keyset cursors&lt;/strong&gt;, a feature that only VB Migration Partner can offer! You must see it to believe!&lt;/p&gt;
&lt;p&gt;Next comes the support for all the features of &lt;strong&gt;Microsoft VB PowerPacks&lt;/strong&gt;. Starting with version 1.34 migrated apps can use the Printer, Line, and Shape classes defined in this Microsoft library. Foir the highest compatibility with VB6 printing, in previous version the Printer class and the Print common dialog was implemented by means of a small COM DLL. Now all dependencies on COM can be removed and your migrated projects are fully native .NET apps. (For backward compatibility the PowerPack support must be explicitly enabled.)&lt;/p&gt;
&lt;p&gt;We have tremendously improved and optimized graphic operations, by using double-buffering and other expert-level programming techniques. While our competitors have just began to introduce limited support for a few graphic operations, the new release of VB Migration Partner is &lt;strong&gt;8-10x faster &lt;/strong&gt;than its predecessors. We even support the DrawMode property for Line methods, which means that you can do rubber-banding graphics (something that not even plain GDI+ offers).&lt;/p&gt;
&lt;p&gt;If you like forms that load fast and without flickering (who doesn't?), you'll be delighted to take advantage of a new feature of the VB6Form class, which uses an advanced and little-known feature of .NET forms to reduce load time and flickering of forms with tons of controls, that is the kind of forms that abound in VB6 projects and that "standard" .NET apps display so slowly. You don't have to be a Windows Forms guru to use this new feature, though: just set a configuration variable and then forget about it!&lt;/p&gt;
&lt;p&gt;We have significantly improved VB6 functional equivalence in just too many areas to mention here. Just an example: you can now read and write binary and random files that contain complexed and nested Type...End Type records, dynamic and static arrays, standard and fixed-length strings, etc. and still &lt;strong&gt;preserve full compatibility with VB6 binary files&lt;/strong&gt; In other words, you can exchange binary data with legacy VB6 apps without any need to convert it. This means saving DAYS of programming if you do the conversion manually or with another conversion tool...&lt;/p&gt;
&lt;p&gt;Version 1.34 will be available in a few hours. As usual, existing customers will be automatically notified of the new version the next time they launch VB Migration Partner. For more info about new features, changes and bug fixes, have a look at the VERSION HISTORY.TXT file.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2011/10/06/MAJOR-UPDATE-Announcing-VB-Migration-Partner-134.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2011/10/06/MAJOR-UPDATE-Announcing-VB-Migration-Partner-134.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=0e51a8ed-21c5-492d-bd03-bc8e3a5be830</guid>
      <pubDate>Thu, 06 Oct 2011 09:27:00 +0200</pubDate>
      <category>ADOLibrary</category>
      <category>Tools</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=0e51a8ed-21c5-492d-bd03-bc8e3a5be830</pingback:target>
      <slash:comments>9</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=0e51a8ed-21c5-492d-bd03-bc8e3a5be830</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2011/10/06/MAJOR-UPDATE-Announcing-VB-Migration-Partner-134.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=0e51a8ed-21c5-492d-bd03-bc8e3a5be830</wfw:commentRss>
    </item>
    <item>
      <title>Lecture on VB6 migration at MS Wester Europe ALM Partner Summit, Madrid</title>
      <description>&lt;p&gt;Next Tuesday (Oct 11) I am giving a speech at the &lt;strong&gt;Microsoft Western Europe ALM Partner Summit, Madrid&lt;/strong&gt;. The topic is of course VB6-to-.NET migration and the title of the session is &lt;strong&gt;VB6-to--NET Migration:Myths, Truths, and Real-World Experiences&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you are there, please pass by and say hi.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.vbmigration.com/Blog/image.axd?picture=2011%2f10%2fALM+Summit.jpg" alt="" width="451" height="181" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2011/10/05/Lecture-on-VB6-migration-at-MS-Wester-Europe-ALM-Partner-Summit-Madrid.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2011/10/05/Lecture-on-VB6-migration-at-MS-Wester-Europe-ALM-Partner-Summit-Madrid.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=92023dbf-4b6e-47dd-a343-9ecc6b047b60</guid>
      <pubDate>Wed, 05 Oct 2011 15:07:00 +0200</pubDate>
      <category>Events</category>
      <category>Partners</category>
      <category>VB6</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=92023dbf-4b6e-47dd-a343-9ecc6b047b60</pingback:target>
      <slash:comments>63</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=92023dbf-4b6e-47dd-a343-9ecc6b047b60</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2011/10/05/Lecture-on-VB6-migration-at-MS-Wester-Europe-ALM-Partner-Summit-Madrid.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=92023dbf-4b6e-47dd-a343-9ecc6b047b60</wfw:commentRss>
    </item>
    <item>
      <title>SnelStart, Netherlands choosed VB Migration Partner and happily migrated 450K LOCs</title>
      <description>&lt;p&gt;We just received this great feedback:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;em&gt;We have investigated the possibilities for a migration after a presentation of Code Architects at the Microsoft TechEd 2010 in Berlin. Before the presentation we assumed that migration would be too complicated en too expensive. After analyzing four different tools, we chose VB Migration Partner for the migration of our accounting and billing software (450K lines of code).&lt;br /&gt;&lt;br /&gt;The big advantage of VB Migration Partner is that it solves the problems directly in the VB6-code by using &amp;ldquo;pragmas&amp;rdquo;. Therefore we don&amp;rsquo;t have to freeze our code and interrupt the new development in our software. With VB Migration Partner it&amp;rsquo;s also possible to migrate 1:1. This enables us to offer our customers the same user experience, but this time on a new platform. The final reason for us to choose VB Migration Partner is the (online) service and documentation. The tool and the website contain lots of background information and tips that will help you with the migration.&lt;br /&gt;&lt;br /&gt;Ivo Huizinga&lt;br /&gt;IT Manager, SnelStart &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Netherland-based SnelStart is just another company who has appreciated the beauty and usefulness of VB Migration Partner's innovative approach based on pragma and its advantages over previous-generation, traditional conversion tools. You can find more example in our &lt;a href="http://www.vbmigration.com/usersfeedback.aspx"&gt;User Feedback&lt;/a&gt; page.&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2011/08/10/SnelStart-Netherlands-choosed-and-happily-migrated-450K-LOCs.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2011/08/10/SnelStart-Netherlands-choosed-and-happily-migrated-450K-LOCs.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=770a3abb-67f7-4eb4-8ac3-f44d09745ba3</guid>
      <pubDate>Wed, 10 Aug 2011 09:20:00 +0200</pubDate>
      <category>Migration cases</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=770a3abb-67f7-4eb4-8ac3-f44d09745ba3</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=770a3abb-67f7-4eb4-8ac3-f44d09745ba3</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2011/08/10/SnelStart-Netherlands-choosed-and-happily-migrated-450K-LOCs.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=770a3abb-67f7-4eb4-8ac3-f44d09745ba3</wfw:commentRss>
    </item>
    <item>
      <title>Does a support library add any performance overhead?</title>
      <description>&lt;p&gt;&lt;br /&gt;This is a recurring question among our prospect customers. The general idea is that a support library can't avoid adding some overhead to the migrated application. &lt;br /&gt;&lt;br /&gt;However, this is just another false myth and in fact we can easily prove that a support library can often make your application faster, not slower. Let's divide the explanation in four parts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;strong&gt;&lt;span style="color: blue;"&gt;1) Basic member wrappers&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;The vast majority of the classes and methods in VB Migration Partner's library are just &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;&lt;strong&gt;thin &lt;/strong&gt;&lt;/em&gt;layers over the corresponding .NET control. For example, this is the code for the SelText property of the VB6TextBox control:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;Public Class VB6TextBox&lt;br /&gt;&amp;nbsp;&amp;nbsp; Inherits System.Windows.Forms.TextBox&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; ' ...(all other properties and methods have been omitted)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Public Property SelText() As String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return MyBase.SelectedText&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set(ByVal value As String)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.SelectedText = value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Set&lt;br /&gt;&amp;nbsp;&amp;nbsp; End Property&lt;br /&gt;End Class&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;NOTICE that the VB6TextBox class inherits from System.Windows.Forms.TextBox, therefore it is a 100% native .NET control. Only the few members whose name or behavior differ from the VB6 counterpart need to be overridden. Also, notice that re-exposing a .NET property with the VB6 name ensures that migrated apps work also if the control is accessed via late-binding. &lt;em&gt;&lt;strong&gt;None of our competitors can&amp;rsquo;t handle the late-binding case correctly &lt;/strong&gt;&lt;/em&gt;and they require that you manually tweak the migrated code.&lt;br /&gt;&lt;br /&gt;As you see, the wrapping property just forward the call to the base class. Interestingly, the .NET Just-in-time compiler uses an optimization technique known as &lt;em&gt;code inlining&lt;/em&gt;, which guarantees that the SelText property is sidestepped and that the client app directly invokes the SelectedText member in the base class. In short, &lt;strong&gt;&lt;em&gt;no performance penalty occurs for simple wrapping members&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;color: blue"&gt;&lt;strong&gt;2) Wrappers with additional statements&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;A method in the support library may include additional statements, in order to preserve functional equivalence with the original VB6 code. For example, in VB6 an assignment to the SelStart property also resets SelLength and brings the cursor into view. We keep the functional equivalence by adding a couple statements in the wrapping property:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;Public Property SelStart() As Integer&lt;br /&gt;&amp;nbsp;&amp;nbsp; Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return MyBase.SelectionStart&lt;br /&gt;&amp;nbsp;&amp;nbsp; End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set(ByVal value As Integer)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.SelectionStart = value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.ScrollToCaret()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' in VB6 setting SelStart resets Sellength&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.SelectionLength = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp; End Set&lt;br /&gt;End Property&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The code inlining optimization technique described above avoids the call overhead even in this case, yet it is true that these additional actions may introduce a minor overhead.&lt;/p&gt;
&lt;p&gt;The point not to be missed, however, is that &lt;strong&gt;&lt;em&gt;developers working at the migration should add those statements anyway to preserve functional equivalence&lt;/em&gt;&lt;/strong&gt;. Having these statements located in the library instead of in the migrated code brings several advantages, including&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developers save time because apps migrated work well at the first attempt&lt;/li&gt;
&lt;li&gt;Developers don&amp;rsquo;t need to be &amp;ldquo;migration gurus&amp;rdquo; nor they need to be aware of the thousands major and minor differences between VB6 and .NET&lt;/li&gt;
&lt;li&gt;The code in the migrated app is more readable and can be maintained more easily, because it doesn&amp;rsquo;t contain all the extra (and obscure) statements that ensure that VB.NET code works exactly like VB6.&lt;/li&gt;
&lt;li&gt;The migrated app is therefore smaller and loads faster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please notice that &lt;strong&gt;&lt;em&gt;over 95% &lt;/em&gt;&lt;/strong&gt;of the methods and properties defined in our support library fall in either case 1 or 2. None of them adds any performance penalty to migrated apps. Better, they make your code more concise and faster!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; color: blue"&gt;&lt;strong&gt;3) Methods that have no .NET equivalent&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Fewer than 5% of the members in VB Migration Partner's support library have no direct equivalent in the .NET Framework. For example, this is the case with graphic methods (Line, Circle, etc.), drag-and-drop statements, and DDE keywords. Of course you&lt;strong&gt; *CAN* &lt;/strong&gt;implement graphics and drag-and-drop under .NET, but consider that this isn't an easy task because the VB6 and .NET programming models are very different. Not surprisingly, &lt;strong&gt;&lt;em&gt;only VB Migration Partner can automatically convert these VB6 features&lt;/em&gt;&lt;/strong&gt;, thanks to its support library.&lt;br /&gt;&lt;br /&gt;Because is no direct .NET counterpart exists and no other VB6 conversion tool supports these features, it's impossible to measure the overhead that our library adds in these cases. At any rate, we concede that an expert .NET developer might be able to re-write the graphic or drag-and-drop portions of your software so that it runs faster than the code migrated from VB6.&lt;/p&gt;
&lt;p&gt;As usual, the decision is a trade-off of cost/time against performance. VB Migration Partner can convert a graphic-intensive VB6 application into a &lt;em&gt;reasonably fast &lt;/em&gt;.NET graphic application. &lt;em&gt;&lt;strong&gt;M&lt;/strong&gt;&lt;strong&gt;aybe&lt;/strong&gt;&lt;/em&gt; you can make youre code run faster if you manually rewrite those graphic statements using native GDI+ methods. On the other hand, you're &lt;em&gt;&lt;strong&gt;surely &lt;/strong&gt;&lt;/em&gt;going to spend a lot of time and money in the process, without any certainty to achieve a result that is noticeably faster than what VB Migration Partner delivers to you in a few seconds and for free.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; color: blue"&gt;&lt;strong&gt;4) Helper performance-wise classes and methods&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Finally, don't forget that in many cases when &lt;strong&gt;&lt;em&gt;a support library can actually make your migrated code faster&lt;/em&gt;&lt;/strong&gt;, not slower. VB Migration Partner's support library includes several helper classes that have been designed with performance in mind. A great example of this concept is the StringBuilder6 helper class, that can speed up string concatenation by two or three orders of magnitude, as explained &lt;a href="http://www.vbmigration.com/Blog/post/2007/12/22/Speed-up-string-concatenations-after-the-migration-from-VB6.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The StringBuilder6 class is nothing but a wrapper for the well-known System.Text.StringBuilder class, thus you might optimize the migrated code by using either class. The big difference is that using the StringBuilder6 class only requires that you insert one single SetType pragma in the original VB6 code, whereas using the standard StringBuilder forces you to manually modify the generated code in many places, because the StringBuilder object calls for a different syntax.&lt;/p&gt;
&lt;p&gt;VB Migration Partner's library also offers auxiliary classes to speed up collections, and the VB6Collection helper class is much faster than the standard VB.NET collection in nearly all circumstances, as explained in &lt;a href="http://www.vbmigration.com/Blog/post/2008/11/08/Speed-up-your-VBNET-collections.aspx" target="_blank"&gt;this article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;VB Migration Partner's support library is written in standard VB.NET, therefore&amp;nbsp;all the performance improvements it offers could be &lt;strong&gt;&lt;em&gt;theoretically &lt;/em&gt;&lt;/strong&gt;achieved by modifying the VB.NET code generated by any conversion tool, for example Artinsoft's VBUC. However, these manual optimizations require some time (often, a LOT of time) and are error-prone, therefore &lt;strong&gt;&lt;em&gt;in practice &lt;/em&gt;&lt;/strong&gt;they are seldom carried out unless the migrated code is just too sluggish to be used.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Bottom line: VB Migration Partner and its support library generate .NET apps that &lt;strong&gt;&lt;em&gt;run faster than those produced by any other competing product&lt;/em&gt;&lt;/strong&gt;, and rarely require that you manually optimize the generated code.&lt;/p&gt;
&lt;p&gt;Still not convinced? Then wait no longer: &lt;a href="http://www.vbmigration.com/contactus.aspx"&gt;ask for VB Migration Partner Trial Edition&lt;/a&gt; and compare it against any other VB6 conversion tool, or against your .NET programming skills. The faster wins.&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2011/05/09/Does-a-support-library-add-any-performance-overhead.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2011/05/09/Does-a-support-library-add-any-performance-overhead.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=bbf1b9eb-6e69-4774-b28b-7d63e4dadf1b</guid>
      <pubDate>Mon, 09 May 2011 13:08:00 +0200</pubDate>
      <category>Optimization</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=bbf1b9eb-6e69-4774-b28b-7d63e4dadf1b</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=bbf1b9eb-6e69-4774-b28b-7d63e4dadf1b</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2011/05/09/Does-a-support-library-add-any-performance-overhead.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=bbf1b9eb-6e69-4774-b28b-7d63e4dadf1b</wfw:commentRss>
    </item>
    <item>
      <title>The quest for transparency</title>
      <description>&lt;p&gt;I always have fun at browsing our competitors' website, especially when they have to explain which VB6 features they support or don't support, or when they attempt some bold comparisons with THEIR competitors (that is, us!)&lt;/p&gt;
&lt;p&gt;For one, I can't help admiring the intentional vagueness that they often use when describing which controls their tool support. To them "supporting a control" is a binary property, it's either TRUE or FALSE.&lt;/p&gt;
&lt;p&gt;Just to give you a concrete example, all the VB6-to-.NET conversion tools claim that they support the PictureBox control. Alas, they forget to mention that they&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;don't support the PictureBox as a container&lt;/li&gt;
&lt;li&gt;don't support graphic methods, double buffering, and custom ScaleMode settings&lt;/li&gt;
&lt;li&gt;don't support DDE&lt;/li&gt;
&lt;li&gt;don't support drag-and-drop (neither "classic" nor OLE flavors)&lt;/li&gt;
&lt;li&gt;don't guarantee that all events are fired or are fired in the correct order&lt;/li&gt;
&lt;li&gt;... and counting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you look at it more closely, the "We support the XXX control" claim is void, unless you &lt;strong&gt;explicitly &lt;/strong&gt;specify which features are supported, which ones aren't, and those that are supported only partially. The devil is the details, as they said, and many customers discover these details only after purchasing the software.&lt;/p&gt;
&lt;p&gt;We believe this approach is ethically questionable and for this reason we always made the entire documentation for VB Migration Partner is available  online, so no one can get unpleasant surprises AFTER purchasing our  software. In addition to the manual we also make available the entire  Knowledge Base, which orderly lists all known defects and limitations  (and how to work around them). For sure this isn't a common  attitude in the world of software, as our customers can attest.&lt;/p&gt;
&lt;p&gt;In our quest for the highest transparency, we have prepared a &lt;a href="http://www.vbmigration.com/Documentation/vblibrary.aspx" target="_blank"&gt;long and detailed document &lt;/a&gt;(also in &lt;a href="http://www.vbmigration.com/documentation/vblibrary.pdf" target="_blank"&gt;PDF &lt;/a&gt;format) that explains all the features as well as all the limitations of VB Migration Partner's support library, including the slightest differences from VB6, and - above all -&lt;em&gt; &lt;/em&gt;how to work around them&lt;em&gt;.&lt;/em&gt; This information has always been available on our website, but finally our customers have a &lt;strong&gt;single &lt;/strong&gt;document that gathers the information spread in hundreds of different KB articles.&lt;/p&gt;
&lt;p&gt;It is a safe bet affirming that all software vendors maintain a list of known issues with their tool, as we do, but you won't find this list available on our competitors' websites.... Too embarassing?&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2011/05/06/The-quest-for-transparency.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2011/05/06/The-quest-for-transparency.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=34ca52c8-1d9b-4802-85f0-f42ea9c6a8b4</guid>
      <pubDate>Fri, 06 May 2011 11:27:00 +0200</pubDate>
      <category>Competing products</category>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=34ca52c8-1d9b-4802-85f0-f42ea9c6a8b4</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=34ca52c8-1d9b-4802-85f0-f42ea9c6a8b4</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2011/05/06/The-quest-for-transparency.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=34ca52c8-1d9b-4802-85f0-f42ea9c6a8b4</wfw:commentRss>
    </item>
    <item>
      <title>[NEW RELEASE] VB Migration Partner 1.33 is available</title>
      <description>&lt;p&gt;Less than three years after its debut, VB Migration Partner is such a mature and complete product that it's hard to add new features. For this reason, the new version comes as many as five months after the 1.32 version and can be considered as nothing more than a "maintainance build".&lt;/p&gt;
&lt;p&gt;Among the few noteworthy new features is the &lt;strong&gt;AddAttribute &lt;/strong&gt;pragma, which allows you to associate a .NET attribute with a program element (a class, a method, a variable, etc.). This attribute is especially useful to specify MarshalAs attributes for the elements of a Type structure in a way that is compliant with the convert-test-fix methodology, so that you don't have to manually modify the generated .NET code and can safely re-migrate the same piece of code over and over. (In previous versions, adding an attribute required some wizardry with the PostProcess pragma).&lt;/p&gt;
&lt;p&gt;We have also fixed about 40 minor bugs, thus VB Migration Partner is more robust than ever. The complete list of additions and bug fixes can be found in the VERSION HISTORY.TXT file.&lt;/p&gt;
&lt;p&gt;As usual, registered users will be notified of the new version (and will be brought to the download page) the next time they launch the software.&lt;/p&gt;</description>
      <link>https://www.vbmigration.com/Blog/post/2011/02/22/NEW-RELEASE-VB-Migration-Partner-133-is-available.aspx</link>
      <author>Francesco Balena</author>
      <comments>https://www.vbmigration.com/Blog/post/2011/02/22/NEW-RELEASE-VB-Migration-Partner-133-is-available.aspx#comment</comments>
      <guid>https://www.vbmigration.com/Blog/post.aspx?id=8eb039e5-551b-484a-8778-918910088763</guid>
      <pubDate>Tue, 22 Feb 2011 19:54:00 +0200</pubDate>
      <category>VB Migration Partner</category>
      <dc:publisher>Francesco Balena</dc:publisher>
      <pingback:server>https://www.vbmigration.com/Blog/pingback.axd</pingback:server>
      <pingback:target>https://www.vbmigration.com/Blog/post.aspx?id=8eb039e5-551b-484a-8778-918910088763</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>https://www.vbmigration.com/Blog/trackback.axd?id=8eb039e5-551b-484a-8778-918910088763</trackback:ping>
      <wfw:comment>https://www.vbmigration.com/Blog/post/2011/02/22/NEW-RELEASE-VB-Migration-Partner-133-is-available.aspx#comment</wfw:comment>
      <wfw:commentRss>https://www.vbmigration.com/Blog/syndication.axd?post=8eb039e5-551b-484a-8778-918910088763</wfw:commentRss>
    </item>
  </channel>
</rss>