Today we have released a public installer for XSharp Cahors 2.13.
The what's new document describing all the changes can be found here:
The public installer can be downloaded here.
{rsfiles path="installers/XSharpSetupPublic2.13.2.2.zip"}
Today we have released a public installer for XSharp Cahors 2.13.
The what's new document describing all the changes can be found here:
The public installer can be downloaded here.
{rsfiles path="installers/XSharpSetupPublic2.13.2.2.zip"}
Today we have released an installer for our FOX subscribers only for XSharp Cahors 2.13.2.2 which contains some fixes for problems reported with X# 2.13, and some new features.
The what's new document describing all the changes can be found here:
{rsfiles path="fox/Compiler/XSharpSetupFox2.13.2.2.zip"}
A public release is planned for next week.
The list of speakers and sessions for our summit in Memmingen, next month, is now online.
Click here for more information.
The # of attendees (including speakers) at this moment (Sept 1, 2022)
| Austria | 1 |
| Belgium | 2 |
| France | 1 |
| Germany | 20 |
| Greece | 1 |
| Italy | 4 |
| Netherlands | 1 |
| Slovenia | 1 |
| Switzerland | 1 |
| Grand Total | 32 |
There will be 3 tracks at the event:
The sessions for the VO track and VFP track will be done in parallel in 2 separate rooms.
The general sessions will be done in the main session room.
|
Speaker |
Session(s) |
Track |
|
Peter Monadjemi |
Asynchronous programming with X# |
General |
|
Wolfgang Riedman |
Gui Choices for VO Programmers |
VO |
|
Andrej Terkaj |
Building MAUI applications with Blazor and X# in the backend. |
General |
|
Stefan Hirsch |
Web Applications with X# Backend and VueJS Frontend |
General |
|
Fabrice Foray |
Introduction to Visual Studio |
General |
|
Nikos Kokkalis |
The evolution of X# core. |
General |
|
Chris Pyrgas |
Migrating Visual Objects Apps to .Net with X# (with Robert) |
VO |
|
Robert van der Hulst |
Migrating Visual Objects Apps to .Net with X# (with Chris) |
VO |
|
XSharp Devteam |
Opening Session |
General |
Click here for more information about the location and costs
| Fabrice Foray | Track | Summary |
| Introduction to Visual Studio | General | - First use from the VO Repo-based perspective - Editor, Settings, jump to code and more (XMLDoc, Hints, Parameters, ...) - References and NuGet - Using Git as Version control - Extensions add |
| Migrating Visual FoxPro apps to .Net with X# | VFP | - Compare VFP and X#, from a VO-based developer point-of-view - First use of the VFP Xporter : How it works, Settings, What you can expect - Common troubles, Third parties - Make your way in your new code |
| Stefan Hirsch | ||
| Web Applications with X# Backend and VueJS Frontend | General | First I will show our complete product with its current development state. Then we will look into the backend part and go through the whole workflow. Starting with configuring the server, loading plugins, loading scripts, adding routes, starting the server. After the server startup we look into the request handling that can be done in a plugin or by an X# script. Here we will have a look into scripting, how we merge scripts, call them with parameters and get return values. After that we will build a little demo project that can host a web site and can handle some GETs and POSTs for data fetching and data putting. In the second part we will focus on the frontend part. We will have a look into the structure of our vue application, with all the components, store, helper functions, how we handle plugins and the build process. Then we will start building a demo project from scratch using VisualStudioCode. Vuejs and vuetify will be used as our frameworks. We will build a simple frontend with some data fetching and data putting. Frameworks: |
| Nikos Kokkalis | ||
| The evolution of X# core | General | A lot of effort is devoted to the various dialects, but I think it's nice to have a session about X# core. Maybe talk about integrating new C# features, or come up with something new. And perhaps showcase some work-in-progress? |
| Fun things to do (with dotNET) on a rainy day | General | This will be about some advanced topics. May include some things on multithreading, async, performance optimizations, but will also talk about things internal to dotNET and the CLR. |
| Peter Monadjemi | ||
| Asynchronous programming with X# | General | "The world is asynchronous" In this presentation, Peter will show examples for using the keywords async and await and the underlying task class with Winforms applications. Both keywords are probably still new for the majority of the X# developers. He will also point out a few of the base library classes with asynchronous methods based on tasks. Using asynchronous technique leads to user interfaces that are more responsive, don't freeze that often, and to applications with a better overall performance. Although for WinForms application there are simpler alternatives like the BackgroundWorker class, when it comes to mobile applications using async and await becomes obligatory (maybe I can present an C# or X# example that uses .Net 8 and MAUI). |
| Chris Pyrgas | ||
| Migrating Visual Objects Apps to .Net with X#, Part 1 & Part 2 (with Robert) | VO | This session will show how to migrate Visual Objects applications to .Net with X#. It will cover: - The VOXporter and the options available for migrating your apps - Using the converted application in XIDE (Chris) - Using the converted application in Visual Studio (Robert) - Common problems found when converting applications from VO Please note that the contents of this session is VERY flexible. When there are only "experienced" X# attendees, we can change this session into a tips and tricks session targeted at VO developers. |
| Wolfgang Riedmann | ||
| Gui Choices for VO Programmers | VO | You have VO applications, maybe some of them ported to X# and would like to build new applications in X# and you don’t know what type of GUI to use?
This session cannot give an answer, but can give you some oversights over the choices you have and gives you a sample application for every type shown. Starting from a simple VO application based on DBF tables you will see possibile developments from a simple migration to a WPF application. |
| Andrej Terkaj | ||
| Building MAUI applications with Blazor and X# in the backend. | General | Andrej will show the way to use X# in apps that will look much fresher to the younger generations than the established windows forms GUI. We will step into .NET 7 with X# Core dialect. We will also get an insight into modern environments where different programming languages can be mixed (X#, C#, CSS, HTML and JavaScript).
Furthermore, we'll learn what's behind the word MAUI and whether we can use X# to build apps for Android, iOS, Windows and Mac Catalyst operating systems. We will build a simple application that will be installed on a smartphone and that will allow to edit data from a MySQL database on a remote server. We will also learn how to create web services and how to do CRUD operations on data so retrieved. |
| Robert van der Hulst | ||
| Introduction to the X# SQL RDD | General | There were many requests from the VO community to add an RDD to X# that you can use to access data from SQL database. This RDD, so is the idea, could be used to replace ADS (Advantage Database Server), since SAP is no longer actively supporting this product. In this session Robert will show the upcoming SQL RDD for X#. This RDD will allow you to: - Select data in "Query Mode" with a select statement DbServer{"Select * from Customers"}
DbServer{"Customers"}
In Query mode, the RDD will fetch all the data from the server into a read only local cursor. You can use normal Xbase filtering on that result set and also create local indexes. In Table mode, the RDD will build select statements to fetch the data from the database. By default, it will not fetch all rows (you do not want to fetch a million rows from a server) but will limit the # of returned rows. Through a callback mechanism, you can control the behavior of the RDD. The RDD is not written for a specific SQL backend. Syntax differences between various backends are handled with a special layer, where for example the syntax is defined to limit the # of rows (SELECT TOP for SQL Server, LIMIT for MySql, using ROWNUM in Oracle etc.) In this session, Robert will demonstrate the new RDD and will show and discuss the design. |
| Creating apps for the Web and Mobile using Blazor and FoxPro | VFP | In 2022, Microsoft introduced a new style of developing applications for the Web, as well as for mobile devices, using a product called Blazor. Blazor apps can run on any web browser using a technology called WebAssembly, server-side in ASP.NET Core, or in native client apps. Blazor front ends are usually coded with a mixture of Razor and C#. However, Blazor apps can also call code developed in other .NET languages, such as FoxPro code, compiled for .NET with X#.
There is A LOT of learning material about Blazor on the web already. This session will present an overview and will explain the differences between server side apps (running in ASP.NET Core) and Blazor WebAssembly apps. We will also show how you can run FoxPro code in an XSharp layer behind the Blazor apps to use existing business logic for new applications. This code will be running from a web server. This means that some things are allowed, but other things not. We will look at some issues you can expect. We will also look forward to a new version of Blazor that has been announced (Blazor United). This new version can be seen as a mix between Blazor Server and Blazor Client, where some components are running on the server, but other components are running on the client. You will learn:
|
|
Opening Session & Closing Session |
General | |
|
Various customers |
||
|
Application Show |
General | During this session, various customers will demonstrate the programs that they created with X# and explain some of the decisions that they have made during the migration process. |
| Fabrice Foray | Summary |
| Git for Dummies | Maybe you are not using a Version Control System, or you are using one but not Git. We will discover the basis of Git usage, as a single user or as a team. We will explore how you can use it with your local hard drive, on your own LAN server or on the web. |
| VFP Migration | Even if XSharp and VFP belongs to the same xBase family, it can be a great challenge to port an application from VFP to XSharp. We will see how different the operating principles are, specifically regarding GUI, but also the solutions that XSharp is providing. Furthermore, we will see how the VFPXPorter can help you to start your migration. |
| X# notebooks | This (freak night) session demonstrates how you can combine code and tutorials in markdown files. A Notebook is a file with cells, and each cell can be of different types : Notebooks were originally a Python thing, mostly used by universities. A cell can contain text in Markdown format with instructions and help, or some code in a specific language, XSharp now, that you will need to test and amend to your needs. Microsoft has decided to provide a .NET-way to use these, and now we can use X# in Notebooks. We will see how X# Notebooks are a great tool to learn and practice various libraries, compare results in different .Net languages. |
| Nikos Kokkalis | |
| Consuming AI models | Not another session on ChatGPT! We will instead discuss running models locally on your PC using X# (GPU-accelerated too, if you have a decent GPU). |
| New Language Features | What's added since our previous meeting in Memmingen. We will also discuss the difficulties we are facing on keeping the compiler code updated. |
| Peter Monadjemi | |
| Getting out of technical debt | How to improve code quality with NDepend. This presentation discusses various means to improve the quality of your X# code by using the commercial tool NDepend. The main focus lies on the general term technical debt, how it can be measured, what it’s made up and how it gives developers and project managers an orientation about the overall quality of the source code. The presentation will show several examples of how to use the NDepend API with X#. Another topic will be general metrics like Cyclomatic Complexity (CC), naming conventions (of course) and how to use quality gates as a part of an CI pipeline. Peter Monadjemi is an experienced developer who uses X# for many years within a large project. He rediscovered NDepend recently after forgetting about it for several years, and was amazed about an A-rating in the NDepend dashboard for the source code of the large project he is working on with other developers for many years. |
| PowerShell as the X# developers best friend | PowerShell is a command line tool from Microsoft that is based on the same .Net runtime that X# uses. Both share the same runtime and the same type system. The interactivity of the PowerShell Command line makes it a very attractive sidekick to Visual Studio or XIDE. The presentation will start with a short overview about how the PowerShell type system differs from the regular .Net type system. The next topic will be about customizing PowerShell as part of Terminal to make it more appealing. The presentation will show many examples about how to search the X# runtime for certain types or methods, do ad hoc database queries against any kind of DBMS, update the database schema or use a PowerShell script as a “poor man's static code analyzer” for an X# project with a nice dashboard. |
| Chris Pyrgas | |
| Using X# to the max | How to use powerful language features that are little known or not widely used to write better/more readable/more robust code and boost productivity and performance. Topics will include local functions, tuples, lambda expressions, code patterns, language extensions, special keywords and statements and many more. Can be divided into part I & II (standard and more advanced topics). |
| XIDE to the max | XIDE contains a lot of undocumented or not widely used features, that very few (if any at all) developers know about. We will discuss code, project and configuration templates, visual designer inheritance, the plugin system and many more smaller or bigger features for enhancing productivity. |
| Wolfgang Riedmann | |
| Accessing a web service from plain X# | More and more customers are using web applications like Wrike or Hubspot, and are requiring to exchange data between them. This session will show you how to build a dataexchange layer both synchronous and asynchronous. As a goodie, the interface also works for plain VO applications using X# build COM libraries. |
| DBF to SQL | Slowly DBFs will be replaced by SQL databases, because users are requesting more and more filters on large tables and are not more accepting the time delays required to filter DBFs. This session will show you on an example application how to move an existing application partially to a PostgreSQL database to make your migration affordable using a SQL based Dataserver. |
| Holger Steinmar | |
| Using Build Automation for building and testing | In this session, we will demonstrate how to automate the build process, including running tests and deploying the result of the build process. We will set up a sample project and go through all the steps from build to deploy. We will use the tool Nuke (https://nuke.build/). |
| Robert van der Hulst | |
| Error Handling & Logging | The .Net error handling differs a lot from the error handling inside languages such as Visual Objects and FoxPro. This session will discuss the differences and will show you how you can create applications that produce error logs that you can use to debug potential errors in your app. We will also look at logging solutions |
| SDK projects, Multi Targeting and Creating Nuget packages | Building apps for recent versions of .Net with Visual Studio requires a different project file format. In this session, we will take a look at this format and also show how to create projects that produce output for multiple targets (e.g. .Net Framework and .Net 8 or 9) and how to bundle these in a single (nuget) package. The MsBuild system will then select the appropriate DLLs for the target framework that you are using. |
| Github Copilot | This (freak night) session covers the new Github Copilot, that is supposed to help you in writing and documenting code better. Is it any good and does it work with X#? |
|
Opening Session & Closing Session |
|
|
Various customers |
|
|
Application Show |
During this session various customers will demonstrate the programs that they created with X# and explain some of the decisions that they have made during the migration process. Alessandro Vacchiano (Computers Centre, Italy) and Joshua Wiser (Azyra, Ireland) will show their apps. |
Page 10 of 39