There will be another online presentation this week.
It will be take place on Thursday February 25th at 16:00 CET (Amsterdam time).
The presentation will be done by our Devteam member Chris Pyrgas.
The subject will be:

migrating applications from Visual Objects to X# and the changes that you have to make to your source code because of the differences between the two.

Afterwards the recording of the sessions will be uploaded to our Youtube channel "X# Academy"


In January we have shared our list of "things to do" with our subscribers and asked them to help us prioritize the development.
We have analyzed the feedback and combined that with our own ideas and have come with the following plan for 2021.
But before we list the results, we would really like to thank our subscribers for the very positive feedback. The most requested feature was "that we stay in business". And that is exactly what we plan to do !

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

When SubSystem Deliverables

Q1

   
Compiler /
Language
  • New compiler based on C# 9 with support for Local Functions, USING statements and more. This also prepares the compiler for new features in .Net 5 and .Net Core.
Runtime
  • Additional FoxPro runtime functions
  • Improved FoxPro array support
  • Beta version of VO GUI Classes based on Windows Forms and VO SQL classes based on Ado.Net
  • ExecScript() support based on the Full Roslyn scripting engine 
  • Runtime Debugging support with windows built in the Runtime to show workareas/cursors, globals, privates and settings
VS
  • Visual Studio performance enhancements and improvements in the code completion.
Tools
  • FoxPro project to VS solution converter. This includes a first layer of UI classes that map the FoxPro UI to Windows Forms.

Q2

   
Compiler/
Language
  • New languages features, such as improved Tuples support
  • Parsing of FoxPro embedded SQL
Runtime
  • Beta version of SQL RDD that uses Ado.Net to fetch data.
  • Implementation of FoxPro embedded SQL based on Advantage Database Server
  • Additional FoxPro runtime functions
  • Release of VO GUI Classes based on Windows Forms and VO SQL classes based on Ado.Net
  • Speed improvements for Shared DBF access
VS / Build
System
  • Beta version of support for .Net 5 and .Net Core (the compiler already supports this)
Tools
  • Improvements to the FoxPro project converter and support libraries

Later /
when it is ready


  
Compiler /
Language
Runtime
  • Adjust our runtime to work with .Net 5 and .Net Core
  • The last missing FoxPro runtime functions
  • Optimized version of the ExecScript() support
  • FoxPro reporting (based on ReportPro)
VS / Build System
  • Release version of support for .Net 5 and .Net Core in the build system and Visual Studio
  • Debugger improvements
  • Support for .Net 6
  • Additional project templates for various platforms and problems.
Tools
  • Adjust ReportPro 2 to use Windows Forms for its UI and support FoxPro reports

We'll pick up the series of online presentations that we did last year. From now on, until further notice, we plan an online session at the last Thursday of every month, at 16:00 Amsterdam time (GMT+1 at this moment).

Next week, on Thursday 28th, the session will demonstrate the new ExecScript() support that we have added to the runtime. With this support you can execute single lines of code or even whole blocks of code. This includes the use of UDCs and passing in parameters. The script is now fully "dialect aware" and supports all Xbase types.
We'll also (briefly) show some other new features that we have worked on, such as local functions, expression bodied members and more. Robert will present this session.

In the last week of February we will go back to the "fundamentals" and will demonstrate how apps can be xported from VO to X#. Most likely Chris will present this session.

End of March we hope to present Exporting a FoxPro app to X#, including Forms, Menus and databinding. Most likely Fabrice will present this session.

The online sessions will use Zoom and the login info will be posted here on the morning of the session. Afterwards the recording of the sessions will be uploaded to our Youtube channel "X# Academy"


The XSharp language plugin for ILSpy is coming back in two versions :

One for ILSpy V5.02; and another one for ILSpy V6.2.1 : Fonctionnaly, both versions are the same.

You can get these versions in the Downloads/General/Tools section.
Unzip the DLL in the same folder as the ILSpy Binaries and you're done.

If you are looking to the ILSpy binary, go to ILSpy binaries.
Now, when running ISpy, you can set the language as XSharp.

Don't forget that the full source code of the Plugin is available in the public XSharp Repository on Github; you can also view there the current state of developement of the tool.

ILSpy is the open-source .NET assembly browser and decompiler : By using ILSpy you cano view and decompile .NET assembly as XSharp Language.


Today we have released a new installer for XSharp Cahors 2.7 which contains several FoxPro related new features and fixes to bugs that were reported.

The what's new document describing all the changes (this build alone over 3 pages) can be found here:

{rsfiles path="general/Readme/whatsnew27.rtf"}

{rsfiles path="fox/Compiler/XSharpSetup27Fox.zip"}


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.