Progress report Nov 23, 2020

It's time for another progress report.

We are working very hard to finish X# build 2.7. Some of the changes that you can expect in this build:

Compiler

  • There are some changes to make X# more FoxPro compatible:
    • You can now use parentheses to access array elements (aMyArray(1,2))
    • Support for the TO keyword in the CATCH clause of TRY CATCH (CATCH TO myVar)
    • Support for the ASSERT command and SET ASSERT. An Assert dialog has also been added to the runtime.
    • Support for SET CONSOLE and SET ALTERNATE
    • Assignment expressions with a "=" assignment operator and a macro are now working ( &myVar = 42)
    • The compiler now recognizes the AS <type> OF <classlib> syntax.
    • You can now also use the mdot syntax in declatation statements  (LOCAL m.myVar)
    • And more
  • We have made several fixes for issues reported by customers

RDD System

  • Exclusive read/write operations are now MUCH faster because we switched to using cached IO.
  • Internally the RDD system now directly works with the stream objects. This solves a problem with incorrect index page numbers that were causing index file bloats
  • Fixed a problem updating DBFCDX index files for files with a large number of duplicate key values.
  • For VFP compatible DBF files that are part of a database container you can now access fields by their short (10 character) field names as well as their longer field names that are read from the database container.
  • We have added support for database containers. This includes the various DATABASE related commands such as SET DATABASE TO and OPEN DATABASE as well as the DbGetProp() function. DbSetProp() is not supported yet and will come in the next release.
  • The runtime now works with Data Sessions. Each thread gets its own datasession. The DBC files are also opened in a separate data session.
  • We have added the structures and functions needed to work with the Advantage Management API.

Runtime

  • We have added support for FoxPro compatible arrays
  • Many other smaller fixes.

VS Integration

  • We have fixed a problem in the Windows Forms editor that prevented it from correctly saving forms with complicated code that was produced by some of the DevExpress controls
  • When creating a new VO compatible UI form in the VS IDE you can now clone an existing form.
  • Solutions with "flavoured" projects (such as MsTest projects) were not always opened correctly. An exception could occur. This has been fixed. It can still occur that the project appears as 'unloaded' but a right click and reload in the Solution Explorer will fix that.

Of course this is just a selection of the issues found and fixed.

We expect to release this build around Dec 1.


11 comments

  • Thank you very much! Specially the RDD enhancements are very welcome. I look forward to the new release.
    Wolfgang
  • Karl, Robert meant this fix is under the category "various other fixes" that were taken care of. Actually I sent you an email earlier today, but all the problems you reported being fixed now!
  • Hi Robert,

    Is there a "rename" VO forms function?

    I am doing this weeks ago and because it was not supported nor a clone, I end up drawing it on empty and copy/paste all controls. Well, I am not doing this everyday. I change my mind, change a window from DataWindow to DialogWindow instead. Clone won't work on that one. But able to clone or renamed. Anything that make maintaining an X# apps easier.

    So I focus on Daily Driver: X# code editor got a slowing down sometimes and when adding or renaming some methods, Right Click > Go To Definition wont work.

    The list is quite short:
    1. VO like behavior that when we mouse-over a method, it will display the exact location of the "Project > Prg file". Well this is tricky if the CLASS have several partial.

    2. Go To Definition is disabled on upper portion of source code editor horizontal split-view.

    3. Go To Definition won't work on Referenced assemblies.

    4. Of course, the VS's Yellow Bar of Shame (your word). I have mute it. , VS want me to disable X# Project System because it slowing me down. What am I thinking? LOL.

    For now, that is what I think of that really "bug" me down a little. Just a little.

    Niceties
    1. IntelliSense - I can live without this anyway, with dash of IntelliCode.


    I consider myself still a newbie in VS, C# and X#. I keep learning.

    Btw, Thanks for the upcoming update and shout out on ADS ACE Management API thing. I appreciate it much.

    --

    Rene
  • Would it be possible to add also the current version of the "new" GUI classes to the distribution so we can start to work with them?
  • Wolfgang,

    I can add them but they will then be 'unsupported'.
    I am still working on this (actually a customer has just started to sponsor the development on this, so I will make some progress over the next months).

    Robert