Southwest Fox 2015
Southwest Xbase++ 2015

October 15-18, 2015
SanTan Elegante Conference Center
Gilbert, AZ

Southwest Xbase++ 2015 Sessions

There are 6 conference tracks at Southwest Xbase++ 2015. "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.
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.
User Interface Development: This track covers the concepts and do's and don'ts in user interface design and implementation. Programming of rich desktop, Modern, web, and mobile UIs is covered in theory and practice.
Web and Mobile: The sessions in this track are aimed at developers who want to learn more about creating web and connected mobile applications.
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.

Keynote

Presenter: Bill Lace

When: Thursday, October 15, 7:00 - 8:30, Elliott/Flagstaff/Gilbert

U.S. and Western organizations have been under siege from cyber actors attempting everything from stealing intellectual property to exposing embarrassing information. Whether state-sponsored or loosely-knit, the actors can inflict damage physically, financially, and to reputation. The FBI and partner organizations investigate and work to counter efforts by these actors. Learn about these efforts and examples of the actors' tactics, techniques, and procedures from the FBI's Phoenix Division.

Pre-Conference

Pre-ConferenceSolidifying Xbase++ Development

Presenter: Toni M. Feltman
Level: Intermediate
When: Thursday, October 15, 9:00 - 12:00, Elliott

SQL Server Reporting Services (SSRS) is the Microsoft answer to reporting tools like Crystal Reports. The really nice thing about SSRS is that a version is now included with SQL Server Express which is FREE. Free is good, right? SQL Server Reporting Services is a quick and inexpensive way for developers to create and deploy reports when using SQL Server as the database engine. It is not difficult to use and is similar to other reporting tools that may already be in your toolbox. There are benefits to having a language-agnostic reporting tool such as the ability to share reports between different applications and platforms. It also makes really good sense to have a reporting tool tightly coupled with the data used for reporting.

Desktop applications need reporting. These applications are being extended through other technologies such as the web and mobile. Even if your development environment has its own reporting engine, SQL Server Reporting Services is a great way to get query and reporting capabilities that are available on the desktop, web and mobile device all from one code base.

You will learn:

  • Where to find and how to install SQL Server Express and SQL Server Reporting Services
  • How to use Report Designer
  • Ways to tie data to reports
  • About the native Report Output Options
  • Differences between SSRS "express" and paid versions
  • Ways to "centralize" reporting services to be used by more than one type of client
  • Ways to render SSRS reports in Visual FoxPro
  • Methods for integrating existing report technology with SSRS reporting to create a common look and feel between reports

Prerequisites: None

Pre-Conference

Presenter: Steffen F. Pirsig
Level: Beginner, Intermediate
When: Thursday, October 15, 1:00 - 4:00, Gilbert

Learn how to use SQL in your daily work. If you are using dbf/ntx/cdx tables as your data storage, this workshop is a great starting point into becoming more productive and less error prone when dealing with xbase data files. We will use the Xbase++ Workbench as our primary working environment to introduce SQL in a step-by-step manner. After that we will go into typical navigational coding patterns and will analyze how they can be optimized and made easier using the SQL SELECT statement. Of course we will also have a look into real world SQL statements which are so complex that using navigational commands and user defined functions makes more sense there. We will learn how SQL can help us become more productive and make our code more readable, but we will also learn about the boundaries of SQL. Finally we will use the PostgreSQL dbms as our new datastorage by migrating an existing dbf/cdx application and extending it using SQL.

You will learn:

  • To make use of SQL in your daily work
  • Understand when to use SQL or ISAM

Prerequisites: Xbase++, VisualFoxPro, Clipper or FoxPro experience

Pre-ConferenceNew to Xbase++

Presenters: Roger Donnay, Spyros Bobby Drakos
Level: All levels
When: Thursday, October 15, 9:00 - 12:00, Flagstaff
Thursday, October 15, 1:00 - 4:00, Flagstaff

Xbase++ has extended the capabilities of the language beyond what is available in Visual FoxPro. For Visual FoxPro developers who are new to Xbase++, there are new variable types and language concepts that can enhance the programmer's ability to create more powerful and more supportable applications.

The flexibility of the Xbase++ language is what makes it possible to create libraries of functions that can be used dynamically across multiple applications. The preprocessor, code blocks, ragged arrays and objects combine to give the programmer the ability to create their own language of commands and functions and all the advantages of a 4th generation language.

This session will also show how these language concepts can be employed to use 3rd party add-on products to Xbase++ that will integrate seamlessly into Xbase++ applications.

The Xbase++ language is incredibly robust and it can take years to understand most of its capabilities. However, when migrating Visual FoxPro applications, it is not necessary to know all of this. We have aided many Clipper and FoxPro developers with the migration process over the years and have found that only a basic introduction to a few concepts is necessary to get off to a great start.

If you are a Visual FoxPro programmer then the structure of the Xbase language, the FOXCDX database and the SQL language will be very familiar. This kind of compatibility is the reason that Xbase++ is the most natural migration path for Visual FoxPro developers. The methods employed to create GUI windows will be new to you, yet there are a variety of techniques available to ease this process.

This pre-conference session will introduce the Visual FoxPro programmer to the world of Xbase++ by using methods that will help attendees become quickly productive. Attendees will receive free software and libraries to aid in developing Xbase++ applications.

You will learn:

  • The Xbase++ Project file: creation of EXEs and DLLs
  • The compiler, linker and project builder
  • Console mode for quick migration of Fox 2.6 apps
  • INIT and EXIT procedures, DBESYS, APPSYS and MAIN
  • The DBE (Database engine)
  • LOCALS, STATICS, PRIVATE and PUBLIC variables
  • STATIC functions
  • New data types such as Code Blocks and Objects, also detached locals
  • The Reference operator, the Alias operator, and the Index operator
  • Multi-Dimensional arrays, including ragged arrays
  • The Pre-Processor and how to create your own commands
  • The Error Handler
  • Understanding the Xbase++ "Environment"
  • Xbase Parts for GUI elements
  • Multi-threading and workspaces
  • Class creation and usage, including methods and instance variables
  • ActiveX
  • The graphics engine and owner-drawing
  • The garbage collector

Prerequisites: Experience with Visual FoxPro or Clipper. Attendees should bring their laptops to the session.

New to Xbase++

New to Xbase++Solidifying Xbase++ Development

Presenter: Till Warweg
Level: Beginner, Intermediate
When: Friday, October 16, 8:30 - 9:45, Bisbee (R1)
Sunday, October 18, 10:00 - 11:15, Bisbee (R2)

Alaska Software's WebUI is a small but capable framework which abstracts us from many of the technical details that the development of dynamic browser-based applications would normally entail. Instead of coding Ajax calls or dealing with Javascript, the WebUI allows us to define behavior and work with remote data in a simple, declarative fashion.

This session will introduce you to the WebUI and will demonstrate its usage with both Compiled Xbase++ Pages (CXP), Alaska's powerful build and execution engine for web applications, and HttpEndpoints implemented using Xbase++ WebHandlers.

You will learn:

  • About the principles and ideas behind the WebUI
  • About typical programming problems in browser-based applications
  • How the Web UI can help you solve these problems without having to revert to using JavaScript code
  • About using the Web UI in environments with and without a web server

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

New to Xbase++Solidifying Xbase++ Development

Presenter: Till Warweg
Level: Beginner, Intermediate
When: Friday, October 16, 2:00 - 3:15, Arizona (R1)
Saturday, October 17, 10:00 - 11:15, Arizona (R2)

With Alaska's WebUI, desktop applications get access to a flexible HTML/CSS rendering engine for creating beautiful and dynamic UI elements. This session explains in great detail the two core technologies for using HTML and CSS in desktop applications.

The XbpHTMLStyle class allows you to enhance the appearance of your existing Xbase Parts with beautiful content easily created using HTML and CSS. With the XbpHTMLStyleClass, it is possible for the first time to create individual visual styles for your Xbase Parts without writing a single line of code. This also includes the different visual states. All of that is managed automatically for you via the styling Information in the CSS!

Creating your own forms and controls with the XbpHTMLWindow class is also discussed in this session. Reacting to events triggered by the user interacting with the visual presentation created using HTML and CSS, and synchronizing the display with the inner state of the form or control, are examples of topics that will be dealt with in this part of the session.

You will learn:

  • About technologies and use-cases for using HTML and CSS in desktop applications
  • About the protocols and interfaces for binding view and application logic
  • About the advantages of using the Web UI instead of normal (imperative) coding

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

New to Xbase++Solidifying Xbase++ Development

Presenters: Roger Donnay, Spyros Bobby Drakos
Level: All levels
When: Friday, October 16, 10:00 - 11:15, Arizona (R1)
Saturday, October 17, 2:00 - 3:15, Arizona (R2)

In this session, Roger Donnay and Bobby Drakos will host a joint tutorial on an alternate methodology for developing large and small applications much faster using linear programming techniques.

This 2-part series is especially targeted toward Xbase++ programmers who are coming from FoxPro or Clipper and are interested in a faster methodology for getting started with Xbase++.

Bobby will explain the issues and problems he encountered trying to understand the new paradigm of object oriented programming, event processing, UI (User Interface) design, screen management, and Xbase parts when attempting to move his application from a text-based, SDI (Single Document Interface) system written in Clipper, to a state-of-the-art MDI (Multi-Document Interface), multi-threaded, GUI application that would rival and eventually out-class his competition in the New York Taxi management industry.

Roger will explain the reasoning behind the development of this SGL (Structured GUI Language) methodology stemming from his encounters with the failed RAD (Rapid Application Development) of the 1990’s. He will also cover the reasons for its failure as well as cite a legal case involving RAD in which his testimony as an expert witness led the legal team to winning the case.

Attendees of this session will receive the entire eXpress++ 2.0 package including source code. This is a free license. There are no strings attached.

You will learn:

  • The difference between linear and lateral programming architecture
  • What tools are needed when working with Xbase++ for the first time
  • Advantages of the pre-processor and how it improves programming productiivity, code readability and software maintenance
  • When, why and how to apply code abstraction principles to the design of GUI windows
  • How to write code that is self-documenting
  • What is data-driven programming and why has it failed?
  • Where does your intellectual property reside in your application?
  • How to get started with your free license of eXpress++

Prerequisites: Attendance at the Pre-Conference session "Xbase++ Programming for FoxPro Developers" is highly recommended

New to Xbase++Solidifying Xbase++ Development

Presenters: Roger Donnay, Spyros Bobby Drakos
Level: All levels
When: Friday, October 16, 11:30 - 12:45, Arizona (R1)
Saturday, October 17, 3:30 - 4:45, Arizona (R2)

In this joint session, Roger Donnay and Bobby Drakos will present real world code examples as well as walk-throughs. The code examples will involve practical, generic re-usable techniques that can be used immediately. In addition, they will take real-time code requests from attendees.

Reading a book about programming techniques usually falls short trying to acclimate a developer to a new language. However, giving the developer tailor-made code examples concerning their own product induces a greater insight into understanding the language. This session also introduces attendees to xDot, an xBase++ interpreter and database manager.

Code examples will cover:

  • Simple to complex Say/Get entry screens
  • Drop boxes
  • Search boxes
  • Array browsers
  • Database browsers
  • Specific code requests from attendees

You will learn:

  • How to develop and use the SGL (Structured GUI Language) for screen design
  • How to apply code abstraction principles to the design of GUI windows
  • How to write code that is self-documenting
  • How to create your own custom SGL layer
  • How to create more complex applications using the eXpress++ SGL system
  • How to use the xDot interpreter

Prerequisites: Attendance at 'How do I get to "Hello World"?' session

New to Xbase++User Interface Development

Presenter: Spyros Bobby Drakos
Level: All levels
When: Saturday, October 17, 8:30 - 9:45, Arizona (R1)
Sunday, October 18, 10:00 - 11:15, Arizona (R2)

Xbase++ and Visual FoxPro are both powerful languages. They afford developers enough latitude to write complex and visually stimulating screen designs that are most part limited only by their imagination. However, the reasoning behind a complex screen design should not stem from our ability to creatively put objects together or mash color schemes, but rather from the correct usage of data placement within task oriented controls that guide logic flow to an intended goal. So understanding the relationships between controls and their interactivity with the user is well worth exploring. In addition, understanding the relationships between controls and the data they present also bears inspection.

Lastly, it should be said that the screen interface is an integral part of the user interface; some will argue that it is one and the same. However, there are times when a screen design will not follow the guidelines of UI design. How far should you stretch or ignore UI design guidelines is what we will cover in this session through real world examples of control design, task orientation, data presentation, and UI personalization.

You will learn:

  • About control customization
  • How to determine which control best suits a task
  • Dashboard design
  • Color scheming
  • Data grouping and presentation
  • Proper usage of browses
  • When to ignore the rules
  • When to change the way tasks are done

Prerequisites: Experience with XBase++ or Visual FoxPro code

New to Xbase++Solidifying Xbase++ Development

Presenter: Andreas Herdt
Level: Beginner, Intermediate
When: Friday, October 16, 8:30 - 9:45, Arizona (R1)
Saturday, October 17, 11:30 - 12:45, Arizona (R2)

The Xbase++ Workbench is the central place from which all aspects of the software development cycle with Xbase++ are managed. This session gives an overview of the central elements of the Workbench including project management, the source code editor, and the debugger. Hands-on examples will introduce you to the basic aspects of application development with the Workbench, including loading and compiling your project, getting help, and debugging your executable.

The second part of the session focuses on advanced features for increasing your daily productivity and for tailoring the Workbench to your individual workflow. Here, we'll see how external tools such as version control systems like CVS or Subversion can be integrated into the Workbench so they can be used directly from within your development environment. Topics such as using macros, templates and the Intellisense and Xmldoc features will also be discussed in this part of the session.

You will learn:

  • To manage projects using the workbench
  • To use the source code editor to become more productive
  • To customize the workbench by adding tools and macros
  • To love the workbench like we do :-)

Prerequisites: None

New to Xbase++Pre-Conference

Presenters: Roger Donnay, Spyros Bobby Drakos
Level: All levels
When: Thursday, October 15, 9:00 - 12:00, Flagstaff
Thursday, October 15, 1:00 - 4:00, Flagstaff

Xbase++ has extended the capabilities of the language beyond what is available in Visual FoxPro. For Visual FoxPro developers who are new to Xbase++, there are new variable types and language concepts that can enhance the programmer's ability to create more powerful and more supportable applications.

The flexibility of the Xbase++ language is what makes it possible to create libraries of functions that can be used dynamically across multiple applications. The preprocessor, code blocks, ragged arrays and objects combine to give the programmer the ability to create their own language of commands and functions and all the advantages of a 4th generation language.

This session will also show how these language concepts can be employed to use 3rd party add-on products to Xbase++ that will integrate seamlessly into Xbase++ applications.

The Xbase++ language is incredibly robust and it can take years to understand most of its capabilities. However, when migrating Visual FoxPro applications, it is not necessary to know all of this. We have aided many Clipper and FoxPro developers with the migration process over the years and have found that only a basic introduction to a few concepts is necessary to get off to a great start.

If you are a Visual FoxPro programmer then the structure of the Xbase language, the FOXCDX database and the SQL language will be very familiar. This kind of compatibility is the reason that Xbase++ is the most natural migration path for Visual FoxPro developers. The methods employed to create GUI windows will be new to you, yet there are a variety of techniques available to ease this process.

This pre-conference session will introduce the Visual FoxPro programmer to the world of Xbase++ by using methods that will help attendees become quickly productive. Attendees will receive free software and libraries to aid in developing Xbase++ applications.

You will learn:

  • The Xbase++ Project file: creation of EXEs and DLLs
  • The compiler, linker and project builder
  • Console mode for quick migration of Fox 2.6 apps
  • INIT and EXIT procedures, DBESYS, APPSYS and MAIN
  • The DBE (Database engine)
  • LOCALS, STATICS, PRIVATE and PUBLIC variables
  • STATIC functions
  • New data types such as Code Blocks and Objects, also detached locals
  • The Reference operator, the Alias operator, and the Index operator
  • Multi-Dimensional arrays, including ragged arrays
  • The Pre-Processor and how to create your own commands
  • The Error Handler
  • Understanding the Xbase++ "Environment"
  • Xbase Parts for GUI elements
  • Multi-threading and workspaces
  • Class creation and usage, including methods and instance variables
  • ActiveX
  • The graphics engine and owner-drawing
  • The garbage collector

Prerequisites: Experience with Visual FoxPro or Clipper. Attendees should bring their laptops to the session.

New to Xbase++Technology and Business for the Developer

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

In this session we will talk about our vision for the years to come in terms of features and technologies we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends as well as the technical/physical constraints which largely define our industry's direction and ability to innovate. Of course you will also learn where Alaska Software thinks Xbase++ is not good enough or has it deficiencies. In short, if you are an Xbase++ developer or are considering a move to Xbase++ from other language, this session is your "75 minutes of orientation".

You will learn:

  • About the future of Xbase++
  • How to prepare for the future

Prerequisites: None

Solidifying Xbase++ Development

Solidifying Xbase++ DevelopmentPre-Conference

Presenter: Toni M. Feltman
Level: Intermediate
When: Thursday, October 15, 9:00 - 12:00, Elliott

SQL Server Reporting Services (SSRS) is the Microsoft answer to reporting tools like Crystal Reports. The really nice thing about SSRS is that a version is now included with SQL Server Express which is FREE. Free is good, right? SQL Server Reporting Services is a quick and inexpensive way for developers to create and deploy reports when using SQL Server as the database engine. It is not difficult to use and is similar to other reporting tools that may already be in your toolbox. There are benefits to having a language-agnostic reporting tool such as the ability to share reports between different applications and platforms. It also makes really good sense to have a reporting tool tightly coupled with the data used for reporting.

Desktop applications need reporting. These applications are being extended through other technologies such as the web and mobile. Even if your development environment has its own reporting engine, SQL Server Reporting Services is a great way to get query and reporting capabilities that are available on the desktop, web and mobile device all from one code base.

You will learn:

  • Where to find and how to install SQL Server Express and SQL Server Reporting Services
  • How to use Report Designer
  • Ways to tie data to reports
  • About the native Report Output Options
  • Differences between SSRS "express" and paid versions
  • Ways to "centralize" reporting services to be used by more than one type of client
  • Ways to render SSRS reports in Visual FoxPro
  • Methods for integrating existing report technology with SSRS reporting to create a common look and feel between reports

Prerequisites: None

Solidifying Xbase++ DevelopmentNew to Xbase++

Presenter: Till Warweg
Level: Beginner, Intermediate
When: Friday, October 16, 8:30 - 9:45, Bisbee (R1)
Sunday, October 18, 10:00 - 11:15, Bisbee (R2)

Alaska Software's WebUI is a small but capable framework which abstracts us from many of the technical details that the development of dynamic browser-based applications would normally entail. Instead of coding Ajax calls or dealing with Javascript, the WebUI allows us to define behavior and work with remote data in a simple, declarative fashion.

This session will introduce you to the WebUI and will demonstrate its usage with both Compiled Xbase++ Pages (CXP), Alaska's powerful build and execution engine for web applications, and HttpEndpoints implemented using Xbase++ WebHandlers.

You will learn:

  • About the principles and ideas behind the WebUI
  • About typical programming problems in browser-based applications
  • How the Web UI can help you solve these problems without having to revert to using JavaScript code
  • About using the Web UI in environments with and without a web server

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

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Steffen F. Pirsig
Level: All levels
When: Friday, October 16, 10:00 - 11:15, Bisbee (R1)
Saturday, October 17, 11:30 - 12:45, Bisbee (R2)

Application development and maintenance has become a more complex task. One of the driving forces beyond the feature set is the number of different devices an application needs to support. Devices such as workstations on site or laptops of mobile workers, smartphones and tablets, and web-applications with the browsers as the device are more commonly used today.

N-Tier or multi-tier applications with their clear architecture and separation of different domains are a solid foundation to catch up with these different demands. In this session, we will apply the concepts of n-tier application design to Xbase++, see how they match with specific language features, and learn to design and write Xbase++ applications for testability, code-reuse and scalability.

Xbase++ 2.0 comes with all the necessary features to create mult-tier applications right out of the box, and in this session we will put those features together to create useful modern applications. You will get all the relevant details to adapt n-tier application concepts for your next project or to use the principles when writing new code for an existing application.

You will learn:

  • About the advantages of application architectures
  • To make your applications more robust
  • To have a clean separation between data access, business logic, and the UI tier
  • To be more productive and to design for change

Prerequisites: Knowledge of programming with Xbase++ or Visual FoxPro, basic knowledge of Object Oriented Programming

Solidifying Xbase++ DevelopmentNew to Xbase++

Presenter: Till Warweg
Level: Beginner, Intermediate
When: Friday, October 16, 2:00 - 3:15, Arizona (R1)
Saturday, October 17, 10:00 - 11:15, Arizona (R2)

With Alaska's WebUI, desktop applications get access to a flexible HTML/CSS rendering engine for creating beautiful and dynamic UI elements. This session explains in great detail the two core technologies for using HTML and CSS in desktop applications.

The XbpHTMLStyle class allows you to enhance the appearance of your existing Xbase Parts with beautiful content easily created using HTML and CSS. With the XbpHTMLStyleClass, it is possible for the first time to create individual visual styles for your Xbase Parts without writing a single line of code. This also includes the different visual states. All of that is managed automatically for you via the styling Information in the CSS!

Creating your own forms and controls with the XbpHTMLWindow class is also discussed in this session. Reacting to events triggered by the user interacting with the visual presentation created using HTML and CSS, and synchronizing the display with the inner state of the form or control, are examples of topics that will be dealt with in this part of the session.

You will learn:

  • About technologies and use-cases for using HTML and CSS in desktop applications
  • About the protocols and interfaces for binding view and application logic
  • About the advantages of using the Web UI instead of normal (imperative) coding

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

Solidifying Xbase++ Development

Presenter: Tamar E. Granor
Level: Intermediate, Advanced
When: Friday, October 16, 3:30 - 4:45, Flagstaff (R1)
Saturday, October 17, 3:30 - 4:45, Flagstaff (R2)

The SQL 2003 standard introduced the OVER keyword that lets you apply a function to a set of records. Introduced in SQL Server 2005, this capability was extended in SQL Server 2012. The functions allow you to rank records, aggregate them in a variety of ways, put data from multiple records into a single result record, and compute and use percentiles. The set of problems they solve range from removing exact duplicates to computing running totals and moving averages to comparing data from different periods to removing outliers.

In this session, we'll look at the OVER operator and the many functions you can use with it. We'll look at a variety of problems that can be solved using OVER.

You will learn:

  • How to find the top N records in a group
  • How to compute running totals and moving averages
  • How to compare data from multiple records side-by-side
  • How to divide records into n-tiles, including percentiles
  • How to search for records in a particular percentile

Prerequisites: Some familiarity with SQL

Solidifying Xbase++ DevelopmentNew to Xbase++

Presenters: Roger Donnay, Spyros Bobby Drakos
Level: All levels
When: Friday, October 16, 10:00 - 11:15, Arizona (R1)
Saturday, October 17, 2:00 - 3:15, Arizona (R2)

In this session, Roger Donnay and Bobby Drakos will host a joint tutorial on an alternate methodology for developing large and small applications much faster using linear programming techniques.

This 2-part series is especially targeted toward Xbase++ programmers who are coming from FoxPro or Clipper and are interested in a faster methodology for getting started with Xbase++.

Bobby will explain the issues and problems he encountered trying to understand the new paradigm of object oriented programming, event processing, UI (User Interface) design, screen management, and Xbase parts when attempting to move his application from a text-based, SDI (Single Document Interface) system written in Clipper, to a state-of-the-art MDI (Multi-Document Interface), multi-threaded, GUI application that would rival and eventually out-class his competition in the New York Taxi management industry.

Roger will explain the reasoning behind the development of this SGL (Structured GUI Language) methodology stemming from his encounters with the failed RAD (Rapid Application Development) of the 1990’s. He will also cover the reasons for its failure as well as cite a legal case involving RAD in which his testimony as an expert witness led the legal team to winning the case.

Attendees of this session will receive the entire eXpress++ 2.0 package including source code. This is a free license. There are no strings attached.

You will learn:

  • The difference between linear and lateral programming architecture
  • What tools are needed when working with Xbase++ for the first time
  • Advantages of the pre-processor and how it improves programming productiivity, code readability and software maintenance
  • When, why and how to apply code abstraction principles to the design of GUI windows
  • How to write code that is self-documenting
  • What is data-driven programming and why has it failed?
  • Where does your intellectual property reside in your application?
  • How to get started with your free license of eXpress++

Prerequisites: Attendance at the Pre-Conference session "Xbase++ Programming for FoxPro Developers" is highly recommended

Solidifying Xbase++ DevelopmentNew to Xbase++

Presenters: Roger Donnay, Spyros Bobby Drakos
Level: All levels
When: Friday, October 16, 11:30 - 12:45, Arizona (R1)
Saturday, October 17, 3:30 - 4:45, Arizona (R2)

In this joint session, Roger Donnay and Bobby Drakos will present real world code examples as well as walk-throughs. The code examples will involve practical, generic re-usable techniques that can be used immediately. In addition, they will take real-time code requests from attendees.

Reading a book about programming techniques usually falls short trying to acclimate a developer to a new language. However, giving the developer tailor-made code examples concerning their own product induces a greater insight into understanding the language. This session also introduces attendees to xDot, an xBase++ interpreter and database manager.

Code examples will cover:

  • Simple to complex Say/Get entry screens
  • Drop boxes
  • Search boxes
  • Array browsers
  • Database browsers
  • Specific code requests from attendees

You will learn:

  • How to develop and use the SGL (Structured GUI Language) for screen design
  • How to apply code abstraction principles to the design of GUI windows
  • How to write code that is self-documenting
  • How to create your own custom SGL layer
  • How to create more complex applications using the eXpress++ SGL system
  • How to use the xDot interpreter

Prerequisites: Attendance at 'How do I get to "Hello World"?' session

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Peter Alderliesten
Level: Intermediate
When: Saturday, October 17, 10:00 - 11:15, Bisbee (R1)
Sunday, October 18, 11:30 - 12:45, Bisbee (R2)

Last year, with Xbase++ 2.0 just out, I did a session on websockets. The possibility to keep developing Xbase++ applications, even Xbase++ front ends, that access the data over the internet using a full duplex channel was intriguing. It still is.

In that session, I showed a sample application that used the websocket classes and demonstrated the ease of using them. Since then, I started developing a prototype application as preparation for converting my live products to use websockets, upgrading my application to use a multi-tier architecture along the way. This session will be about the prototype and lessons learned.

If you weren't there last year, no problem. There were many things to learn and unlearn; we'll give it a fresh start.

You will learn:

  • How websockets work
  • How they can be integrated in your application
  • A bit of multi-tier architecture
  • About using threads and events

Prerequisites: Some familiarity with the Xbase++ language and object orientation

Solidifying Xbase++ Development

Presenter: Peter Alderliesten
Level: Beginner, Intermediate
When: Friday, October 16, 2:00 - 3:15, Bisbee (R1)
Saturday, October 17, 3:30 - 4:45, Bisbee (R2)

Part of the Xbase++ 2.0 installation are classes for sending and receiving mail. They weren't new, because they had already been present in the Asinet library. They still are, but the Asinet library is now part of the default installation of the professional subscription. The good news is that with Xbase++ 2.0, these classes support SSL without any special coding, tricks or installation of additional tools.

It's time to check out the library and see if there's (still) a need for a third party tool. Besides that, emailing doesn't need to be just about mailing and reading fancy text …

You will learn:

  • About sending and receiving email using the Xbase++ classes
  • How to compose an email
  • How to decompose an email
  • Tips and tricks on using email

Prerequisites: Familiarity with the Xbase++ language

Solidifying Xbase++ DevelopmentNew to Xbase++

Presenter: Andreas Herdt
Level: Beginner, Intermediate
When: Friday, October 16, 8:30 - 9:45, Arizona (R1)
Saturday, October 17, 11:30 - 12:45, Arizona (R2)

The Xbase++ Workbench is the central place from which all aspects of the software development cycle with Xbase++ are managed. This session gives an overview of the central elements of the Workbench including project management, the source code editor, and the debugger. Hands-on examples will introduce you to the basic aspects of application development with the Workbench, including loading and compiling your project, getting help, and debugging your executable.

The second part of the session focuses on advanced features for increasing your daily productivity and for tailoring the Workbench to your individual workflow. Here, we'll see how external tools such as version control systems like CVS or Subversion can be integrated into the Workbench so they can be used directly from within your development environment. Topics such as using macros, templates and the Intellisense and Xmldoc features will also be discussed in this part of the session.

You will learn:

  • To manage projects using the workbench
  • To use the source code editor to become more productive
  • To customize the workbench by adding tools and macros
  • To love the workbench like we do :-)

Prerequisites: None

User Interface Development

User Interface DevelopmentNew to Xbase++

Presenter: Spyros Bobby Drakos
Level: All levels
When: Saturday, October 17, 8:30 - 9:45, Arizona (R1)
Sunday, October 18, 10:00 - 11:15, Arizona (R2)

Xbase++ and Visual FoxPro are both powerful languages. They afford developers enough latitude to write complex and visually stimulating screen designs that are most part limited only by their imagination. However, the reasoning behind a complex screen design should not stem from our ability to creatively put objects together or mash color schemes, but rather from the correct usage of data placement within task oriented controls that guide logic flow to an intended goal. So understanding the relationships between controls and their interactivity with the user is well worth exploring. In addition, understanding the relationships between controls and the data they present also bears inspection.

Lastly, it should be said that the screen interface is an integral part of the user interface; some will argue that it is one and the same. However, there are times when a screen design will not follow the guidelines of UI design. How far should you stretch or ignore UI design guidelines is what we will cover in this session through real world examples of control design, task orientation, data presentation, and UI personalization.

You will learn:

  • About control customization
  • How to determine which control best suits a task
  • Dashboard design
  • Color scheming
  • Data grouping and presentation
  • Proper usage of browses
  • When to ignore the rules
  • When to change the way tasks are done

Prerequisites: Experience with XBase++ or Visual FoxPro code

Web and Mobile

Web and MobileSolidifying Xbase++ Development

Presenter: Steffen F. Pirsig
Level: All levels
When: Friday, October 16, 10:00 - 11:15, Bisbee (R1)
Saturday, October 17, 11:30 - 12:45, Bisbee (R2)

Application development and maintenance has become a more complex task. One of the driving forces beyond the feature set is the number of different devices an application needs to support. Devices such as workstations on site or laptops of mobile workers, smartphones and tablets, and web-applications with the browsers as the device are more commonly used today.

N-Tier or multi-tier applications with their clear architecture and separation of different domains are a solid foundation to catch up with these different demands. In this session, we will apply the concepts of n-tier application design to Xbase++, see how they match with specific language features, and learn to design and write Xbase++ applications for testability, code-reuse and scalability.

Xbase++ 2.0 comes with all the necessary features to create mult-tier applications right out of the box, and in this session we will put those features together to create useful modern applications. You will get all the relevant details to adapt n-tier application concepts for your next project or to use the principles when writing new code for an existing application.

You will learn:

  • About the advantages of application architectures
  • To make your applications more robust
  • To have a clean separation between data access, business logic, and the UI tier
  • To be more productive and to design for change

Prerequisites: Knowledge of programming with Xbase++ or Visual FoxPro, basic knowledge of Object Oriented Programming

Web and Mobile

Presenter: Phil Sherwood
Level: All levels
When: Saturday, October 17, 8:30 - 9:45, Flagstaff (R1)
Sunday, October 18, 10:00 - 11:15, Flagstaff (R2)

Almost all of us can write code. That’s a given. What do we do when we need to work on the web? Usually we switch to creating static brochure-type sites. It doesn’t have to be this way! Creating a dynamic eye-appealing web site is within your grasp. In this session we’ll look at web design, specifically the client-side, to see how good looking sites are created. We’ll look at the tools and techniques used in front-end design. We’ll also explore how you can get up to speed fairly quickly by looking at the training options available.

You will learn:

  • Why you need a dynamic web site
  • Why you need to use a CSS framework like Bootstrap or Foundation
  • How to get up to speed quickly in client-side programming using jQuery
  • A little about different training options

Prerequisites: Familiarity with HTML

Web and Mobile

Presenter: Roger Donnay
Level: All levels
When: Saturday, October 17, 8:30 - 9:45, Bisbee (R1)
Sunday, October 18, 8:30 - 9:45, Arizona (R2)

Xbase++ 2.0 has greatly expanded the product's internet capabilities and has introduced some exciting new technologies as well as improving on older technologies.This session will introduce users to techniques which make it easier than ever to open your existing application data and reports to users via the web.

Compiled Xbase++ Pages (<CXP/>) is a build and execution infrastructure that allows programmers to create powerful dynamic web sites. Xbase++ 2.0 uses a new Socket layer, WebHandler() and HttpEndPoint() classes to provide the functionality for the creation of web servers and HTTP connections.

You will learn:

  • Why and how to use CXP for web page development
  • How to install Xbase++ for CXP
  • How to install and configure Apache or IIS for CXP
  • How to create your own Web Server
  • The basics of CXP programming
  • The basics of the web server and web client (browser) relationship
  • How to set up an Xbase++ environment for use with CXP
  • How to create CXP programs that deliver dynamic HTML and Javascript
  • How to use your own function libraries with CXP
  • How CXP compares to scripting languages such as PHP or ASP
  • CXP error handling
  • How to create a web server using HttpEndPoint() and WebHandler()
  • How to send email to a secure SMTP server
  • How to use WebSocketClient() and WebSocketHandler() to send messages between a client and server application

Prerequisites: Some experience with HTML is desirable but not required

Web and MobileSolidifying Xbase++ Development

Presenter: Peter Alderliesten
Level: Intermediate
When: Saturday, October 17, 10:00 - 11:15, Bisbee (R1)
Sunday, October 18, 11:30 - 12:45, Bisbee (R2)

Last year, with Xbase++ 2.0 just out, I did a session on websockets. The possibility to keep developing Xbase++ applications, even Xbase++ front ends, that access the data over the internet using a full duplex channel was intriguing. It still is.

In that session, I showed a sample application that used the websocket classes and demonstrated the ease of using them. Since then, I started developing a prototype application as preparation for converting my live products to use websockets, upgrading my application to use a multi-tier architecture along the way. This session will be about the prototype and lessons learned.

If you weren't there last year, no problem. There were many things to learn and unlearn; we'll give it a fresh start.

You will learn:

  • How websockets work
  • How they can be integrated in your application
  • A bit of multi-tier architecture
  • About using threads and events

Prerequisites: Some familiarity with the Xbase++ language and object orientation

Technology and Business for the Developer

Technology and Business for the Developer

Presenter: Toni M. Feltman
Level: All levels
When: Friday, October 16, 3:30 - 4:45, Bisbee (R1)
Saturday, October 17, 2:00 - 3:15, Elliott (R2)

It is no surprise that as seniority increases, the draw on experiences over abilities tends to also increase. There is a natural progression in any career to move from a full-time doer to a manager over time. When working in the technical fields, how do you best handle this progression? It is very unlikely that any one of us will go to sleep one night as a full-time coder and wake up the next morning as a manager with no programming duties. There are so many facets to management from the basic HR duties to motivating employees to work above and beyond their capabilities. It is an extremely difficult and rewarding role to fill.

This session is intended to be a fully interactive session led by the speaker but controlled by the feedback of the audience. Be sure to bring your best ideas and stories to this session.

You will learn:

  • What makes a good manager
  • The roles that a manger might have to fill and why
  • About team size and how the roles differ based on the size
  • About non-traditional work environments and how they effect management and team dynamics: telecommuting managers, telecommuting workers, teams across time zones
  • About some tools that managers can use for measuring success

Prerequisites: None

Technology and Business for the Developer

Presenter: Rick Borup
Level: All levels
When: Friday, October 16, 11:30 - 12:45, Elliott (R1)
Sunday, October 18, 8:30 - 9:45, Bisbee (R2)

Data visualization is a powerful tool for turning raw data into useful information. Because vision is the dominant human perception, an effective visual presentation of data can quickly convey meaning that might otherwise be obscured or difficult to ferret out. Data visualization is much more than just pie charts and bar graphs, and is just as relevant for small data as it is for big data. Come to this session to learn tools and techniques for turning the data from your applications into meaningful information for your users.

You will learn:

  • About human perception and why vision trumps the other senses
  • Why visual data is more effective than raw numbers
  • About the importance of seeing data from the user’s point of view
  • How to move beyond simple charts and graphs
  • About tools and techniques for presenting data visually
  • How to lie with graphics, and how to tell when you're being lied to

Prerequisites: None

Technology and Business for the Developer

Presenter: Phil Sherwood
Level: All levels
When: Friday, October 16, 11:30 - 12:45, Bisbee (R1)
Saturday, October 17, 11:30 - 12:45, Flagstaff (R2)

What does it take to market and sell your software? Do the old methods still work? Yes…and, NO! The landscape has changed in marketing and sales. You used to be the gate-keeper of the information; now the potential customer is in charge. You used to have to sell your application to a potential client; now they usually know what they want when they contact you. We’ll look at what you need to be doing to attract potential customers and how to provide them with useful information that tilts the discussion in your favor.

You will learn:

  • How marketing and sales has changed
  • How to get found by potential customers
  • What types of content you need to be providing to help market your applications
  • How to keep track of who is looking at your applications and how to use that information

Prerequisites: An interest in marketing and sales

Technology and Business for the Developer

Presenter: Andreas Herdt
Level: Beginner, Intermediate
When: Friday, October 16, 3:30 - 4:45, Arizona (R1)
Sunday, October 18, 11:30 - 12:45, Arizona (R2)

Having information about your application's current state and that of the environment it runs in often determines success or failure. Which DLLs are being loaded from where into your application's process? Which drives are currently plugged into the computer? The answers to questions such as these often are the key to analyzing application startup, stability and performance.

In this session, we'll take a close look at third-party performance tools such as the Process Monitor and the Dependency Walker which provide you with a host of information about your application and the resources it uses. In addition, the Windows Management Instrumentation (WMI) is also introduced as a technology for getting detailed information from the operating system's own internal databases.

You will learn:

  • About detecting file and registry access Problems
  • About using Windows Management Instrumentation from within your Xbase++ applications
  • About using the Process Monitor and Dependency Walker to analyze process initialization and application startup
  • About the resources being used by your process

Prerequisites: Basic knowledge of programming with Xbase++, Visual FoxPro or Clipper

Technology and Business for the DeveloperNew to Xbase++

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

In this session we will talk about our vision for the years to come in terms of features and technologies we plan to incorporate into future Xbase++ updates/releases. We will have a look at industry trends as well as the technical/physical constraints which largely define our industry's direction and ability to innovate. Of course you will also learn where Alaska Software thinks Xbase++ is not good enough or has it deficiencies. In short, if you are an Xbase++ developer or are considering a move to Xbase++ from other language, this session is your "75 minutes of orientation".

You will learn:

  • About the future of Xbase++
  • How to prepare for the future

Prerequisites: None

Platinum Sponsors