What’s New in Version 5.02

Released 11/22/2017

Current registered users: This program will install side by side with your previous installation and not overwrite it.
For new trial users: There is a 15 day trial period, 2000 line limitation per project converted.

Click Here to Download

Version 5.02 contains a number of improvements, thanks to the detailed feedback and interaction with many customers.

Conversion Improvements:

  • Improved lambda function conversion accuracy.
  • Added support for .Net Framework 4.7, which broke Tuple support in Visual Studio 2017 projects.
  • Fixed compatibility issue converting Visual Studio 2003 projects on Windows 10.
  • Improved accuracy of My.Resources conversions.
  • Fixed issue converting async inline functions.
  • Improved non-static initializer detection.
  • Improved conversions of enums declared as a type other than integer, such as ushort.
  • Improved detection of correct overloaded method to use in complex scenarios.
  • Improved conversion of expressions referencing complex implicitly typed variables.
  • Fixed error converting embedded case statements within a Select Case True block.
  • Fixed issue converting Array.Empty(Of TypeName), where the () was added before the <TypeName> instead of after.
  • Fixed issue of Array.Empty not being recognized as a static initializer and the assignment being moved to a class constructor.
  • Improved conversion of generic arguments requiring (), like .OfType(Of TypeName). Parens are added in the initial conversion, and not relying on compiler error correction.
  • Generated variables for With statements are now implicitly typed.
  • Corrected conversions of MySettings.SettingName
  • Fixed an issue converting a varible declared as type My.MySettings
  • ChrW(intLiteral) is converted as (char) intLiteral instead of Strings.ChrW(intLiteral), to allow initial assignment to constants.
  • Chr(intLiteral) is also converted as (char) intLiteral instead of \unnnn syntax, unless an initial assignment to a string constant is necessary.
  • Improved accuracy of AddressOf conversions, when initialized in a variable declared with a generic type.
  • Calling TryRemove method of ConcurrentDictionary.TryRemove is now passed with “out” instead of “ref” for the second argument.
  • AddHandler/RemoveHandler doesn’t unnecessarily wrap routines with event handlers.
  • Corrected problem converting “a is b” within a Case expression.
  • Improved conversion of generics, prevent output of terms like “System.Func`2” when converting code.
  • CStr is now converted as Convert.ToString() instead of .ToString(), to avoid possible null reference exceptions at runtime.
  • Improved routine resolution. Fixed issue where a custom routines would be incorrectly resolved to like named routines in referenced assemblies.
  • Short literals assigned to an object variable are now casted to short rather than being converted as an integer literal.
  • ASP.Net projects: Improved tag parsing, language detection, correctly parsing server side comments, added support for ashx files
  • Improved accuracy of converting Iterator functions.
  • The converter now does not apply unnecessary type conversions to variables with implied types
  • Improved accuracy of CS1061 compiler error correction.

See complete version history >