Southwest Xbase++ Sessions

There are 7 conference tracks at Southwest Xbase++. "Level" shows the expected level for attendees for a session.
Click a track's icon to jump to the sessions for that track.

Pre-Conference: These half-day sessions are offered on Thursday, October 18, and are available for an additional cost; see the Register page for details.

Programming with SQL: The sessions in this track are all about SQL in its different flavors: Universal SQL for DBF tables, arrays and objects, Unified SQL for PostgreSQL and Advantage Database Server, or Pass-Through SQL via ODBC. Regardless of whether you are new to SQL or if you are an experienced SQL developer, for enhancing your Xbase++ specific SQL programming skills the sessions in this track are for you.

Client/Server using PostgreSQL: This track gives you all the knowledge you need to upsize your existing DBF/NTX/CDX application to the PostgreSQL server with almost no code changes.

Solidifying Xbase++ Development: The sessions in this track cover subjects ranging from fundamentals for beginners, how-to's and best practices to specific issues for the advanced Xbase++ developer.

Web and Connected Mobile Apps: The sessions in this track are aimed at developers that want to learn more about creating web and connected mobile applications with Xbase++. Hands-on sessions along with seminars providing background information give attendees a good idea about what user interfaces and applications created using HTML5, CSS and Javascript are all about.

Deep Dive: This track contains sessions covering in-depth information on topics considered to be of special interest for Xbase++ developers or software developers working on the Windows platform in general.

Next-Generation Visual FoxPro: "Project PolarFox" is the codename of the upcoming Xbase++ 3.0 version positioned as the successor to Visual FoxPro. The sessions in this track provide information on both the strategy behind the project and the current project status. If you are a Visual FoxPro developer, you probably can not afford to miss these sessions. Xbase++ developers on the other hand, will get a better understanding of the benefits they will get with version 3.0.

The computing industry continues to evolve. Mobility. Form factors. Cloud. App Stores. Design. Natural User Interface. In this talk, we'll examine these current trends and how Windows 8 reflects where we are as an industry.

This workshop is designed for new and seasoned eXpress++ users. eXpress++ has gone through several major new builds since our last eXpress++ Devcon in 2008. Most of the new features and improvements have been dedicated to creating Xbase++ applications that are more visually appealing and easier to Xbase++ develop and maintain.

The eXpress++ method has proven itself over the past 12 years and has enlarged its community of loyal and productive programmers. This workshop focuses on improving productivity even more while also providing a much better application to your customers.

You will learn:

Sub-Classing: This is the most important new enhancement to eXpress++ in the past 4 years. It allows power users to develop new strategies and improve their end product with no structural changes to existing code.

Owner-drawing: This important capability of Xbase++ has been integrated into eXpress++ in ways that give your application an "instant" face-lift with only a few lines of code.

XCodeJock: eXpress++ now includes a simple command interface to the popular suite of CodeJock ActiveX controls.

DCRMChart: eXpress++ now includes a simple command interface to the popular RMChart graphing system.

Xbase++ 2.0 - A discussion of how eXpress++ will move forward with Xbase++ 2.0 and support the plethora of new 2.0 features.

This session takes the participants to a deeper level of SQL programming. The first part of the session is all about complex queries and views. The second part compares the locking/isolation concepts of ISAM and SQL and gives the attendee a deeper understanding of how concurrency issues are resolved in real-world application using transactions and selecting proper isolation levels. Finally, attendees get a better understanding of the limitations of SQL on the server-side, and learn to balance between SQL, ISAM and in-process SQL to achieve great performance and scalability.

This session gives a high-level introduction to the PostgreSQL database server. The PostgreSQL server is the preferred SQL database management system for Xbase++ solutions and is supported right out-of-the-box.

This presentation will familiarize xBase developers with the powerful PostgreSQL DBMS, its feature set and administrative front-end. You will also be taken through the installation procedure and will learn more about the basic steps required to get yourself ready for developing for PostgreSQL.

You will learn:

Installation of the PostgreSQL database server

Basic configuration required for development

Basic usage patterns in your Xbase++ application

Managing databases, tables and columns

Basic management tasks, such as backing up data and performance tuning

This session introduces the structured query language (SQL) as a means for data access and manipulation in Xbase++ applications. Going over sample applications and general programming patterns, this session also outlines the differences between Universal and Unified SQL.

This session is intended primarily for Xbase++ programmers who are new to SQL programming. Visual FoxPro developers wanting to familiarize themselves with the level of SQL-support provided in Xbase++ should also consider attending.

You will learn:

Where SQL can make your work easier, and what are its limitations

The advantages of converting existing queries or business logic to SQL

The kind of performance gains that can be achieved by converting to SQL

This presentation dives into the Universal SQL feature available with Xbase++ 2.0. Steffen outlines the advantages of converting existing logic to SQL, and how SQL can make the daily programming tasks easier and less error-prone. With Universal SQL, the declarative approach of query programming is extended to the programming language and data types, such as arrays or objects. Programming chores like searching for individual items in an array, merging arrays or calculating the intersection of two arrays of objects can now be solved with a single-line statement! With Universal SQL, the power of the relational theory becomes an integral part of the Xbase++ runtime, effectively allowing developers to write less code, make fewer mistakes and hence become instantly more productive.

This session gives a high-level introduction to the PostgreSQL database server. The PostgreSQL server is the preferred SQL database management system for Xbase++ solutions and is supported right out-of-the-box.

This presentation will familiarize xBase developers with the powerful PostgreSQL DBMS, its feature set and administrative front-end. You will also be taken through the installation procedure and will learn more about the basic steps required to get yourself ready for developing for PostgreSQL.

You will learn:

Installation of the PostgreSQL database server

Basic configuration required for development

Basic usage patterns in your Xbase++ application

Managing databases, tables and columns

Basic management tasks, such as backing up data and performance tuning

This session outlines the steps required to upsize an existing DBF/NTX/CDX-based Xbase++ application into a client/server solution using PostgreSQL. It is intended primarily for developers who want to preserve investments made into an existing Xbase++ solution. Using the ISAM emulation of the PostgreSQL DatabaseEngine, existing Xbase++ solutions will gain higher reliability and scalability, without having to rewrite existing ISAM code. In addition, new code can use ISAM and SQL data access and manipulation methods depending on the specific requirements.

You will learn:

What changes are required

What prerequisites help make the transition easier

Performance

What to do with existing ISAM code and whether you will need to transform everything to SQL commands

Which coding patterns to avoid in future implementations

Strategies to make use of SQL in a step by step manner to gain performance

In this presentation, you will learn how HTML (or more specifically, HTML5 and CSS) can be used to create rich application user interfaces. The new semantic tags in HTML5 make creating data-driven UIs a snap without the need to learn Windows GUI-programming. Attendees will learn how to make use of this technology in the context of their existing Xbase++ applications to give them an outstanding look-and-feel. Of course, web developers are welcome too, as many of the techniques presented can also be applied to web application development using CXP!

You will learn:

The role of HTML5 and CSS in modern web applications

About semantic tags and other new features in HTML5

About CSS as a mechanism for abstracting the representation/UI from the actual data

How to bind your declarative HTML code with your data using Knockout.JS

A case study of shifting the delivering of a Call Center Solution to a "Hosted" model. The presentation will include the technical and financial details of delivering a hardware and software solution for customers to run in their office versus offering the same solution as a hosted subscription service. Different financial models will be presented illustrating the differences between selling a hard software and hardware solution versus selling a cloud based solution.

You will learn:

How a company's business model has changed as a result of "cloud computing"

This session looks at various topics related to object-oriented programming from a practical, real-world perspective. By examining general design and programming patterns, attendees learn how to get the most out of the features available in an object-oriented language such as Xbase++ or Visual FoxPro. What is an interface and a contract, what is the difference between implementation and interface, and how do these relate to the DEFERRED keyword? What is the benefit of creating ACCESS/ASSIGN (set/get) methods? What is the effect on code robustness and security when using the EXPORTED keyword? These questions (and more!) will be answered in this session.

You will learn:

Use-cases and design patterns for robust application design

The implications and proper usage of interfaces and contracts

The benefits of using ACCESS/ASSIGN methods (set/get) methods in a class

Best practices for defining visibility for methods and member variables

Xbase++ 1.9 and 2.0 has opened up some exciting new possibilities for incorporating new methods of control over the visual aspects of an application. The default behavior of Xbase++ is to allow objects such as XbpPushButton() to by drawn the operating system. This limits the visual aspects to only those features provided by the OS and gives the programmer very little control over the look of the application.

Owner-drawing gives the programmer the option of drawing all or portions of the object using the Xbase++ graphics engine.

Also included in this session are several complete new classes with source code and sample programs that are ready to be used in your Xbase++ programs with no other software required.

The new pushbutton class provides feature such as radiused corners, gradient options multiple bitmaps, icons and caption strings, a drop-down menu option and much more.

This session is intended to give the participants an opportunity to voice their technical concerns, questions and ideas with Alaska Software. No formal presentation will be given. Instead, this session will be about the issues YOU deem important!

You will learn:

What the Alaska people think about the questions and ideas that you feel are important, of course from a pure technical point of view.

Behavior control is a primary challenge when designing data entry forms because each window is different depending on what components are on the form, how events are handled, where focus is placed, and whether focus is kept in one place or allowed to change.

This session examines these issues by presenting a number of dialog windows, from simple to complex, each requiring a very different approach. Each window will be demonstrated, with a look under the hood at the source code and the design principles used.

This presentation dives into the Universal SQL feature available with Xbase++ 2.0. Steffen outlines the advantages of converting existing logic to SQL, and how SQL can make the daily programming tasks easier and less error-prone. With Universal SQL, the declarative approach of query programming is extended to the programming language and data types, such as arrays or objects. Programming chores like searching for individual items in an array, merging arrays or calculating the intersection of two arrays of objects can now be solved with a single-line statement! With Universal SQL, the power of the relational theory becomes an integral part of the Xbase++ runtime, effectively allowing developers to write less code, make fewer mistakes and hence become instantly more productive.

In this session, attendees will learn how complex web applications can be created using CXP. In addition, design patterns will be introduced that will help you write code that is easily maintainable and that can deal with complex tasks in an orderly fashion. The session is intended for everybody interested in creating state-of-the-art, platform-independent application user interfaces.

You will learn:

How to upload files to your website

How to use Ajax to create dynamic and interactive web pages

The structure of a dynamic website using pagelets and layouts

How to use declarative markup for validating input without having to revert to Javascript

What is a mobile application and what does the term "connected" stand for? This session outlines the challenges in mobile application programming and explains the differences between native and HTML5/CSS-based mobile applications. All the necessary techniques are covered so attendees of this session will be equipped to create their own connected mobile applications for iPhone, Android and Windows Phone using Xbase++.

You will learn:

How to use CXP to create state-of-the-art connected mobile applications

Installation, packaging and deployment strategies for your mobile app

About HTML5 and JavaScript frameworks for mobile application programming

In this presentation, you will learn how HTML (or more specifically, HTML5 and CSS) can be used to create rich application user interfaces. The new semantic tags in HTML5 make creating data-driven UIs a snap without the need to learn Windows GUI-programming. Attendees will learn how to make use of this technology in the context of their existing Xbase++ applications to give them an outstanding look-and-feel. Of course, web developers are welcome too, as many of the techniques presented can also be applied to web application development using CXP!

You will learn:

The role of HTML5 and CSS in modern web applications

About semantic tags and other new features in HTML5

About CSS as a mechanism for abstracting the representation/UI from the actual data

How to bind your declarative HTML code with your data using Knockout.JS

This session gives a hands-on introduction to Compiled Xbase++ Pages <CXP/>. Based on examples that outline the various features which are included, participants will get a good understanding of how CXP can be used for creating state-of-the-art web applications. The presentation is intended for programmers having limited or no experience in building dynamic web sites or web applications. In addition, users of Active FoxPro Pages should attend this session to prepare themselves for the move.

You will learn:

The feature set and inner workings of Compiled Xbase++ Pages

How to use CXP as a build-and-execution engine for creating dynamic web pages and web sites

How easy it is to add value to your exiting Win32 application using dynamic web content

In this late-night session, Steffen will talk about the vision Alaska Software has for the Xbase++ development platform. Starting with the basic idea that the Polarfox project is going to be much more than "just" a VFP successor, he will outline details about our technical roadmap and position in terms of 64-bit and native Unicode support. Other major topics are Xbase++ as a stored procedure language for the PostgreSQL server, and how Alaska Software intends to pioneer again* in terms of scalability in the multi-core world of tomorrow. In short, Steffen will talk about the long-term direction envisioned for Xbase++ in light of recent and long-term developments in the IT industry.

*Alaska Software pioneered multithreaded application development more than 10 years ago with its intelligent and automated multithreading. Xbase++ applications are multithreaded in various ways. Garbage collection is asynchronous, event management is done in a separate thread to ensure application responsiveness even under heavy workload. All memory variables are automatically serialized if accessed from different threads, methods can be attributed synchronized...

Although the session touches Metro as a new additional application interface under Windows 8, its main focus is on the main architectural changes Microsoft has incorporated into the upcoming Windows release. This will give attendees a better understanding of the reasoning behind certain design decisions, and what these mean for the future of Windows as a platform and API in a world of different form factors and hardware platforms.

You will learn:

How the changes in Window 8 affect Xbase++ as a development tool

What Windows 8 means for the API (Win32 vs. .Net vs. WinRT)

Why Alaska Software approves of the changes made for Windows 8

Prerequisites: General knowledge about the Windows operating system and its eco system

In this late-night session, Steffen will talk about the vision Alaska Software has for the Xbase++ development platform. Starting with the basic idea that the Polarfox project is going to be much more than "just" a VFP successor, he will outline details about our technical roadmap and position in terms of 64-bit and native Unicode support. Other major topics are Xbase++ as a stored procedure language for the PostgreSQL server, and how Alaska Software intends to pioneer again* in terms of scalability in the multi-core world of tomorrow. In short, Steffen will talk about the long-term direction envisioned for Xbase++ in light of recent and long-term developments in the IT industry.

*Alaska Software pioneered multithreaded application development more than 10 years ago with its intelligent and automated multithreading. Xbase++ applications are multithreaded in various ways. Garbage collection is asynchronous, event management is done in a separate thread to ensure application responsiveness even under heavy workload. All memory variables are automatically serialized if accessed from different threads, methods can be attributed synchronized...

Xbase++ 2.0 already contains some of the commands and features known from Visual FoxPro. Migrating a whole Visual FoxPro project to the new platform, however, will not be supported until Xbase++ 3.0 ("PolarFox") is released. The individual steps during the migration as well as the level of compatibility which can be expected is what attendees will learn in this session. This session is based on the current stage of the PolarFox project at the time the conference is held. Attendees will get a good understanding about what they can await from PolarFox and what not.

In this session, I talk about my experiences employing Xbase++ 2.0 for modernizing an existing solution originally developed with Visual FoxPro. Among the topics covered is an overview of the obstacles encountered during the transition, such as the differences in LOCAL variable and macro management and those due to working with a compiler. I also talk about the post-migration performance of this application and about the benefits reaped by the transition to the new platform. This presentation is designed specifically for FoxPro developers that are interested in Xbase++ as their future development platform.

You will learn:

About the original VFP application (aka the starting point)

The obstacles and pitfalls encountered during the transition

How working with a compiled language compares to working with an interpreted language