Platinum Sponsors

White Light Computing

Stonefield Query

Tomorrow's Solutions

Alaska Software

Gold Sponsors

Visual Extend

Geeks and Gurus

Foxpert

Advantage Database Server

Lianja App Builder

FoxInCloud

FoxRockX

DBI Technologies

Servoy

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.

Keynote

Industry Trends in Windows 8Jennifer Marsman

Presenter: Jennifer Marsman
Level: All levels

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.

Pre-Conference

eXpress++ Workshop, Part 1Roger Donnay

Pre-Conference

Presenter: Roger Donnay
Level: Beginner
When: Thursday, October 18, 9:00 - 12:00, Elliott

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.

Prerequisites: eXpress++ user

eXpress++ Workshop, Part 2Roger Donnay

Pre-Conference

Presenter: Roger Donnay
Level: Beginner
When: Thursday, October 18, 1:00 - 4:00, Elliott

This session continues from Part 1.

Programming with SQL

Advanced SQLFrank Grossheinrich

Programming with SQL

Presenter: Frank Grossheinrich
Level: Intermediate
When: Friday, October 19, 2:00 - 3:15, Arizona (R1)
Sunday, October 21, 8:30 - 9:45, Arizona (R2)

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.

You will learn:

  • How to get the best performance from your SQL queries
  • How to choose the proper isolation level
  • How to use transactions effectively
  • About the limitations of SQL

Prerequisites: Basic programming skills, basic knowledge about SQL

PostgreSQL at a GlanceSteffen F. Pirsig

Programming with SQLClient/Server using PostgreSQL

Presenter: Steffen F. Pirsig
Level: Beginner
When: Friday, October 19, 2:00 - 3:15, Bisbee

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

SQL for Xbase++ DevelopersFrank Grossheinrich

Programming with SQL

Presenter: Frank Grossheinrich
Level: Beginner
When: Friday, October 19, 8:30 - 9:45, Bisbee (R1)
Saturday, October 20, 3:30 - 4:45, Bisbee (R2)

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

Xbase++ 2.0: SQL for DBF Tables, Objects and ArraySteffen F. Pirsig

Programming with SQLSolidifying Xbase++ Development

Presenter: Steffen F. Pirsig
Level: Intermediate
When: Friday, October 19, 10:00 - 11:15, Arizona

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.

You will learn:

  • How the move to SQL affects performance
  • The benefits of using SQL queries with objects and arrays
  • How SQL impacts the programming effort and program maintenance
  • When to use ISAM, when to use SQL and why is it a good idea to mix!

Prerequisites: Basic Xbase++ programming skills, basic knowledge about SQL

Client/Server using PostgreSQL

PostgreSQL at a GlanceSteffen F. Pirsig

Client/Server using PostgreSQLProgramming with SQL

Presenter: Steffen F. Pirsig
Level: Beginner
When: Friday, October 19, 2:00 - 3:15, Bisbee

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

Upsizing: From DBF to PostgreSQLSteffen F. Pirsig

Client/Server using PostgreSQL

Presenter: Steffen F. Pirsig
Level: Beginner
When: Saturday, October 20, 10:00 - 11:15, Arizona

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

Solidifying Xbase++ Development

HTML & CSS as Your Next-Generation UITill Warweg

Solidifying Xbase++ DevelopmentWeb and Connected Mobile Apps

Presenter: Till Warweg
Level: Beginner
When: Friday, October 19, 11:30 - 12:45, Arizona (R1)
Saturday, October 20, 11:30 - 12:45, Arizona (R2)

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
  • How to add interactivity using JQuery and make the UI fluid

Is your Software/System ready for the "Cloud"?Jim Graham

Solidifying Xbase++ Development

Presenter: Jim Graham
Level: Beginner
When: Sunday, October 21, 10:00 - 11:15, Arizona

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"
  • What "software as a service" means for your existing application

OOP: When to Use Which Feature for What!Andreas Herdt

Solidifying Xbase++ Development

Presenter: Andreas Herdt
Level: Beginner
When: Friday, October 19, 11:30 - 12:45, Bisbee (R1)
Saturday, October 20, 2:00 - 3:15, Bisbee (R2)

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
  • Coding style naming conventions

Owner-Drawing: Create Your Own Customized LookRoger Donnay

Solidifying Xbase++ Development

Presenter: Roger Donnay
Level: Intermediate
When: Saturday, October 20, 8:30 - 9:45, Bisbee (R1)
Saturday, October 20, 5:15 - 6:30, Bisbee (R2)

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.

You will learn:

  • Basics of owner-drawing
  • The Xbase Parts classes that support owner-drawing
  • The Xbase++ graphics engine
  • The Draw() method
  • How to improve the look of browses with owner-drawing

Prerequisites: Basic Xbase++ knowledge

Technical Q&A with Alaska SoftwareXbase++ core team

Solidifying Xbase++ Development

Presenter: Xbase++ core team
Level: Beginner
When: Sunday, October 21, 11:30 - 12:45, Arizona

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.

Techniques For Behaviour Control in Data Entry FormsClayton Jones

Solidifying Xbase++ Development

Presenter: Clayton Jones
Level: Beginner
When: Friday, October 19, 5:15 - 6:30, Arizona (R1)
Sunday, October 21, 8:30 - 9:45, Bisbee (R2)

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.

You will learn:

  • Where to place focus, and whether it should remain there
  • Advantages of central Keyhandler Functions
  • Differences with Child and Modal windows
  • How to create windows with multiple modes of behavior
  • How to create windows with browse objects
  • How to design for keyboard and mouse events
  • When to use event loops
  • Uses for multi-threading

Xbase++ 2.0: SQL for DBF Tables, Objects and ArraySteffen F. Pirsig

Solidifying Xbase++ DevelopmentProgramming with SQL

Presenter: Steffen F. Pirsig
Level: Intermediate
When: Friday, October 19, 10:00 - 11:15, Arizona

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.

You will learn:

  • How the move to SQL affects performance
  • The benefits of using SQL queries with objects and arrays
  • How SQL impacts the programming effort and program maintenance
  • When to use ISAM, when to use SQL and why is it a good idea to mix!

Prerequisites: Basic Xbase++ programming skills, basic knowledge about SQL

Web and Connected Mobile Apps

Advanced Compiled Xbase++ Pages (CXP)Andreas Herdt

Web and Connected Mobile Apps

Presenter: Andreas Herdt
Level: Intermediate
When: Friday, October 19, 3:30 - 4:45, Bisbee (R1)
Saturday, October 20, 11:30 - 12:45, Bisbee (R2)

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
  • The role of CXP in Alaska's tool chain

Prerequisites: Basic Xbase++/VFP programming skills, basic knowledge about CXP. Attendance of the "Introduction into CXP" session is recommended.

Connected Mobile Applications with Xbase++Till Warweg

Web and Connected Mobile Apps

Presenter: Till Warweg
Level: Beginner
When: Friday, October 19, 5:15 - 6:30, Bisbee (R1)
Saturday, October 20, 3:30 - 4:45, Arizona (R2)

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

HTML & CSS as Your Next-Generation UITill Warweg

Web and Connected Mobile AppsSolidifying Xbase++ Development

Presenter: Till Warweg
Level: Beginner
When: Friday, October 19, 11:30 - 12:45, Arizona (R1)
Saturday, October 20, 11:30 - 12:45, Arizona (R2)

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
  • How to add interactivity using JQuery and make the UI fluid

Introduction to the Compiled Xbase++ Pages (CXP)Andreas Herdt

Web and Connected Mobile Apps

Presenter: Andreas Herdt
Level: Beginner
When: Friday, October 19, 8:30 - 9:45, Arizona (R1)
Saturday, October 20, 8:30 - 9:45, Arizona (R2)

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

Deep Dive

Late-Night: Xbase++ Long-term VisionSteffen F. Pirsig

Deep DiveNext-Generation Visual FoxPro

Presenter: Steffen F. Pirsig
Level: Beginner
When: Friday, October 19, 8:30 - 9:30, Arizona

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...

You will learn:

  • How Windows 8 and Windows-on-Arm affect Xbase++
  • About Xbase++ as a stored procedure language!
  • About Scalability and multicores

Windows 8, an Architecture for the FutureSteffen F. Pirsig

Deep Dive

Presenter: Steffen F. Pirsig
Level: Intermediate
When: Saturday, October 20, 2:00 - 3:15, Arizona

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

Next-Generation Visual FoxPro

Late-Night: Xbase++ Long-term VisionSteffen F. Pirsig

Next-Generation Visual FoxProDeep Dive

Presenter: Steffen F. Pirsig
Level: Beginner
When: Friday, October 19, 8:30 - 9:30, Arizona

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...

You will learn:

  • How Windows 8 and Windows-on-Arm affect Xbase++
  • About Xbase++ as a stored procedure language!
  • About Scalability and multicores

Project PolarFox: State of the UnionSteffen F. Pirsig

Next-Generation Visual FoxPro

Presenter: Steffen F. Pirsig
Level: Beginner
When: Friday, October 19, 3:30 - 4:45, Arizona

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.

You will learn:

  • The latest project news
  • What progress has been made since the last DevCon
  • Demos and case studies!
  • How to prepare for the move to PolarFox

Xbase++ 2.0 from a VFP Developer's PerspectiveSteffen F. Pirsig

Next-Generation Visual FoxPro

Presenter: Steffen F. Pirsig
Level: Beginner
When: Saturday, October 20, 5:15 - 6:30, Arizona

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
  • About performance gains
  • What the migrated Xbase++ application (aka the result) looks like