We are nearing the release of X# 2.23, which is currently in beta. Initial feedback is positive, and we plan to publish a subscriber build and also a public build of this version shortly.
X# 2.23 will be the final release in the X# 2 series.
X# 3
Looking ahead, we are actively working on X# 3. This next major version introduces several key improvements and changes:
-
Multi Targeting: X# 3 supports both .NET Framework (4.x) and the latest .NET versions (6, 7, 8, etc.).
-
Enhanced Language Support: It is aligned with the latest C# compiler and includes new language features such as file-scoped namespaces and global using directives.
-
Modern Project Format: X# 3 adopts the new SDK-style project format in Visual Studio, enabling multi-targeting. You’ll be able to compile your applications and libraries for .NET Framework 4.x and .NET 8 or 9 simultaneously, with separate output directories for each target. This format is also much simpler, and requires fewer updates when code is added to a project. Thus makes it easier to work with this format in team environments.
-
NuGet Distribution: The X# runtime will be delivered via NuGet packages. For instance, referencing the XSharp.VO package will automatically include all necessary assemblies (XSharp.Core, XSharp.RT, XSharp.RDD, XSharp.VO, and XSharp.MacroCompiler). An additional package, XSharp.VOSDK, will provide the Visual Objects SDK classes (System Classes, RDD Classes, GUI Classes, etc.). These NuGet packages will be updated independently of the compiler and tools, streamlining the distribution of patches and runtime updates. They will also support multiple target frameworks.
While development of X# 3 is slightly behind schedule, we are aiming to release the first version before the summer.
Looking Ahead: A Milestone Year
This September marks the 10th anniversary of X#. It’s been an incredible journey since our initial announcement in the UK back in September 2015.
We plan to celebrate this milestone in a meaningful way—and we have some exciting announcements lined up for later this year.
Stay tuned!


Great, thank you for letting us know, and thank you for your continued work!
Wolfgang
wow! this version sounds great. Keep going with the hard work guys.
Will
a new beta of the SQLRDD will be released shortly
Robert
I would probably be the last one to use X# 3.0 anyway (all 3rd party libraries need to be recompiled and that is very likely to cause problems). But I understand the need for X# 3 to use .Net 8/9 etc which some of us would like to do (and I don't). There's however one other reason that would even more keep me from using X# 3.0: the NuGet distribution. The current installer works perfectly. In minutes, you can reinstall an older version or go back to a newer one and it all works, provided you don't store anything in the GAC.
Every NuGet distribution means trouble. I don't understand why something which works perfectly needs to be replaced with something which causes trouble. I understand that this this is company policy for large software firms. They follow the general trend towards whatever is supposed to be the standard and they don't care at all about what their users think. Other bad ideas, like storing DLL's in the GAC, can easily be avoided in X# 2 during installation and I never had to uncheck it again after I first did. Great.
So why replace something which works perfectly with something which does not? I did not expect this behaviour from X#.
Dick
Dick,
Nuget packages allow you to distribute DLLs with the same name, compiled for different target frameworks (for example .Net Framework 4.6 and .Net 9) in a single package. That simplifies things a lot.
It is also an easy way to update and deploy the runtime without having to update the compiler and/or VS integration at the same time. There is no need to an installer, you can update the package from the Package Manager inside Visual Studio.
We will most likely create a single package (for example, called XSharp.VO) that contains all the DLLs to compile for the X# VO dialect. Your app will have a single reference to XSharp.VO.
In reality, this package would probably contain only a few VO dialect specific assemblies and a reference to another nuget package that contains the common DLLs for all the XSharp dialect (like XSharp.Core, XSharp.RT and XSharp.RDD)
Hello Robert,
Thanks for explaining and I understand that it makes sense for you and also for a part of the users.
this package would probably contain only a few VO dialect specific assemblies and a reference to another nuget package
However, that all sounds even worse to me than I thought. As written, the current installer works great and as an end user I don't care if e.g. only the runtime is updated or everything. I couldn't care less about dealing with different target frameworks although I emphasize that I understand some of the users do.
I also wonder if Xide users now need VS to update their X# versions to get new versions.
I have converted some programs to make them more future proof, written a few small new programs in X# to get familiar with X# but almost all my code works just as well in VO. Wherever I used the latest technologies from Microsoft (e.g. WPF, WCF) it was not exactly a success. And most larger projects we started will remain in VO anyhow which makes it a lot easier and less frustrating to maintain.
Where other users asked for compatibility from languages added later like Foxpro or Harbour, and also about language features not present in VO, I have mainly tried to get as much of the ease-of-use I have in VO also in X#. But despite your appreciated efforts, some (for me important) features could never be realized, either because they were too time consuming and also because it is VS you have to deal with. Maybe 80% (after considering the few advantages VS offers above VO). I consider NuGet installs a serious step back.
Just my thoughts. For me personally it doesn't matter if X# 2.23 will be the last X# version I use.
Dick
Dick,
Let's agree to disagree
Robert
Hi Robert,
if I understand it correctly: using Nuget for distribution is an option and not a must. We can continue to distribute our apps as before.
Wolfgang
Wolfgang,
Of course, you can use the "old way". We're not taking away things, but we're adding new things.
Robert