Southwest Fox 2016
Southwest Xbase++ 2016

September 22-25, 2016
SanTan Elegante Conference Center
Gilbert, AZ

Southwest Xbase++ 2016 Sessions

There are 7 conference tracks at Southwest Xbase++ 2016. "Level" shows the expected Xbase++ 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 before the main conference starts, and are available for an additional cost; see the Register page for details.
Data Management: Sessions in this track cover topics such as installation and maintenance of the PostgreSQL Server, best practices and technical details regarding shared file (dbf/cdx) access in your network, as well as other client/server options such as creating an application server in Xbase++ and the usage of the Advantage Database Server.
New to Xbase++: This track cover topics relevant to developers new to Xbase++. This includes general sessions about the language as well as specific sessions about topics related to migrating existing applications written in Visual FoxPro.
Solidifying Xbase++ Development: The sessions in this track cover subjects ranging from how-to's and best practices to specific issues for the advanced Xbase++ developer.
Technology and Business for the Developer: This track looks at tools, technologies and techniques to make life as a developer easier and more productive. Topics in this track are application to both VFP and Xbase++ developers.
Web and Mobile: The sessions in this track are aimed at developers who want to learn more about creating web and connected mobile applications.
Xbase++ 3.0: This track is about Alaska's vision for version 3.0. The track's sessions give details about the next-generation multi-platform UI, explain why Xbase++ 3.0 is the next-generation Visual FoxPro and take a look into version 2.5 and the Visual FoxPro transpiler.

Keynote

Presenter: Phil Sherwood

When: Thursday, September 22, 7:00 - 8:30, Elliott/Flagstaff/Gilbert

We all deal with technology and have figured out how to pick up new techniques and skills. The problem is that success or peak performance is 20% Mechanics and 80% Mindset. We've got the mechanics down but what about the mindset?

I've been a business owner for over 20 years and have always been on the lookout for ideas, techniques and skills to take my business to the next level. A couple of years ago, after talking with several successful entrepreneurs, I was encouraged to focus more on the internal, instead of the external. This led me to study how our mindset and limiting beliefs affect not only our business and careers but also our relationships.

Some of my influences in this quest have been Jim Rohn, Michael Hyatt, Napoleon Hill, Tony Robbins and Dan Kennedy.

This opening session will take a look at how our mindset affects everything we do from our careers to our relationships and how, by just making a few changes in how we think, we can get better performance and results in all areas of our lives.

Pre-Conference

Pre-ConferenceNew to Xbase++Solidifying Xbase++ Development

Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 9:00 - 12:00, Elliott

Coding concepts are important as any beginning programmer can attest to, but good programmers evolve from the real world journey of trial and error as they try to bring the ideas in their head to the screen.

This full-day pre-conference session will take us from a simple browser to a full-featured and functional piece of software. We will begin using an existing piece of code and accompanying executable that does nothing more than display database records on the screen. Attendees will be given a USB stick that contains all the code examples along with a copy of all the necessary files needed to create and run the application. After installing the software, we will quickly examine the existing browser and how it works. Attendees will then be shown how to import the existing code into the workbench where we will continue to develop the software using a combination of SGL and Xbase++ commands and functions.

Once we have successfully put together a robust browsing application, we will stretch the application's functionality and interface. Using more coding examples contained on the accompanying USB stick, we will use the workbench to create a browser from scratch that will browse a different database. In order to reduce resources and leverage code, we will use the workbench to combine common functions from the two applications into a single .DLL. We will then combine the apps into a single full-featured and functional piece of software. All code examples will feature Xbase++ and SGL code. This approach is taken to show how quickly applications can be created. (How this code can be leveraged into a web application will be covered in greater detail in the Compiled Xbase++ Pages (CXP) session.)

The final part of the day focuses on yet another important part of the development cycle: debugging your application. Debugging is the process of finding the reason your code behaves differently than you expect. As a practical example, a number of issues which were intentionally added to the sample application will be found and corrected in the course of this session. Attendees will learn how to use the various debugger features and see why the integration of the debugger with the source code editor makes them more productive.

You will learn:

  • How to import existing code
  • The purpose of the .XPJ file
  • How to code using Hungarian notation
  • How to make code readable
  • How to break up code into component parts
  • How to create Tab Pages, Buttons and interactive Dialog screens
  • Simple ways to run processes in different threads
  • How to manage and edit database records through record object
  • How to create pop-up menus and using multiple modal and non-modal windows
  • How to use the workbench to create software from scratch
  • How to use the workbench to create DLL's
  • How to use the workbench to browse multiple sources including the .XPJ
  • How breakpoints stop your application under certain conditions and how they can be used to create trace files for later analysis
  • How to inspect public, private, and local variables, as well as the member variables of objects
  • How to evaluate any expression in the context of your application
  • How to debug a specific thread
  • How to use watchpoints and manage your breakpoints
  • How the Xbase++ debugger supports multi-threading, and therefore allows you to control program execution
  • How to break into a running application instead of starting the application under the debugger's control

Prerequisites: None

Pre-ConferenceNew to Xbase++Solidifying Xbase++ Development

Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 1:00 - 4:00, Elliott

This is part 2 of this full-day pre-conference session.

Pre-ConferenceData Management

Presenter: Tamar E. Granor
Level: All levels
When: Thursday, September 22, 1:00 - 4:00, Flagstaff

SQL (Structured Query Language) offers a powerful, set-oriented approach to working with data that is quite different from the traditional record-oriented Xbase++ techniques. This pre-conference session covers the basic SQL commands, from ALTER TABLE to UPDATE. We'll see how to use SQL to create and manage databases and tables, see the power of SQL for querying data, and look at adding, updating and removing data with SQL. We'll look at some of the differences between the dialects supported by Visual FoxPro, SQL Server, and PostgreSQL.

You will learn:

  • How to create and modify tables and cursors with SQL commands
  • How SQL SELECT makes it easy to extract the data you want
  • How to add, remove and update data in SQL
  • How various versions of SQL differ

Prerequisites: None

Data Management

Data ManagementTechnology and Business for the Developer

Presenter: Rick Borup
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Flagstaff (R1)
Saturday, September 24, 11:30 - 12:45, Flagstaff (R2)

Power BI (Business Intelligence) is Microsoft's newest suite of tools for transforming your data into reports and visual presentations. It's available both as an online service and as a Windows desktop application, and works with a wide variety of data sources. Tools such as Power Pivot, Power Query, and Power View are integrated with Microsoft Excel, making it easy for almost anyone to get started. But beyond the basics, non-technical users will likely turn to software developers and consultants for help. The Power BI REST API enables developers to push data from an application directly into a Power BI dataset for real-time updates. This session introduces Power BI and explores how you can learn to use it to create great reports and visuals from your data.

Note: This session will focus less on Excel and more on the newer Power BI Desktop app.

You will learn:

  • What Power BI is and how to get it
  • How to use the Power BI desktop app
  • About the Power BI tools that integrate with Microsoft Excel
  • How to import data into Power BI
  • How to create a data model
  • How to create reports and visuals representations of the data

Prerequisites: None

Data ManagementPre-Conference

Presenter: Tamar E. Granor
Level: All levels
When: Thursday, September 22, 1:00 - 4:00, Flagstaff

SQL (Structured Query Language) offers a powerful, set-oriented approach to working with data that is quite different from the traditional record-oriented Xbase++ techniques. This pre-conference session covers the basic SQL commands, from ALTER TABLE to UPDATE. We'll see how to use SQL to create and manage databases and tables, see the power of SQL for querying data, and look at adding, updating and removing data with SQL. We'll look at some of the differences between the dialects supported by Visual FoxPro, SQL Server, and PostgreSQL.

You will learn:

  • How to create and modify tables and cursors with SQL commands
  • How SQL SELECT makes it easy to extract the data you want
  • How to add, remove and update data in SQL
  • How various versions of SQL differ

Prerequisites: None

Data Management

Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Flagstaff (R1)
Sunday, September 25, 11:30 - 12:45, Flagstaff (R2)

Last year at Southwest Fox, the SQL design application DbSchema made a big splash. Now the splash has become a tidal wave. Why? What changed in a year? The creators of DbSchema were so pleased with the response from VFP developers that they have added built-in support for VFP!

VFP developers have always had strong WYSIWYG tools available for creating and designing native VFP databases. But moving to SQL Server meant using SQL Server Management Studio or similar tools—or even just using the command line. All that has changed with the product dbSchema. Now you can design databases visually, manages joins, triggers, stored procedures, and more, all from an intuitive interface.

DbSchema does not stop there! Compare and update schemas between databases or between designs and live databases. Coordinate multiple database design staff. Organize and manage sub-layouts and layout slices, design queries and run them interactively, and edit data almost like the VFP Browse and Command window!

Life with SQL Server just got a lot easier. And so did life with VFP.

Use DbSchema to compare, design, analyze, set up, and manage SQL Server as well as VFP. Not only is DbSchema the design tool VFP has always needed, now you can seamlessly move between database platforms!

This session will demonstrate how to use the dbSchema tool to create and manage SQL Server and VFP databases, queries, data, and designs.

You will learn:

  • What functionality dbSchema provides
  • How to create databases, tables, triggers, and stored procedures
  • How to work with layouts
  • How to work with a schema offline and live
  • How to produce documentation
  • Schema management
  • How to update servers and designs from each other
  • Data management via dbSchema
  • Integrating VFP into DbSchema

Prerequisites: Knowledge of database design in SQL Server and/or VFP

Data ManagementSolidifying Xbase++ Development

Presenter: Roger Donnay
Level: Intermediate
When: Saturday, September 24, 8:30 - 9:45, Arizona (R1)
Sunday, September 25, 11:30 - 12:45, Arizona (R2)

More and more Xbase++ developers need to deal with XML in their applications. As systems go paperless, the electronic transfer of information becomes more and more relevant. This transfer of information is most often in the form of XML.

This session discusses concepts for dealing with XML both from the need to parse XML data into existing applications to the need to generate XML to send to other applications. Attendees will receive source code for an XmlNode class that has methods for reading, writing, managing and creating XML streams.

You will learn:

  • The basics of XML format
  • How to use the Xbase++ XML parser
  • How to use the XmlNode class
  • How to convert DBF data to XML and vice-versa
  • How to convert objects and arrays to XML and vice-versa
  • How to work with an XML tree as a set of objects
  • Understanding SOAP and WSDL

Prerequisites: None

Data ManagementWeb and Mobile

Presenter: Andreas Gehrs-Pahl
Level: All levels
When: Saturday, September 24, 8:30 - 9:45, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Bisbee (R2)

This session will show how to geo-verify and geo-code an address and how to display an address or location on a map in your application. To accomplish this, the free Google Geo-Coding API and Mapping features are used. An application will be created that will geo-verify and geo-code addresses and display them on a Google Map. In addition the data that was accumulated by the GPS tracker Service application from the "You have been Served" session will be displayed, to show where the tracked vehicles are and where they have been.

Even though the demo program will be written in Xbase++, the generic information about the Google API and Google Maps might also be useful to VFP developers.

You will learn:

  • The difference between location and address
  • The different formats and parts of addresses and locations
  • Why an address should be geo-verified and geo-coded
  • How to use the Google Geo-Coding API to verify an address and get GPS coordinates
  • How to display addresses and locations in your application using Google Maps

Prerequisites: Familiarity with the Xbase++ language. Some knowledge of HTML, XML, and Active-X components is a plus.

New to Xbase++

New to Xbase++

Presenter: Alec Gagne
Level: Beginner
When: Friday, September 23, 10:00 - 11:15, Gilbert (R1)
Sunday, September 25, 10:00 - 11:15, Gilbert (R2)

Many of us with legacy VFP-based applications find ourselves at crossroads regarding the future of our respective products and businesses. With our favorite development tool being supported only through the VFP user community and the world of technology moving very rapidly in several different directions, many of us have wondered what to do or where to go next. The complexity and cost associated with rewriting our respective products in another language seems to be a daunting endeavor.

However, the task need not be an all or nothing proposition. The Xbase++ development platform continues to evolve and encompass more of the capability and functionality that we VFP developers know and love. Thus, other than choosing to do nothing at all, the transition to Xbase++ seems to be the path of least resistance for us die-hard VFP developers looking to protect our future.

In this session we will look at Xbase++ from a VFP perspective and discuss strategies for co-mingling both VFP and Xbase++ based applications as part of an overall solution. We will also discuss both technical and business case reasons why you should consider such a transition.

You will learn:

  • How the transition task can be broken into smaller pieces
  • Strategies for extending VFP with programs created using Xbase++
  • Nuances and differences between Xbase++ and VFP 9
  • Strengths and weaknesses of Xbase++ vs. VFP9 development platform
  • Distribution of Xbase++ and VFP applications together

Prerequisites: None

New to Xbase++

Presenter: Roger Donnay
Level: Beginner
When: Friday, September 23, 2:00 - 3:15, Arizona (R1)
Sunday, September 25, 8:30 - 9:45, Arizona (R2)

This session is a discussion of how Xbase++ and an SGL language extension simplified the conversion of a Visual FoxPro application to Xbase++. This is a case study of how an actual conversion, completed this year, was accomplished in a very short period of time. The company who hired me to help with the conversion had been in business for many years and chose one of their many VFP applications as a feasibility test. They were happy enough with the results to deploy the new Xbase++ application to their customers.

Attendees will receive a free copy of the SGL system that was used for the conversion. The source of the finished application will be available for review with a comparison of the finished VFP application to the finished Xbase++ application. There will be additional commentary from the VFP developer about their experiences during the process.

You will learn:

  • The appropriate steps in performing a conversion
  • What type of VFP applications can be easily converted using this technique
  • What VFP developers need to know about Xbase++ when converting
  • What VFP developers need to know about SGL programming

Prerequisites: Experience in VFP development

New to Xbase++Pre-ConferenceSolidifying Xbase++ Development

Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 9:00 - 12:00, Elliott

Coding concepts are important as any beginning programmer can attest to, but good programmers evolve from the real world journey of trial and error as they try to bring the ideas in their head to the screen.

This full-day pre-conference session will take us from a simple browser to a full-featured and functional piece of software. We will begin using an existing piece of code and accompanying executable that does nothing more than display database records on the screen. Attendees will be given a USB stick that contains all the code examples along with a copy of all the necessary files needed to create and run the application. After installing the software, we will quickly examine the existing browser and how it works. Attendees will then be shown how to import the existing code into the workbench where we will continue to develop the software using a combination of SGL and Xbase++ commands and functions.

Once we have successfully put together a robust browsing application, we will stretch the application's functionality and interface. Using more coding examples contained on the accompanying USB stick, we will use the workbench to create a browser from scratch that will browse a different database. In order to reduce resources and leverage code, we will use the workbench to combine common functions from the two applications into a single .DLL. We will then combine the apps into a single full-featured and functional piece of software. All code examples will feature Xbase++ and SGL code. This approach is taken to show how quickly applications can be created. (How this code can be leveraged into a web application will be covered in greater detail in the Compiled Xbase++ Pages (CXP) session.)

The final part of the day focuses on yet another important part of the development cycle: debugging your application. Debugging is the process of finding the reason your code behaves differently than you expect. As a practical example, a number of issues which were intentionally added to the sample application will be found and corrected in the course of this session. Attendees will learn how to use the various debugger features and see why the integration of the debugger with the source code editor makes them more productive.

You will learn:

  • How to import existing code
  • The purpose of the .XPJ file
  • How to code using Hungarian notation
  • How to make code readable
  • How to break up code into component parts
  • How to create Tab Pages, Buttons and interactive Dialog screens
  • Simple ways to run processes in different threads
  • How to manage and edit database records through record object
  • How to create pop-up menus and using multiple modal and non-modal windows
  • How to use the workbench to create software from scratch
  • How to use the workbench to create DLL's
  • How to use the workbench to browse multiple sources including the .XPJ
  • How breakpoints stop your application under certain conditions and how they can be used to create trace files for later analysis
  • How to inspect public, private, and local variables, as well as the member variables of objects
  • How to evaluate any expression in the context of your application
  • How to debug a specific thread
  • How to use watchpoints and manage your breakpoints
  • How the Xbase++ debugger supports multi-threading, and therefore allows you to control program execution
  • How to break into a running application instead of starting the application under the debugger's control

Prerequisites: None

New to Xbase++Pre-ConferenceSolidifying Xbase++ Development

Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 1:00 - 4:00, Elliott

This is part 2 of this full-day pre-conference session.

New to Xbase++Xbase++ 3.0

Presenter: Venelina E. Jordanova
Level: Beginner
When: Friday, September 23, 8:30 - 9:45, Arizona (R1)
Saturday, September 24, 11:30 - 12:45, Arizona (R2)

Do you love VFP? I do! And it is still the love of my life (together with my favorite sport, which I've been doing even longer). I'm an old fox-er and I still have many customers using my old VFP applications. Complaining about what Microsoft has done with our favorite language will not help. We have to go forward; we must look into the future. For a long time, I have looked at many different languages and technologies. In that list are both technologies from Microsoft and open-source technologies. Yes, they are used by many developers and they work. Yes, they have a wide range of implementation. However, I always come to a situation where I think “This could be solved better and faster in VFP.” I still hope to find my “future” technology—the one which will be at least as good as VFP was.

In this session, we will see the features that Xbase++ offers us from the point of view of a VFP developer. We will see what is similar and what is different to the language we are used to. We will have a look at the development environment and the tools for developers to speed up the development process. And last, but not least, we will see how VFP applications can have a new long life, thanks to Xbase++.

You will learn:

  • What is important to know about Xbase++
  • How to develop a new Xbase++ project: how to access data, how to build a user interface, where to write business logic code.
  • What tools help in the development process
  • How to give old applications new life using Xbase++

Prerequisites: None

New to Xbase++Xbase++ 3.0

Presenter: Steffen F. Pirsig
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Arizona (R1)
Saturday, September 24, 2:00 - 3:15, Arizona (R2)

This session is intended for Visual FoxPro developers who want to give their existing solutions a new future while avoiding the time-consuming and cost-prohibitive approach of rewriting their applications.

We will first develop a basic understanding of the modernization process, moving a Visual FoxPro solution to Xbase++, utilizing the transpiler. Based on a sample application developed with Visual FoxPro, we will learn how the original VFP source code gets transpiled into Xbase++ code. We will not only see the differences, but also the similarities in the code, which are fortunately in the majority.

However, source code is often very complex and developers sometimes use clever tricks when writing code or using language features. Consequently, there are some situations where the automated transpilation process may fail. We will look into problematic Visual FoxPro coding patterns and examine which features the transpiler provides to the Visual FoxPro developer for dealing with them.

We will close the session with a couple of scenarios, showing how to add value to a Visual FoxPro application after moving it over to the Xbase++ platform.

You will learn:

  • How to use the transpiler to transform Visual FoxPro PRG/VCX code into Xbase++ PRG code
  • The limitations of the transpiler and how to work around them
  • How to maintain VFP and Xbase++ applications using the same source code
  • About modernization project planning and best practices to succeed
  • How to add value to modernized VFP applications

Prerequisites: Visual FoxPro experience, multiple man years of investment into a VFP application, an open mind; thinking forward

New to Xbase++Solidifying Xbase++ Development

Presenters: Steffen F. Pirsig, Spyros Bobby Drakos
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Arizona

Do you have some code that you want to run faster, create lesser workload, or become smaller? In a code shrink, all attendees work together on reviewing the code at hand. Topics like performance pitfalls, code readability, and the approach taken in the implementation will be examined and alternative coding solutions will be suggested if needed.

We do not judge the code, we simply try to make it better! In fact, the code shrink code review is an excellent learning experience for both the experienced developer and the beginner.

You will learn:

  • Best practices
  • The benefit of a coding standard
  • From each other

Prerequisites: Xbase++ 2.0 or Visual FoxPro experience, and a laptop

New to Xbase++Solidifying Xbase++ DevelopmentXbase++ 3.0

Presenter: Steffen F. Pirsig
Level: All levels
When: Saturday, September 24, 5:15 - 6:30, Arizona

In this session, we will talk about our vision for the years to come in terms of the features and technologies that we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends and developments which may affect your business model or create new opportunities. Of course, you will also learn where Alaska Software thinks Xbase++ needs to be improved or might have deficiencies. In short, if you are an Xbase++ developer or if you are considering moving to Xbase++ from another language, this session is your "moment of orientation" for the next 12 months and beyond.

You will learn:

  • About the future of Xbase++
  • What didn't go so well in the past
  • How to prepare for the future

Prerequisites: None

Solidifying Xbase++ Development

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Till Warweg
Level: All levels
When: Saturday, September 24, 11:30 - 12:45, Bisbee (R1)
Sunday, September 25, 11:30 - 12:45, Bisbee (R2)

Testing software to ensure product quality, both during and after the development process, has been a hot topic in recent years. However, although well-established concepts such as unit testing help to ensure the correctness of your code, testing the UI layer of an application tends to be more problematic. This session introduces Selenium, an open source system for automating the testing of Web applications. The topics covered in this session range from installing the Selenium framework to writing your first test case for automating a CXP application.

You will learn:

  • About Selenium as a tool for creating automated tests for Web applications
  • How to install and set up Selenium on your development machine
  • The prerequisites and best practices for writing testable Web front-ends

Prerequisites: Basic knowledge of programming with CXP, basic HTML/CSS knowledge

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Roger Donnay
Level: Intermediate
When: Friday, September 23, 10:00 - 11:15, Arizona (R1)
Saturday, September 24, 3:30 - 4:45, Arizona (R2)

Compiled Xbase++ Pages (CXP) is a build and execution infrastructure that allows programmers to create powerful dynamic web sites. CXP is a server-based language similar to ASP and PHP except that it supports all the features of the Xbase++ language and therefore makes it possible to adapt existing Xbase++ applications to the web.

Attendees will receive source code for a CXP web server, written in Xbase++, that does not require IIS or Apache. There will be a full discussion of the advantages of using this technique including how to use your custom CXP server to send messages to a remote Trace client program for monitoring your application activities. Discussion will include many tips, techniques, and sample programs that make getting started with CXP much easier. Attendees will also receive source code for a Trace Client program that remotely communicates with the CXP server.

You will learn:

  • How to set up a server to use compiled pages
  • How to install and configure APACHE or IIS for CXP
  • How to set up an Xbase++ environment for use with CXP
  • About sample CXP programs that deliver dynamic HTML, CSS and Javascript
  • The basics of CXP programming
  • How CXP compares to scripting languages such as PHP or ASP
  • How to use your own function libraries with CXP
  • How to manage CXP error handling
  • How to create your own CXP server that does not require IIS or Apache

Prerequisites: Some experience with HTML and CSS

Solidifying Xbase++ DevelopmentPre-ConferenceNew to Xbase++

Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 9:00 - 12:00, Elliott

Coding concepts are important as any beginning programmer can attest to, but good programmers evolve from the real world journey of trial and error as they try to bring the ideas in their head to the screen.

This full-day pre-conference session will take us from a simple browser to a full-featured and functional piece of software. We will begin using an existing piece of code and accompanying executable that does nothing more than display database records on the screen. Attendees will be given a USB stick that contains all the code examples along with a copy of all the necessary files needed to create and run the application. After installing the software, we will quickly examine the existing browser and how it works. Attendees will then be shown how to import the existing code into the workbench where we will continue to develop the software using a combination of SGL and Xbase++ commands and functions.

Once we have successfully put together a robust browsing application, we will stretch the application's functionality and interface. Using more coding examples contained on the accompanying USB stick, we will use the workbench to create a browser from scratch that will browse a different database. In order to reduce resources and leverage code, we will use the workbench to combine common functions from the two applications into a single .DLL. We will then combine the apps into a single full-featured and functional piece of software. All code examples will feature Xbase++ and SGL code. This approach is taken to show how quickly applications can be created. (How this code can be leveraged into a web application will be covered in greater detail in the Compiled Xbase++ Pages (CXP) session.)

The final part of the day focuses on yet another important part of the development cycle: debugging your application. Debugging is the process of finding the reason your code behaves differently than you expect. As a practical example, a number of issues which were intentionally added to the sample application will be found and corrected in the course of this session. Attendees will learn how to use the various debugger features and see why the integration of the debugger with the source code editor makes them more productive.

You will learn:

  • How to import existing code
  • The purpose of the .XPJ file
  • How to code using Hungarian notation
  • How to make code readable
  • How to break up code into component parts
  • How to create Tab Pages, Buttons and interactive Dialog screens
  • Simple ways to run processes in different threads
  • How to manage and edit database records through record object
  • How to create pop-up menus and using multiple modal and non-modal windows
  • How to use the workbench to create software from scratch
  • How to use the workbench to create DLL's
  • How to use the workbench to browse multiple sources including the .XPJ
  • How breakpoints stop your application under certain conditions and how they can be used to create trace files for later analysis
  • How to inspect public, private, and local variables, as well as the member variables of objects
  • How to evaluate any expression in the context of your application
  • How to debug a specific thread
  • How to use watchpoints and manage your breakpoints
  • How the Xbase++ debugger supports multi-threading, and therefore allows you to control program execution
  • How to break into a running application instead of starting the application under the debugger's control

Prerequisites: None

Solidifying Xbase++ DevelopmentPre-ConferenceNew to Xbase++

Presenters: Andreas Herdt, Spyros Bobby Drakos
Level: Beginner, Intermediate
When: Thursday, September 22, 1:00 - 4:00, Elliott

This is part 2 of this full-day pre-conference session.

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Till Warweg
Level: All levels
When: Friday, September 23, 8:30 - 9:45, Bisbee (R1)
Saturday, September 24, 3:30 - 4:45, Bisbee (R2)

HTML and CSS have figured prominently in recent years as a new technology for creating appealing user interfaces in desktop applications. Starting with Xbase++ 2.0, developers can begin utilizing HTML and CSS to create their own user interface controls. From specialized button classes, to list boxes for visualizing images and textual data, to collapsible controls for grouping UI elements, Alaska is planning to release a number of new controls based on HTML and CSS in the next few years. This session will give an overview of the controls that Alaska Software has developed by the time of the conference. Also, practical use-cases will be demonstrated to give you a better idea of how, where, and when to incorporate the new user interface components in your desktop applications.

You will learn:

  • Which new controls are already available for use in your desktop applications, and which controls will become available shortly
  • How to add these controls to your projects
  • About use-cases for utilizing HTML and CSS in desktop applications
  • Why the controls will be released as source code instead of a runtime DLL, and the advantages of this deployment model

Prerequisites: Basic knowledge of programming with Xbase++, basic HTML/CSS knowledge

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Andreas Herdt
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Arizona (R2)

Nowadays, network communications need to be secure. SSL/TLSv3 is the standard for encrypting data over TCP/IP and is now supported by Xbase++ on the client and server side. While using these technologies on the client side is easy and only requires a connection, ensuring that your WebHandlers and WebSocketHandlers are able to accept secure connections needs a basic understanding of the Windows platform-specific certificate infrastructure. For example, an SSL certificate must first be obtained and then installed on the server machine. In this session, attendees will get all the background information required for setting up and using secure SSL data exchanges between client and server machines.

You will learn:

  • How to create applications that use SSL on the client and server side
  • What SSL certificates are and what certificate types exist
  • How to install and use SSL certificates from Xbase++

Prerequisites: Basic knowledge of programming with Xbase++, Visual FoxPro, or Clipper. Basic knowledge about Web Technologies is a plus

Solidifying Xbase++ Development

Presenters: Steffen F. Pirsig, Spyros Bobby Drakos
Level: All levels
When: Saturday, September 24, 10:00 - 11:15, Arizona

Train your development and language skills with code katas. A code kata is a given programming task of manageable size which is solved by the developer many times in a repetitive manner. The developer tries to find a better solution with each run. The goal is not the final code or solution, the goal of a code kata is the process and the learning from others as well as the learning from mistakes.

Examples of suitable programming tasks are:

  • Count characters in string and return array of chars with count
  • Close all workareas opened by callee
  • Create a function which translates decimal numbers into Roman numbers

We will run the code kata as a group, Two developers are nominated to start with the task and act effectively as a pair with one writing on the keyboard and the co-pilot issuing commands. Attendees are allowed to make suggestions as they go but should allow the pair time and space to proceed with the exercises. The group rotates each 10 minutes so everyone gets a turn.

Again, at each run the pairs will find better ways of solving the problem. Code katas aren't about finding perfect solutions: the journey itself is your reward.

You will learn:

  • Better coding
  • To rethink existing approaches

Prerequisites: Installed copy of Xbase++ 2.0, of course, and a laptop

Solidifying Xbase++ DevelopmentData Management

Presenter: Roger Donnay
Level: Intermediate
When: Saturday, September 24, 8:30 - 9:45, Arizona (R1)
Sunday, September 25, 11:30 - 12:45, Arizona (R2)

More and more Xbase++ developers need to deal with XML in their applications. As systems go paperless, the electronic transfer of information becomes more and more relevant. This transfer of information is most often in the form of XML.

This session discusses concepts for dealing with XML both from the need to parse XML data into existing applications to the need to generate XML to send to other applications. Attendees will receive source code for an XmlNode class that has methods for reading, writing, managing and creating XML streams.

You will learn:

  • The basics of XML format
  • How to use the Xbase++ XML parser
  • How to use the XmlNode class
  • How to convert DBF data to XML and vice-versa
  • How to convert objects and arrays to XML and vice-versa
  • How to work with an XML tree as a set of objects
  • Understanding SOAP and WSDL

Prerequisites: None

Solidifying Xbase++ DevelopmentNew to Xbase++

Presenters: Steffen F. Pirsig, Spyros Bobby Drakos
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Arizona

Do you have some code that you want to run faster, create lesser workload, or become smaller? In a code shrink, all attendees work together on reviewing the code at hand. Topics like performance pitfalls, code readability, and the approach taken in the implementation will be examined and alternative coding solutions will be suggested if needed.

We do not judge the code, we simply try to make it better! In fact, the code shrink code review is an excellent learning experience for both the experienced developer and the beginner.

You will learn:

  • Best practices
  • The benefit of a coding standard
  • From each other

Prerequisites: Xbase++ 2.0 or Visual FoxPro experience, and a laptop

Solidifying Xbase++ DevelopmentNew to Xbase++Xbase++ 3.0

Presenter: Steffen F. Pirsig
Level: All levels
When: Saturday, September 24, 5:15 - 6:30, Arizona

In this session, we will talk about our vision for the years to come in terms of the features and technologies that we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends and developments which may affect your business model or create new opportunities. Of course, you will also learn where Alaska Software thinks Xbase++ needs to be improved or might have deficiencies. In short, if you are an Xbase++ developer or if you are considering moving to Xbase++ from another language, this session is your "moment of orientation" for the next 12 months and beyond.

You will learn:

  • About the future of Xbase++
  • What didn't go so well in the past
  • How to prepare for the future

Prerequisites: None

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Andreas Gehrs-Pahl
Level: Beginner, Intermediate
When: Friday, September 23, 10:00 - 11:15, Bisbee (R1)
Saturday, September 24, 2:00 - 3:15, Bisbee (R2)

In this session, you will learn how to create a simple Service application. The example program will be a vehicle tracking application that receives the location (and possibly other details) of a fleet of (imaginary) delivery trucks and records the received data in a PostgreSQL (PGSQL) database. In addition, a Service Controller application will be created to manage (install, start, pause, stop, and uninstall) the Services (the Vehicle Tracking Service as well as the PGSQL Database Server). This Controller application will also act as a dashboard for the Tracking Service and to manage the database on the backend. The Service will be listening for WebSocket connections and will save the received data (consisting of an ID, GPS coordinates, a Date/Time Stamp, etc.) in a PGSQL database. It will also respond to status requests from the Controller application.

You will learn:

  • What a Service application is and for what it could be used
  • What a Service Controller application is and why you might not even need one
  • How to create and install a Service application
  • How to control and debug your Service application
  • How you can use WebSockets to communicate with the IoT

Prerequisites: Familiarity with the Xbase++ language

Technology and Business for the Developer

Technology and Business for the Developer

Presenter: Rick Schummer
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Elliott (R1)
Saturday, September 24, 3:30 - 4:45, Elliott (R2)

Every session I've seen at conferences about making the move from corporate developer working for "the man/woman" to being an independent consultant and being "the man/woman" has been delivered through rose-colored glasses. Everything is unicorns and green grass on the other side of the fence. You'll be rich, work fewer hours, and instantly build a company someone will want to buy from you for an over-inflated amount of cash. Listening to these sessions, who would not want to make the move? I've listened to the sessions and learned a few things from them. I've seen developers make the jump. I've seen some of them succeed and others fail.

It turns out I had to do this twice to get it right myself, and even today I know for sure I am not getting it all right. I still have things to learn from others and from experience. The lessons from the school of black and blue are hard-fought wins. The generally accepted idea that it's best to learn from your mistakes is an educational path I try to avoid, but I have proven that you can make it work, even if you are not perfect.

This session is about lessons learned, things to consider if you are an independent consultant or running a consulting firm, and things to consider if you are thinking about becoming an independent consultant. You may even learn that it is not right for you.

Because the session is limited to 75 minutes, it won't be possible to cover everything I've learned about this topic; the exact content of the session will, in part, be driven by the audience. Core topics include balancing billable vs. non-billable time, how to find more work, why cash flow is king, and marketing yourself and the business. It is also important to understand why setting up the business's legal infrastructure is not something you want to do casually. The financials are everything, right? What, no? We'll discuss partnership vs. making a go of it yourself. I'll also share one of the keys to success for me: strategic outsourcing of administrivia.

We'll also look at networking, partnering with others, and making sure you get paid for the risks you take and the hard work you put into the business. That of course leads to discussions about the risks involved and how much work it takes to run the business. Finally, we'll consider what you do when you become so successful that you need others to help you accomplish even more goodness for your growing customer base. So many lessons to share, and so many lessons still to learn.

I'll ask others attending the session to share their ideas too. An interactive session on this topic is sure to benefit everyone in attendance.

You will learn:

  • Lessons from my school of black and blue
  • Why you may want to be your own person
  • Why working for someone else who encourages a team to be entrepreneurial might be better
  • About challenges people might not mention
  • That there is a lot more to running a consulting firm than writing code all day long

Prerequisites: None

Technology and Business for the Developer

Presenter: Tuvia Vinitsky
Level: All levels
When: Friday, September 23, 10:00 - 11:15, Elliott (R1)
Sunday, September 25, 8:30 - 9:45, Elliott (R2)

End user training is a critical component of a successful software deployment. Yet too often the training process is an afterthought. Training may be an art, but it is also a science. Experts in Instructional Technology have studied the most effective training methods. Delivering a stunning VFP app is only half the battle. In this session Tuvia Vinitsky takes you through the process of designing and implementing effective end user training.

You will learn:

  • About the training goal plan
  • How to determine how much time to spend overall and on each section of the application
  • About the best training schedules
  • About the size of training groups
  • Computer equipment essentials for effective training
  • What materials should be provided to the end users during training
  • How to evaluate the success of a training session
  • Buy-ins
  • Who gets trained on what
  • Dealing with managers who resist training

Prerequisites: Experience teaching or training end users

Technology and Business for the DeveloperData Management

Presenter: Rick Borup
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Flagstaff (R1)
Saturday, September 24, 11:30 - 12:45, Flagstaff (R2)

Power BI (Business Intelligence) is Microsoft's newest suite of tools for transforming your data into reports and visual presentations. It's available both as an online service and as a Windows desktop application, and works with a wide variety of data sources. Tools such as Power Pivot, Power Query, and Power View are integrated with Microsoft Excel, making it easy for almost anyone to get started. But beyond the basics, non-technical users will likely turn to software developers and consultants for help. The Power BI REST API enables developers to push data from an application directly into a Power BI dataset for real-time updates. This session introduces Power BI and explores how you can learn to use it to create great reports and visuals from your data.

Note: This session will focus less on Excel and more on the newer Power BI Desktop app.

You will learn:

  • What Power BI is and how to get it
  • How to use the Power BI desktop app
  • About the Power BI tools that integrate with Microsoft Excel
  • How to import data into Power BI
  • How to create a data model
  • How to create reports and visuals representations of the data

Prerequisites: None

Technology and Business for the Developer

Presenter: Chris McGuinness
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Gilbert (R1)
Saturday, September 24, 11:30 - 12:45, Gilbert (R2)

This session is a walk-through of real-world examples where Amazon's infrastructure-as-a-service is leveraged using the Remote Application capabilities of the Remote Desktop Protocol allowing you to push FoxPro/Xbase++ based applications to your client's desktops in a seamless fashion.

Topics include:

  • Basic architecture and concepts
  • Server provisioning
  • Application instancing/installation
  • Workstation/device considerations (tablets, Macs, HTML RDP clients, etc)
  • Security disaster recovery
  • Licensing
  • Cost models (gaming AWS pricing)
  • Advantages, pitfalls, etc...

You will learn:

  • Terminal services remote application architecture and concepts
  • About Amazon EC2 infrastructure-as-a-service offerings and implementation
  • How to combine terminal services with Amazon to deliver your classic windows applications
  • Advantages and pitfalls of this approach

Prerequisites: None

Technology and Business for the Developer

Presenter: Tamar E. Granor
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Elliott (R1)
Saturday, September 24, 11:30 - 12:45, Elliott (R2)

Many software developers would prefer never to have to write in a natural language; they're much happier with programming languages. But the ability to communicate in writing is actually an essential skill for successful software development. Developers need to be able to write specifications and developer documentation, as well as to clearly ask questions of their customers and to answer customer questions. In some cases, developers are responsible for end-user documentation, too.

In this session, we'll see how to produce documents that say what you need to say in an accessible way, whether you're writing a user manual or an email. We'll look at all stages of the writing process, from organization to writing to editing to proofing. This session will be run as a workshop. Come prepared to write and edit. Please bring something on which to write and something to write with.

You will learn:

  • How to approach writing tasks
  • How to organize a document
  • How to write clearly and concisely
  • That all documents require editing

Prerequisites: None

Web and Mobile

Web and MobileSolidifying Xbase++ Development

Presenter: Till Warweg
Level: All levels
When: Saturday, September 24, 11:30 - 12:45, Bisbee (R1)
Sunday, September 25, 11:30 - 12:45, Bisbee (R2)

Testing software to ensure product quality, both during and after the development process, has been a hot topic in recent years. However, although well-established concepts such as unit testing help to ensure the correctness of your code, testing the UI layer of an application tends to be more problematic. This session introduces Selenium, an open source system for automating the testing of Web applications. The topics covered in this session range from installing the Selenium framework to writing your first test case for automating a CXP application.

You will learn:

  • About Selenium as a tool for creating automated tests for Web applications
  • How to install and set up Selenium on your development machine
  • The prerequisites and best practices for writing testable Web front-ends

Prerequisites: Basic knowledge of programming with CXP, basic HTML/CSS knowledge

Web and MobileSolidifying Xbase++ Development

Presenter: Roger Donnay
Level: Intermediate
When: Friday, September 23, 10:00 - 11:15, Arizona (R1)
Saturday, September 24, 3:30 - 4:45, Arizona (R2)

Compiled Xbase++ Pages (CXP) is a build and execution infrastructure that allows programmers to create powerful dynamic web sites. CXP is a server-based language similar to ASP and PHP except that it supports all the features of the Xbase++ language and therefore makes it possible to adapt existing Xbase++ applications to the web.

Attendees will receive source code for a CXP web server, written in Xbase++, that does not require IIS or Apache. There will be a full discussion of the advantages of using this technique including how to use your custom CXP server to send messages to a remote Trace client program for monitoring your application activities. Discussion will include many tips, techniques, and sample programs that make getting started with CXP much easier. Attendees will also receive source code for a Trace Client program that remotely communicates with the CXP server.

You will learn:

  • How to set up a server to use compiled pages
  • How to install and configure APACHE or IIS for CXP
  • How to set up an Xbase++ environment for use with CXP
  • About sample CXP programs that deliver dynamic HTML, CSS and Javascript
  • The basics of CXP programming
  • How CXP compares to scripting languages such as PHP or ASP
  • How to use your own function libraries with CXP
  • How to manage CXP error handling
  • How to create your own CXP server that does not require IIS or Apache

Prerequisites: Some experience with HTML and CSS

Web and Mobile

Presenter: Venelina E. Jordanova
Level: Intermediate, Advanced
When: Friday, September 23, 11:30 - 12:45, Bisbee (R1)
Sunday, September 25, 8:30 - 9:45, Bisbee (R2)

The world moves and nowadays we need to handle more and more tasks. So do our customers. According to research, 64% of American adults now own a smartphone. All smartphone owners use their phones to go online and 34% of internet users go online mostly using their phones, and not using some other device such as a desktop or laptop computer. Is the smartphone the PC of the next generation? In any case, we often face the need to provide some part of our applications as mobile apps. Of course, this is not the full functional desktop application, but in most cases, it gives the end-users the chance to enter data immediately instead of making notes and entering them later in the office, and provides some instant reports and statistical data that is very useful.

In this session, I will demonstrate how to build a simple web server, accessing and providing the required data over a remote connection using the JSON data exchange format. The next part of the demonstration will be a simple HTML 5 page consuming the data as well as a simple mobile application, working with same data, editing them and updating the database behind.

You will learn:

  • How to develop a web server providing data in JSON format
  • How to process different data types
  • How to develop an HTML 5 application consuming JSON data
  • How to develop a mobile application consuming JSON data
  • How to receive data changes in JSON format and update the database
  • How to make temporary mobile storage in an SQLite database

Prerequisites: Understanding of web services

Web and MobileSolidifying Xbase++ Development

Presenter: Till Warweg
Level: All levels
When: Friday, September 23, 8:30 - 9:45, Bisbee (R1)
Saturday, September 24, 3:30 - 4:45, Bisbee (R2)

HTML and CSS have figured prominently in recent years as a new technology for creating appealing user interfaces in desktop applications. Starting with Xbase++ 2.0, developers can begin utilizing HTML and CSS to create their own user interface controls. From specialized button classes, to list boxes for visualizing images and textual data, to collapsible controls for grouping UI elements, Alaska is planning to release a number of new controls based on HTML and CSS in the next few years. This session will give an overview of the controls that Alaska Software has developed by the time of the conference. Also, practical use-cases will be demonstrated to give you a better idea of how, where, and when to incorporate the new user interface components in your desktop applications.

You will learn:

  • Which new controls are already available for use in your desktop applications, and which controls will become available shortly
  • How to add these controls to your projects
  • About use-cases for utilizing HTML and CSS in desktop applications
  • Why the controls will be released as source code instead of a runtime DLL, and the advantages of this deployment model

Prerequisites: Basic knowledge of programming with Xbase++, basic HTML/CSS knowledge

Web and MobileSolidifying Xbase++ Development

Presenter: Andreas Herdt
Level: All levels
When: Friday, September 23, 2:00 - 3:15, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Arizona (R2)

Nowadays, network communications need to be secure. SSL/TLSv3 is the standard for encrypting data over TCP/IP and is now supported by Xbase++ on the client and server side. While using these technologies on the client side is easy and only requires a connection, ensuring that your WebHandlers and WebSocketHandlers are able to accept secure connections needs a basic understanding of the Windows platform-specific certificate infrastructure. For example, an SSL certificate must first be obtained and then installed on the server machine. In this session, attendees will get all the background information required for setting up and using secure SSL data exchanges between client and server machines.

You will learn:

  • How to create applications that use SSL on the client and server side
  • What SSL certificates are and what certificate types exist
  • How to install and use SSL certificates from Xbase++

Prerequisites: Basic knowledge of programming with Xbase++, Visual FoxPro, or Clipper. Basic knowledge about Web Technologies is a plus

Web and MobileData Management

Presenter: Andreas Gehrs-Pahl
Level: All levels
When: Saturday, September 24, 8:30 - 9:45, Bisbee (R1)
Sunday, September 25, 10:00 - 11:15, Bisbee (R2)

This session will show how to geo-verify and geo-code an address and how to display an address or location on a map in your application. To accomplish this, the free Google Geo-Coding API and Mapping features are used. An application will be created that will geo-verify and geo-code addresses and display them on a Google Map. In addition the data that was accumulated by the GPS tracker Service application from the "You have been Served" session will be displayed, to show where the tracked vehicles are and where they have been.

Even though the demo program will be written in Xbase++, the generic information about the Google API and Google Maps might also be useful to VFP developers.

You will learn:

  • The difference between location and address
  • The different formats and parts of addresses and locations
  • Why an address should be geo-verified and geo-coded
  • How to use the Google Geo-Coding API to verify an address and get GPS coordinates
  • How to display addresses and locations in your application using Google Maps

Prerequisites: Familiarity with the Xbase++ language. Some knowledge of HTML, XML, and Active-X components is a plus.

Web and MobileSolidifying Xbase++ Development

Presenter: Andreas Gehrs-Pahl
Level: Beginner, Intermediate
When: Friday, September 23, 10:00 - 11:15, Bisbee (R1)
Saturday, September 24, 2:00 - 3:15, Bisbee (R2)

In this session, you will learn how to create a simple Service application. The example program will be a vehicle tracking application that receives the location (and possibly other details) of a fleet of (imaginary) delivery trucks and records the received data in a PostgreSQL (PGSQL) database. In addition, a Service Controller application will be created to manage (install, start, pause, stop, and uninstall) the Services (the Vehicle Tracking Service as well as the PGSQL Database Server). This Controller application will also act as a dashboard for the Tracking Service and to manage the database on the backend. The Service will be listening for WebSocket connections and will save the received data (consisting of an ID, GPS coordinates, a Date/Time Stamp, etc.) in a PGSQL database. It will also respond to status requests from the Controller application.

You will learn:

  • What a Service application is and for what it could be used
  • What a Service Controller application is and why you might not even need one
  • How to create and install a Service application
  • How to control and debug your Service application
  • How you can use WebSockets to communicate with the IoT

Prerequisites: Familiarity with the Xbase++ language

Xbase++ 3.0

Xbase++ 3.0New to Xbase++

Presenter: Venelina E. Jordanova
Level: Beginner
When: Friday, September 23, 8:30 - 9:45, Arizona (R1)
Saturday, September 24, 11:30 - 12:45, Arizona (R2)

Do you love VFP? I do! And it is still the love of my life (together with my favorite sport, which I've been doing even longer). I'm an old fox-er and I still have many customers using my old VFP applications. Complaining about what Microsoft has done with our favorite language will not help. We have to go forward; we must look into the future. For a long time, I have looked at many different languages and technologies. In that list are both technologies from Microsoft and open-source technologies. Yes, they are used by many developers and they work. Yes, they have a wide range of implementation. However, I always come to a situation where I think “This could be solved better and faster in VFP.” I still hope to find my “future” technology—the one which will be at least as good as VFP was.

In this session, we will see the features that Xbase++ offers us from the point of view of a VFP developer. We will see what is similar and what is different to the language we are used to. We will have a look at the development environment and the tools for developers to speed up the development process. And last, but not least, we will see how VFP applications can have a new long life, thanks to Xbase++.

You will learn:

  • What is important to know about Xbase++
  • How to develop a new Xbase++ project: how to access data, how to build a user interface, where to write business logic code.
  • What tools help in the development process
  • How to give old applications new life using Xbase++

Prerequisites: None

Xbase++ 3.0New to Xbase++

Presenter: Steffen F. Pirsig
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Arizona (R1)
Saturday, September 24, 2:00 - 3:15, Arizona (R2)

This session is intended for Visual FoxPro developers who want to give their existing solutions a new future while avoiding the time-consuming and cost-prohibitive approach of rewriting their applications.

We will first develop a basic understanding of the modernization process, moving a Visual FoxPro solution to Xbase++, utilizing the transpiler. Based on a sample application developed with Visual FoxPro, we will learn how the original VFP source code gets transpiled into Xbase++ code. We will not only see the differences, but also the similarities in the code, which are fortunately in the majority.

However, source code is often very complex and developers sometimes use clever tricks when writing code or using language features. Consequently, there are some situations where the automated transpilation process may fail. We will look into problematic Visual FoxPro coding patterns and examine which features the transpiler provides to the Visual FoxPro developer for dealing with them.

We will close the session with a couple of scenarios, showing how to add value to a Visual FoxPro application after moving it over to the Xbase++ platform.

You will learn:

  • How to use the transpiler to transform Visual FoxPro PRG/VCX code into Xbase++ PRG code
  • The limitations of the transpiler and how to work around them
  • How to maintain VFP and Xbase++ applications using the same source code
  • About modernization project planning and best practices to succeed
  • How to add value to modernized VFP applications

Prerequisites: Visual FoxPro experience, multiple man years of investment into a VFP application, an open mind; thinking forward

Xbase++ 3.0New to Xbase++Solidifying Xbase++ Development

Presenter: Steffen F. Pirsig
Level: All levels
When: Saturday, September 24, 5:15 - 6:30, Arizona

In this session, we will talk about our vision for the years to come in terms of the features and technologies that we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends and developments which may affect your business model or create new opportunities. Of course, you will also learn where Alaska Software thinks Xbase++ needs to be improved or might have deficiencies. In short, if you are an Xbase++ developer or if you are considering moving to Xbase++ from another language, this session is your "moment of orientation" for the next 12 months and beyond.

You will learn:

  • About the future of Xbase++
  • What didn't go so well in the past
  • How to prepare for the future

Prerequisites: None

Platinum Sponsors