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.