X# has introduced a new term in the world of .NET programming: the dialect.
Why this? The Xbase language that was started with DBase in the MS-DOS days has several descendants, evolved each on its own, and with different syntax.
Since X# was started with the intention to give a future to all or several of them, a sort of a switch is needed to differentiate them from each other.
And please note that the Core dialect is the only one that does not need any runtime, and can build applications based only on the .NET Framework libraries.
These are currently the supported dialects:
The Core dialect is the most basic dialect. It supports only language constructs that are available in the .NET Framework - basically it is C# in the Xbase language. It means no support for DBFs, for Xbase array, the “date” datatype and codeblocks.
The VO dialect supports nearly all of the language constructs that the Visual Objects language supported, and it is primarily here to permit the migration of VO applications. Visual Objects was built on Clipper by CA (Computer Associates), and later maintained and distributed by GrafX.
Vulcan was a (now dead) .NET evolution to the Visual Objects development environment, developed by GrafX. Vulcan was somewhat different to VO, so X# needs a proper dialect to support the migration of Vulcan applications.
The Harbour dialect was introduced to support some language features specifically for the Harbour product, an open source compiler for Base applications. (Harbour translates mostly Xbase code to C and compiles it then with C, so it is multi-platform).
The Xbase++ dialect supports features of the Alaska Xbase++ compiler. Xbase++ is a compiler for Clipper code, started for OS/2 and later for Win32, and permits an easy migration of MS-DOS Clipper applications to Windows, maintaining the text mode user interface (a GUI was added later).
For more informations about the different dialects and the support of different language constructs please see here: www.xsharp.info/help/dialects.html