- Created: 12 March 2019
Session and Speaker descriptions
|Nikos Kokkalis studied Computer Engineering at the Democritus University of Thrace, and there also earned his doctorate in 2011. Starting in 1996, he works as an independent software developer. Since 2009 he is employed by Intracom Telecom as an embedded software and algorithm engineer. |
During 2011 - 2015 he was a member of the GrafX development team, working on the Vulcan compiler and database engine. Since Sept. 2015 he is a member of the X# development team, working on the compiler and macro compiler.
Multithreading and asynchronous programming with X#
In today's multi-core processors, it is crucial for most applications to be able to take advantage of more than one core by employing multiple threads to provide the best use experience. This is true both for server and desktop applications. This is usually combined - and sometimes confused - with the concept of asynchronous programming. Understanding these concepts and the tools offered by the CLR and X# will be the focus of this session
Into the X# compiler: Roslyn, scripting and the macro compiler
A deep dive into the X# compiler, scripting engine and macro compiler. Find out how it works, what it does best - and what it does not. Learn how to unlock the power of dynamic compilation in your applications. Performance considerations. Security concerns. These are some of the topics that we will study in this session.
|Steve Ferrandino began his professional software development career writing code in a 1983 video game arcade in Denton, Texas (Z-80 assembly language for a custom-built video game system). From there he worked with the xBase family of languages using dBase II on a TeleVideo dual 8” floppy disk CPM system (1984). He has progressed through the family from dBase III to X# (where he now spends most of his time) having passed through dbXL/Quicksilver, Clipper, Visual Objects, and Vulcan.NET. Steve’s current position is as the Director of Administrative Application Development with Harvard University’s, T.H. Chan School of Public Health in Boston, Massachusetts where he has developed a large scale Line of Business application that interfaces with the central University and many external systems. In his free time Steve is a professional saxophonist and works on his 140 year old Victorian house.|
Using X# (and C#) to interface to REST services
Representational State Transfer (REST) is a simple way to communicate between two loosely connected systems. This session will cover the history of REST and how it can be used in X# development work. Examples will include Package Tracking Services (UPS, USPS, FedEx, DHL), a two-factor authentication service (DUO), BING maps, Random Word Generation, GeoCoding, Wireless Communications Transfer Protocol (WCTP), Weather services and more.
Rolf van der Hulst
|Rolf is a graduate of University College Twente (Bachelors' Degree) and has interrupted his university career for one year to become part of the RoboTeam Twente, an autonomous robot soccer team. In this team he is treasurer and Software developer. He mostly models mathematical and physical problems within the Robot soccer software.|
Lessons from Robot Soccer; how to design and maintain software for an autonomous team of robots playing soccer.
The session will introduce robot soccer from a software perspective, and discuss some of the challenges it poses for (junior) software developers. The session will go into further detail on the architecture of the system and the 'compiler construction' for our robot language, and how we use our system to maintainable code in an easy and fast fashion.
Robert van der Hulst
|Robert has been part of the IT industry since the 80's. He started to develop applications in DOS with dBase, Clipper and FoxBase. Later he used Assembler, C++, Visual Objects, Vulcan.Net and C#. |
Robert has created several 3rd party components for Visual Objects and Vulcan developers and has been part of the Visual Objects and Vulcan.Net development team from 2003-2010, where he was responsible for the release of VO 2.7 and VO 2.8 and for Vulcan.Net 2 for.Net Framework 4.
In 2015 he started the XSharp (X#) project together with Chris Pyrgas, Nikos Kokkalis and Fabrice Foray. This project has created an open source implementation of the XBase language for .Net. with support for Visual Objects, Vulcan.NET, xBase++, Harbour and (Visual) FoxPro.
In the X# team he has worked on the Compiler, Runtime, RDD system, VS Integration, Documentation and Project Management.
Robert has also helped many customers to move their applications forward from one XBase technology to another
Migrating your Visual Objects applications to X#
The X# development language was created to help you convert your Visual Objects applications with minimal changes to .Net. It is closer to Visual Objects then Vulcan.Net ever was. However some aspects of the Visual Objects programming language are simply not supported by the .Net environment. During this session we will convert several applications from Visual Objects to X# and will have a look at the steps you have to take to make your application run in .Net. We will also have a look at the various compiler options for the X# compiler and how they help to make your application run in .Net.
X# Language improvements compared to Visual Objects and Vulcan.Net.
The first and most important goal of the X# project is to create a development language that can compile your Visual Objects and Vulcan.Net applications. However the X# development team did not stop there and has added several new features to the language. Some of these features came “for free” because the team has used the Roslyn code as the foundation for the compiler. Other features were developed especially for XBase developers.
Understanding and making the most of X# and the X# runtime
The X# runtime functions very much like the VO and Vulcan runtimes, but is designed quite differently. We will have a look at the various components that form the X# runtime and will also have a look at the source code for the runtime. You will learn which components are needed for which dialect and how you can enhance or override the behavior of the X# runtime.