Session proposals for the X# Summit
Posted: Thu Sep 05, 2024 6:44 pm
Hello all!
As the time for our annual meeting is approaching (October 17th in Munich), we would like to hear your input, about what sessions you would like to attend. We have prepared a list of suggested session titles with a preliminary description for some of them, please let us know which are the ones you would be interested on attending, so we can arrange a final sessions list and schedule that meets everyone's wishes as much as possible. And of course, if you have suggestions for a different topic, please let us know and we will try to include that, too.
Please select as many sessions from the list below as you'd like. Even if you only chose 2 or 3 sessions, we will get the message that you'd prefer something different! Also do not hesitate to vote even if you are not registered for the event, but are thinking about doing so, we will try to create a schedule that convinces you to join!
Preliminary sessions list:
1. 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.
2. 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.
3. 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#?
4. 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 by divided into part I & II (standard and more advanced topics).
5. Porting applications from Visual Objects to X#:
Now that X# has now become very mature in porting applications from VO with as little effeort as possible, we will demonstrate the porting procedure, discuss actions need to be taken before and after the port and demonstrate porting of a real application live.
6. Converting Clipper/Harbour console applications to Windows Forms .Net applications with X#:
X# has now become mature enough to compile code not only from Visual Objects, but also from other xBase dialects like FoxPro, (x)Harbour, XBase++ etc. We are also developing an XSharp library that helps converting existing console applications (using typical @ SAY GET commands) written in such languages into Windows Forms applications, without actually modifying the existing code. This session will demonstrate this.
7. Using XIDE to the max:
XIDE contains a lot of undocumented or not widely used features, that very few (or any at all) developers know about. We will discuss code, project and configuration templates, visual designer inheritance, the plugin system and a lot more smaller or bigger features for enhancing productivity.
8. X# Notebooks
If you want to learn and practice XSharp Core, you can start using our new XSharp Notebooks.
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 practise various libraries, compare results in different .Net languages, ....
9. VFP Migration
Even if XSharp and VFP belongs to the same xBase family, it can be great challenge to port an application from VFP to XSharp.
We will see how different are the operating principles specially regarding to GUI, but also the solutions that XSharp is providing.
And we will see how the VFPXPorter can help you to start your migration.
10. 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.
11. New Language Features
What's added since our previous metting in Memmingen. Will also discuss the difficulties we are facing on keeping the compiler code updated
12. 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)
13. From VOGUI to XGUI (VOGUI compatible classes based on Windows.Forms)
The VO compatible GUI classes are based on the Windows API, and 32 Bit only. The XGUI classes are based on Windows Forms, and AnyCPU. This session will show some of the differences between these two GUI libraries and give you indications if a migration of your application is possible
14. From 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.
15. Using your own Cloud database
When moving from DBF to SQL, things will get complicated specially if you have some small applications with few users. This session will you show how to use a cloud database on your own server generating you income also over time by letting customers pay for database use.
16. Accessing a web service from plain X# and combining it with a VO GUI application (using Hubspot as sample)
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.
17. 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 its made up
and how does give 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 topics 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.
18. 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 interactity 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 mans static code analyzer”
for a X# project with a nice dashboard
As the time for our annual meeting is approaching (October 17th in Munich), we would like to hear your input, about what sessions you would like to attend. We have prepared a list of suggested session titles with a preliminary description for some of them, please let us know which are the ones you would be interested on attending, so we can arrange a final sessions list and schedule that meets everyone's wishes as much as possible. And of course, if you have suggestions for a different topic, please let us know and we will try to include that, too.
Please select as many sessions from the list below as you'd like. Even if you only chose 2 or 3 sessions, we will get the message that you'd prefer something different! Also do not hesitate to vote even if you are not registered for the event, but are thinking about doing so, we will try to create a schedule that convinces you to join!
Preliminary sessions list:
1. 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.
2. 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.
3. 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#?
4. 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 by divided into part I & II (standard and more advanced topics).
5. Porting applications from Visual Objects to X#:
Now that X# has now become very mature in porting applications from VO with as little effeort as possible, we will demonstrate the porting procedure, discuss actions need to be taken before and after the port and demonstrate porting of a real application live.
6. Converting Clipper/Harbour console applications to Windows Forms .Net applications with X#:
X# has now become mature enough to compile code not only from Visual Objects, but also from other xBase dialects like FoxPro, (x)Harbour, XBase++ etc. We are also developing an XSharp library that helps converting existing console applications (using typical @ SAY GET commands) written in such languages into Windows Forms applications, without actually modifying the existing code. This session will demonstrate this.
7. Using XIDE to the max:
XIDE contains a lot of undocumented or not widely used features, that very few (or any at all) developers know about. We will discuss code, project and configuration templates, visual designer inheritance, the plugin system and a lot more smaller or bigger features for enhancing productivity.
8. X# Notebooks
If you want to learn and practice XSharp Core, you can start using our new XSharp Notebooks.
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 practise various libraries, compare results in different .Net languages, ....
9. VFP Migration
Even if XSharp and VFP belongs to the same xBase family, it can be great challenge to port an application from VFP to XSharp.
We will see how different are the operating principles specially regarding to GUI, but also the solutions that XSharp is providing.
And we will see how the VFPXPorter can help you to start your migration.
10. 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.
11. New Language Features
What's added since our previous metting in Memmingen. Will also discuss the difficulties we are facing on keeping the compiler code updated
12. 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)
13. From VOGUI to XGUI (VOGUI compatible classes based on Windows.Forms)
The VO compatible GUI classes are based on the Windows API, and 32 Bit only. The XGUI classes are based on Windows Forms, and AnyCPU. This session will show some of the differences between these two GUI libraries and give you indications if a migration of your application is possible
14. From 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.
15. Using your own Cloud database
When moving from DBF to SQL, things will get complicated specially if you have some small applications with few users. This session will you show how to use a cloud database on your own server generating you income also over time by letting customers pay for database use.
16. Accessing a web service from plain X# and combining it with a VO GUI application (using Hubspot as sample)
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.
17. 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 its made up
and how does give 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 topics 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.
18. 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 interactity 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 mans static code analyzer”
for a X# project with a nice dashboard