Coming Thursday May 14 at 16:00 Amsterdam time we'll have another online presentation.
This week it will be a somewhat more advanced topic: the X# RDD system, but we'll do our best to explain things as good as possible, so it will still be interesting to everybody.

Some of the topics we'll look at

  • RDD Related commands and how they are mapped to Functions
  • How the Db..() and VoDb..() functions are mapped to the RDD system
  • The various interfaces and types that are part of the RDD System
  • How you can register an event handler that will be notified of record movements, updates etc for ALL workareas. This can be used for logging purposes
  • How you can "wrap" a single RDD object for a single workarea and intercept or override single methods. You can use this for logging too, but you can also use this to add or change behavior of existing RDDs
  • How you can create your own custom RDD (possibly inheriting from one of our RDDs) and how you can tell X# use that RDD.

We expect that the duration of his session will be between 45 minutes and 1 hour. That means that we can't discuss every little detail (and there are actually a lot of important details in this area) .
But since the sourcecode of our RDD system is on Github we think you will be able to find your way in our code and discover the rest yourself.

Update, Friday May 15

The event yesterday was a success, but unfortunately most of the recording was lost because Robert had to reset his computer due to technical problems.
We have rescheduled the event on Monday May 18, at 09:00 Amsterdam time (GMT +2). We will start the session at the point where we were interrupted on Thursday : after the explanation about how commands are mapped to function calls using UDCs. If you want to join (again): we will use the same Zoom session ID for this event.
Hopefully this is a better time for our friends in Asia and Down Under, so they will have the chance to join "live" as well

 

The recorded video from both sessions can be seen in our Youtube channel


We have just released the public installer for XSharp Bandol 2.4a
The complete readme with the description of the changes can be found here.
This is the same build as the subscribers build, with the exception that subscribers get a slightly faster compiler, a .Net core version of the compiler  and debug versions of the runtime assemblies to aid in tracking errors (not that we have any <g>).

You can download the installer from here (you have to login first):

{rsfiles path="installers/XSharpSetup24aPublic.zip"}

 


Today we have released a new installer for XSharp Bandol 2.4a, which contains several fixes for issues that our FOX subscribers have reported in in the compiler, runtime and VS integration, related to all X# dialects. Additionally, it includes further developments on the Visual FoxPro compatibility front, with much more to follow in the next builds.

The what's new document describing all the changes can be found here:

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

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

Unless some important problem is found in the next couple days, also the public version of the 2.4a build will follow shortly.
Thank you to all of you for your continued support and invaluable help in further developing the XSharp product!

 


The online event for Thursday May 7 , at 16:00 Amsterdam time, will be about new features in the X# language/compiler.

The recording of the session can be found in our YouTube channel.

Some of the topics that will be covered are

  • IS Var (and compare that with IsInstanceOf())
  • special Out declarations: Out VAR Id, OUT Id as Type, OUT NULL
  • New notation for literal numbers with thousands separators
  • Show #pragma warnings and #pragma optionsto override commandline arguments in code
  • Passing variables by reference to untyped functions
  • Show how we now don't longer need to use version resources but how the version info is generated from assembly attributes (and how you can switch back to the old behavior)
  • FOREACH statement (including enumerating arrays)
  • VAR keyword
  • Anonymous types

Next week (May 14) Robert will give an "advanced" session about the X# Rdd system, explaining the architecture of the RDD system and showing you how to use the new RDD events and how you can "hook" into the RDD system with the new RddWrapper class in the X# runtime.

 


Some updates on this special day for the Star Wars fans ("May the Fourth be with you").

The 2.4 build has been well received, but unfortunately there were a few small issues.
We are preparing a 2.4a build that fixes this, and will also release that revised build to the general public.

For coming Thursdag (May 7) at 16:00 Amsterdam time we have planned another online session, using Zoom.
This time we'll focus on some language / compiler improvements.
There is much that we can cover, so please let us know which of the topics you would like to be covered:

  • IS Var
  • special Out declarations: Out VAR Id, OUT Id as Type, OUT NULL
  • Show how we now don't longer need to use version resources but how the version info is generated from assembly attributes (and how you can switch back to the old behavior)
  • New notation for literal numbers with thousands separators
  • Show #pragma warnings and #pragma optionsto override commandline arguments in code
  • Passing variables by reference to untyped functions
  • Some other things in the language that are not new for X#, but may be new for people coming from VO or FoxPro
    • LINQ
    • LAMBDA expressoins versus Codeblocks. How are they the same and how are the different
    • FOREACH statement (including enumerating arrays)
    • VAR keyword
    • Anonymous types
  • Anything else ?

 


Ok, we have scheduled another online event, this time using Zoom.
During this meeting we will look at the XSharp Runtime State.

Topic: Exploring XSharp Runtime State

Time: Apr 30, 2020 04:00 PM Amsterdam, Berlin, Rome, Stockholm, Vienna

The recording of the session can be found in our YouTube channel.

Next week (May 7, same time) we will look into new features inside the X# language.
An invitation will be published here.


Last week's online demo of new features in XSharp 2.4 has been well received. Not that we stressed the Ms Teams Live servers, no way, but there was anough attendence, and also the recorded session on YouTube has been watched enough, so we are thinking of doing something like that more frequently.

One thing that we did not like ourselves is that the Ms Teams Live event has a built in delay, which makes it hard to do an interactive event. We are therefore considering to do something similar this week but with another platform: Zoom.
And yes, we are aware of the fact that Zoom sessions are difficult to secure, but our intention is not to have a secure session but to reach as many people as possible, so that is in fact a good think for us <g>.

Last weeks session also focused on new features in the VFP area, however this week we would like to discuss more general topics that are useful to developers in all X# dialects.

We have a few ideas about topics that we could talk about, but we're open for your input of course. Below is a list of suggestions that we came up with ourselves. These suggestions can be divided in 2 groups: compiler/language tips/tricks  and runtime tips/tricks

Compiler/Language

  • IS Var
  • Special Out declarations: Out VAR Id, OUT Id as Type, OUT NULL
  • Show how we now don't longer need to use version resources but how the version info is generated from assembly attributes (and how you can switch back to the old behavior)
  • Show #pragma warnings and #pragma options
  • Passing variables by reference to untyped functions

Runtime

  • Inspect runtime state, workareas etc inside VS for the time being (as long as we don't have a workarea window).
  • Workarea events and how to use them for logging
  • The RddWrapper class that can be used to monitor and intercept the RDD behavior.
  • Register code to resolve duplicate functions/methods at runtime with the macro compiler (SetMacroDuplicatesResolver)
  • Register your own code to intercept the behavior of the File() function (RegisterFileSearch)
  • The new DbDataTable() and DbDataSource() in combination with "normal" RDDs to link data to a Windows Forms or WPF window

We know this list is too long for one session, so please let us know where we should start this week. And please also lets us know if you have other ideas.

A link for this weeks session will be shared later.


Today we have released a new installer for XSharp Bandol 2.4 to our FOX subscribers.

This build contains several fixes to issues reported by our customers and also suport for most of the SQL..() functions for the FoxPro dialect.

The what's new document describing all the changes can be found here:

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

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

On Thursday April 23 at 16:00 Amsterdam time Robert will do a short online demo of some of the new features in this build.

The recording of the online demo can be seen on our YouTube channel .

 A public build for version 2.4 is scheduled for next week.