A short message to inform you of things we are working on this moment.

  • We are making good progress with the new macro compiler. Most of the features are ready. And performance is very good !
  • We have located and fixed almost all of the issues (some of) you have reported with the X# runtime
  • We have added support in the compiler for the Xbase++ dialect.
  • We have fixed many things in the VS integration. And X# also installs and works with the new Visual Studion 2019 preview
  • We have also rearranged the runtime to better support the Xbase++dialect. There is now a separate VO assembly and a XPP assembly. Both share a common RT assembly that contains the common code (such as the USUAL, DATE and FLOAT types)
  • We have updated the compiler to the latest version of the Roslyn source code. As a result we have new features (such as the ability to generate reference assemblies ), the new combination of "PRIVATE PROTECTED" which makes a type member only accessible for derived classes in the same assembly and more.
    We have not enabled all the new features of the latest C# versions yet. For some of them we still have to invent a syntax. We are considering to add the IN modifier for parameters in one of the next builds. This will declare a readonly reference parameter. This is especially useful when you have a structure as parameter of a method (like the FLOAT or USUAL structures in the runtime). This should result in somewhat faster execution speed since at runtime not the whole structure has to be passed to a function or method, but only the address of the structure. Once we have added this to the compiler then we will also start to use this in the runtime.
    There are many other new features added to Roslyn. You can look at this page to see the new features in C# in the last versions.
    If you see something that you think is useful for X#, please let us know. And if you have a suggestion for a syntax, that helps too. One other thing we are thinking about is the "is pattern", which combines the "IS" check with the "ASTYPE" operation and creates a variable that has the scope of the IF expression that it is part of :

    IF oServer IS DbServer oDbServer
    oDbServer:GoTop() /// <- this will generate a compiler error because the scope of oDbServer is the statementblock inside the IF expression

We expect a new FOX release of the product by the end of next week. A public release will follow short before Christmas

This year we have another special offer on our subscriptions to celebrate Black Friday.

Buy a FOX subscription this week and enter the coupon code "BLACKFRIDAY2018" and you will get a 35% discount on your purchase.

Click here to automatically order with this coupon code

Please note that this discount code can't be combined with other discount codes.


A quick message to inform you of some of the things that are happening in the X# team.

  1. We know that many of you (just like us) love footbal (soccer). Wouldn't it be great if you could combine soccer with technology.
    It turns out you can. At the university of Twente a team of you students is working on Robot soccer.
    We like that idea so much that we have signed up as sponsors: https://roboteamtwente.nl/
  2. We have received a request from the community to start adding support for the XBase++ dialect to the compiler. We have analyzed the language differences, and it seems that there are very few differences. The biggest change is the way that classes are declared. XBase++ follows the "Class(y)" style of class declaration (Anton van Straatens OOP extension to the Clipper language).
    The class declaration syntax for XBase++ is also almost identical as the syntax for (x)Harbour. So we might combine the two.
    At this moment we are working on the XBase++ support in the parser and compiler.
    After that we will add runtime support for the XBase++ dialect.
    This new dialect will most likely not be included in the upcoming releases , but we still would like to inform you.
    Our XBase++ customer wants to run his code in a webservice. So no UI. Most likely we will create some kind of poor man's UI that emulates the CRT windows on the console.
    If you are interested in XBase++ support and would like to contribute on the UI or specific runtime functions (maybe a library like Sql Express or XBase Tools) please contact us.


You haven't heard from us in a while, so some of you might be wondering what we are doing.
Well, the answer is that we are working very hard (our wifes say too hard <g>) to finish the X# runtime.
At this moment the status of the runtime is:

  • 97 percent of the functions are implemented, tested and working.
  • The DBF/DBT RDD is implemented and working
  • The Advantage RDD  is implemented and working (you can use this for DBF/DBT/NTX, DBF/FPT/CDX, ADT/ADM/ADI and the various SQL variants)
  • The NTX RDD is almost completed
  • The FPT layer for DBF/FPT/CDX is implemented and working. We have not started with CDX. If you need DBF/FPT/CDX you can use the Advantage RDD in combination with the Advantage local server for now.
  • The VO SDK is compiling without errors (which means that also all the undocumented VO stuff has been implemented).
  • And everything is AnyCPU and thread safe. Of course when you use the GUI classes from the VO SDK and/or the SQL Classes then you are limited to x86 because these classes are not designed for AnyCPU.

We have also made some improvements in the Visual Studio support

  • Opening of very large Solutions now is MUCH faster
  • We have fixed some issues that were reported

Finally we have made some changes to the compiler that were needed for some special cases related to compiling the VO SDK (this SDK contains some really ugly code...) and we fixed some issues reported by our customers.

We plan to publish our "work in progress" in a new beta for FOX subscribers end of next week, that means if we can succeed to reach our goal:
Our intention for the next beta is that applications that use the standard VO SDK libraries and no 3rd party components should work with minimal changes.
You may have to change the RDD name, but the rest should work.
If you have already changed your code for Vulcan you should be able to swap the Vulcan runtime and Vulcan SDK libraries for our Runtime and SDK libraries, recompile your code and run.


We have released X# Bandol Beta 7. This build fixes some issues found in Beta 6, adds the Hybrid classes that were also present in Vulcan (thanks Paul Piko) and some functions that we had overlooked in previous betas.

We have just replaced both the FOX version and the public version of XSharp Beta 4.
The public version that was released last Sunday had two problems in the compiler that made normal work difficult.
These problems have now been fixed.

FOX subscribers can download the new installer here.
The public version of Beta 5 can be downloaded here.

We are very happy to announce that we have uploaded X# Bandol Beta 6 for our FOX subscribers.
This build adds the RDD support to the runtime including the DBF-DBT-NTX RDD and the advantage RDDs. We have also included DBF-FPT. CDX is not available yet.

We have also included compiled versions of the VO SDK Class libraries that are compiled against the X# runtime.
The complete list of changes can be downloaded from https://www.xsharp.info/itm-downloads/download?path=general%252FReadme%252Fwhatsnew2006.rtf.

We have just released XSharp Bandol Beta 4.

This new build included fixes to the runtime, Visual Studio integration and a few changes to the compiler.
With this build you should be able to work with the latest version of Visual Studio again.

There is one change in the compiler that qualifies as a breaking change:
When the compiler detects a (static) method and a function with the same name and prototype then the compiler will now choose the function and no longer the method. This is compatible with Visual Objects.
To call the method either prefix the call with SELF: when it is an instance method (which is mandatory in Visual Objects) or prefix the call with the typename (which is not possible in Visual Objects because that language does not have static methods).
We have added a compiler warning for situations where this occurs in your code. See this help page for more information and an example

A public version of this beta will be released later this week.