Help Needed
- Details
- Created: 05 April 2021
During our last online session on March 25th there was a dicsussion about how we make it easier for people to migrate their applications to X# and how to document the common pitfalls and other problems. People suggested that they would want to help out with for example documenting compiler errors with examples of code that throws these errors and examples of how to solve these problems.
In this article we would like to list several areas of the XSharp project where we could use some help
Online presentation: Part 2 of "Migrating VO Apps to X#"
- Details
- Created: 20 March 2021
On Thursday March 25th at 16:00 CET (Amsterdam time) Chris Pyrgas will present part 2 of his online presentation about 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.
The session that was originally planned for Thursday about transporting FoxPro apps to X# has been rescheduled to April.
The session will use Zoom and the login details will be published here on Thursday morning.
If you missed part 1, you can still see it in our Youtube channel "X# Academy"
The recording of the session will be uploaded later today to the same Youtube Channel
We will open the session room at 15:30 so you can chat with eachother before the session if you want.
If time permits and if the attendees are interested then we will also preview some of the changes for X# 2.8 that will be released soon.
XSharp Spring 2021 Sale
- Details
- Created: 07 March 2021
We have a special "Spring Sale" for the Friends Of XSharp subscription.
Order the product in March 2021, add the discount code SPRING2021 on the checkout page and get a 25% discount !
Compiler 2.8 preview available for FOX Subscribers
- Details
- Created: 04 March 2021
We have uploaded a preview version of the new X# compiler to the website. Subscribers can download this version from the following link:
XSharp Compiler 2.8 Preview Popular 2.8.0.7 XSharp Open License 12.4 MB | 2021-03-04 |
A RTF document with detailed descriptions is included in the ZIP file.
Compiler changes in upcoming build 2.8
- Details
- Created: 02 March 2021
The compiler for the upcoming 2.8 build of X# has received an "overhaul". We have updated the Roslyn code to the latest C# level (the same C# that comes with VS 2019 Preview 4). This means that we now benefit from many changes in the C# compiler. You should see that the compiler is a bit faster. The new compiler requires .Net framework 4.7.2 or .Net core 3.0. The apps created with the new compiler can still target the framework versions from 2.0 until 4.8, .Net Core 2.0, 3.0 and .Net 5 and .Net 6.
We have also taken the opportunity to add a few new things to the language:
Local Functions and Local Procedures
You can declare local function and local procedures inside methods, properties, functions and procedures.
The syntax is
LOCAL FUNCTION <Name> (<Parameters>) AS <Type>
.
. statements
.
END FUNCTION
Some remarks:
- parameters are optional but must be typed
- return type is mandatory
- the local function automatically has access to the local variables and instance variables from its surrounding code.
- the local function cannot have attributes
Embedded bodied Members
C# has the option to write simple bodies of methods, functions and properties with a one liner and the => operator. We support that too now. For example:
FUNCTION Multiply ( nLhs AS LONG, nRhs AS LONG) AS LONG => nLhs * nRhs
This does the same as
FUNCTION Multiply ( nLhs AS LONG, nRhs AS LONG) AS LONG
RETURN nLhs * nRhs
but is a bit compacter.
You can use this notation for FUNCTION, PROCEDURE, ACCESS, ASSIGN, METHOD, PROPERTY etc.
Using declarations
You can now declare a variable and tell the compiler to automatically dispose it at the end of the block where it is declared. This means that you will no longer have to use a BEGIN USING .. END USING block. Behind the scenes the compiler will automatically create such as block.
Example
USING VAR reader := StringReader{manyLines}
Null Coalescing Operator and Null Coalescing assignment
This operator allows you to choose the first non NULL value of 2 or more values. Note that the values MUST be reference typed. Otherwise the compiler will complain that the value cannot be null.
x := A ?? B
This assigns the reference value A to x, but when A is NULL then B is assigned. So this is the equivalent of x := iif (A != NULL, A, B)
A ??= B
This assigns B to A when A is NULL. So this is the equivalent of
A := IIF(A != NULL, A, B)
Native Integers
We have added 2 new data types:
- NINT (signed native integer)
- NUINT (unsigned native integer)
These types are 32 bit integer on x86 machines and a 64 bit integer on x64 machines.
More changes will follow in the coming months.
A prerelease version of this new compiler will be released to our FOX subscribers in a few days.
Online presentation this week
- Details
- Created: 21 February 2021
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"
We are now dealer of Advantage Database Server
- Details
- Created: 22 February 2021
As of today X# is a dealer of Advantage Database Server (ADS). You can buy ADS Client Access Licenses (CAL) from us in several sized batches (1,2,5,10,25,50, 100, 250, unlimited) and you can also buy "expansion packs" to increase the number of licenses of your server.
The ADS pricelist is quite complicated, so we will not add all possible options to our online store, but just a few to give you an idea.
In all cases: contact us to get a quote.
X# development Roadmap 2021
- Details
- Created: 19 February 2021
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 |
|
Runtime |
| |
VS |
| |
Tools |
| |
Q2 | Compiler/ Language |
|
Runtime |
| |
VS / Build System |
| |
Tools |
| |
Later / | Compiler / Language |
|
Runtime |
| |
VS / Build System |
| |
Tools |
|
XSharp 2.7 public installer
- Details
- Created: 01 February 2021
We have released the XSharp 2.7 Public installer today.
XSharp Cahors 2.7 Public Installer Popular 2.7.0.1 XSharp Open License 33.48 MB | 2021-02-01 |