Differences and Limitations
Mercury strives for 99% backward compatibility with Microsoft Visual Basic.NET so that ideally every existing VB project can be opened and built (for the .NET platform only, of course) with no or very minor adjustments.
This section covers some of the smaller differences that you might encounter and that might require you to make manual adjustments in order to port your project over to Mercury.
Mercury, like all of Elements uses a stricter but more powerful processor for conditional compilation with
#If Then. In some rare cases, you might need to re-arrange your
#End If directives so that they do not intersect with language code structures.
Read the Conditional Compilation (Mercury) topic for more details.
You might also want to check out the shared Conditional Compilation topic for all languages, the list of Standard Conditional Defines provided by the Compiler and the
exists() and and
static() System Functions.
Visual Basic.NET creates an implicit
My class (and related classes) with helper APIs for common application programming tasks. Mercury provides the same classes, but they ar injected into the build in slightly different ways and it uses slightly diferent mechanics to determine what type of classes to create.
Read the The
My* Classes topic for more details.
XML Literals are supported and fully compatible with
XElement/Linq to XML, on the .NET platform. On all platforms, XML Literals can be used with XmlElement classes from [Elements RTL](/API/Elements RTL).
On the .NET Platform, a Project Setting is provided to determine the standard type of XML Literals to be used, when it cannot be inferred from context. The default is
Elements RTL, but projects Converted from a
.vbproj will have the setting set to use
Linq to XML.
Read the XML Literals topic for more details.