X# development Roadmap 2020

In the last years we have presented you with a development roadmap at the beginning of the year. And that is a tradition that we'd like to keep.

Below is an overview of what we are planning to do in 2020. Of course we will also continuously keep fixing bugs and keep adding small enhancements as we like.

Finally the obvious disclaimer: these are our plans. They are not set in stone. We will adjust these plans whenever we see fit.


VO & Vulcan



Visual Studio


Sync with VO 2.8 SP4
Release of X# SQL Classes based on Ado.Net
X# versions of all the Fab tools
Make ReportPro for X# more VO compatible

SQL based cursors (ODBC but also OleDb, Ado.net)
Implementation of several runtime functions

Most Foxpro commands,
Local functions and methods, USING VAR

Additions to VO editors (class= lists, options pages etc).
Debugger extensions
Editor / intellisense improvements


Beta of X# VO compatible UI classes based on Windows Forms

FoxPro forms support
More runtime functions
DBC support, Data Environments, Cursor Adapters

Some new features from C# 8, such as exception filters, tuples and more
Dialect support for X# scripting

Foxpro forms editor,
VO form editor resources less code generation


Release of X# VO UI Classes & windows forms

Foxpro reports
Embedded SQL on top of FoxPro tables

Embedded SQL and FoxPro tables

.Net Core support inside Visual Studio


ReportPro runtime based on Windows Forms
Present at German Conference

What's left
Present at SW Fox,


Support for .editorconfig for all editor options
VS VNext() ?


  • I feel so guilty.

    I am so vocal of my X# porting process that RP3/CM200 is broken (working now, except that it cannot read tables on ADS), ReportPro and ADS aren't good friends, some ADS ACE (which I already reported) did not work at all in X# (ACE API that list down all tables with users that are open on specific shared path or server), I could list many.

    But I am happy with X# because I can program on it fast than with VO and .NET give me more power. I have fairly huge VO apps and I have so many issues left before I can move forward but I am excited of what I have experienced.

    Joining soon on FOX... just waiting for my partners to gather around to see what I have done so far... Next week is so long.

    Thanks to the X# DevTeam.
  • and of course, FAB Twain is not working. Of course, I am going to re-write this using native .NET toys but I love Fabtoys.
  • the issue I have on CDX order expression that clash with a DEFINES. It really took me 2 weeks to fix this. I have to rename a lot of my defines that I think cause it. Weird.
  • Rene,

    RP3 and Advantage support is coming in a few weeks. Also the next build includes most (all ?) of the ACE/Advantage functions that existed in ADS for VO.
    Fabrice is working on the Fab tools
    And can you send us an example of the CDX order expressions that clash with DEFINEs ?
  • Speaking from the Foxpro point of view, if you can get all that done in the next year it will be extremely impressive. SWFox used to be a Foxpro/Xbase++ conference, but now maybe it should be a FoxPro/X# conference.
  • Programmers not interested about VO/FoxPro features have to wait up to Q3/2020 to see Language progress on subjects like:
    .Net Core support inside Visual Studio


  • Rene,

    it seems thereΓö¼Γöñs no problem with DEFINEs, but with #DEFINE names that match field names. The thrown error below refers to the codeblock of the DBCreateOrder() where the field LAST is used.

    Is that what you mean ?

    // error XS9002: Parser: unexpected input '1'

    // #DEFINE LAST 0
    // error XS9002: Parser: unexpected input '0'

    // DEFINE LAST := 1 AS INT // ok


    ? DbCreateOrder ( "ORDER1" , "D:\test\foo1.cdx" , "Upper(LAST)" , { || Upper ( _Field->LAST) } )