Platinum Sponsors

White Light Computing

Stonefield Query

Tomorrow's Solutions

Alaska Software

Gold Sponsors

Geeks and Gurus

V & U

Foxpert

DS-Datasoft

FoxRockX

ERW

FoxFire!

DBI Technologies

Visual Extend

Southwest Xbase++ 2013 Sessions

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

Pre-Conference: These half-day sessions are offered on Thursday before the main conference starts, and are available for an additional cost; see the Register page for details.
Beyond Xbase++ 2.0: Covered in this track are topics which go beyond the current Xbase++ release. We will have an in-depth look into the design rationale of Xbase++ 3.0 alias Project PolarFox. Topics such as Unicode, exact numerics, WebUI and Visual FoxPro migration/compatibility are examples of the subjects you'll hear about. There are also sessions covering first-hand experiences converting a VFP application to PolarFox/Xbase++. This track should be of interest to all Xbase++ and Visual FoxPro developers.
Solidifying Xbase++ Development: The sessions in this track cover subjects ranging from fundamentals for beginners, how-to's and best practices to specific issues for the advanced Xbase++ developer.
It is All About Data: The sessions in this track deal with topics related to managing data in Xbase++ and VFP applications. Regardless of whether you're using SQL to access data on a database server or navigational ISAM, this track has sessions with information you'll not want to miss. Upsizing DBF-based applications to PostgreSQL, using SQL on remote, local or even native runtime data types and finally, a comparison of the various methods for accessing, storing and deploying data are exemplary topics covered in this track.
Technology and Business for the Developer: This track looks at tools, technologies and techniques to make life as a developer easier and more productive.
Web and Mobile: The sessions in this track are aimed at developers who want to learn more about creating web and connected mobile applications with Xbase++. Hands-on sessions along with seminars providing background information give attendees a good idea about what user interfaces and applications created using HTML5, CSS and Javascript are all about.

Keynote

In Code We TrustChristof Wollenhaupt

Presenter: Christof Wollenhaupt

Software is the foundation of today's world. The future of software development is bright; or is it? Christof will challenge everything you believed to be true about software development. And then you'll get to decide...

Pre-Conference

eXpress++ Workshop Part 1Roger Donnay

Pre-Conference

Presenter: Roger Donnay
Level: Intermediate, Advanced
When: Thursday, October 17, 9:00 - 12:00, Elliott

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

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

  • Sub-Classing: This is the most important new enhancement to eXpress++ in the past 4 years. It allows power users to develop new strategies and improve their end product with no structural changes to existing code.
  • Owner-drawing: This important capability of Xbase++ has been integrated into eXpress++ in ways that give your application an "instant" face-lift with only a few lines of code.
  • XCodeJock: eXpress++ now includes a simple command interface to the popular suite of CodeJock ActiveX controls.
  • DCRMChart: eXpress++ now includes a simple command interface to the popular RMChart graphing system.
  • Record Objects: Improving how data is scattered and gathered.
  • Debugging: Using WTF and DC_Dot() to improve development time.
  • Xbase++ 2.0: A discussion of how eXpress++ will move forward with Xbase++ 2.0 and support the plethora of new 2.0 features.

See some customer applications that have been written using the eXpress++ method and get some good ideas for your own application.

  • Medallion: An application for management of New York City Taxi cabs.
  • PTI-Portal: An application that interfaces and controls the most sensitive metal detector in the world. Used in gold mines and jewelry operations.
  • AWolf: An enterprise-level application for the automobile transmission remanufacturing and sales industry.

You will learn:

  • How to improve the performance of eXpress++ applications
  • How to improve the functionality of eXpress++ applications
  • How to improve the visual appeal of eXpress++ applications
  • How to improve programmer productivity

Prerequisites: Experience developing GUI applications using eXpress++

eXpress++ Workshop Part 2Roger Donnay

Pre-Conference

Presenter: Roger Donnay
Level: Intermediate, Advanced
When: Thursday, October 17, 1:00 - 4:00, Elliott

This is part 2 of the eXpress++ workshop

HTML5 is the Future of the WebDavid Giard

Pre-ConferenceWeb and Mobile

Presenter: David Giard
Level: Intermediate
When: Thursday, October 17, 9:00 - 12:00, Gilbert

The next version of tools for the web will include more semantic markup, powerful APIs for JavaScript, and better native styling. In this presentation, I will show the important features of HTML5 and CSS3 and how you can use them today in your web applications.

I will demonstrate code that can be used today in browsers that support HTML5 features and that can be handled gracefully by browsers that do not support these features.

You will learn:

  • The goals of HTML5
  • New tags and attributes
  • CSS3 features
  • What new Javascript APIs are available

Prerequisites: HTML

Beyond Xbase++ 2.0

Converting a Real VFP App to Xbase++Eric Lendvai

Beyond Xbase++ 2.0Moving VFP Applications Forward

Presenter: Eric Lendvai
Level: Intermediate, Advanced
When: Friday, October 18, 2:00 - 3:15, Bisbee (R1)
Saturday, October 19, 3:30 - 4:45, Bisbee (R2)

Currently, I am working towards converting one of my VFP Web applications to xBase++ using the new transpiler.

During this session, I will take a smaller-scale application and exemplify my strategy for conversion while still maintaining the VFP version of the commercial app. I will demonstrate how the conversion of more than 900,000 lines of code is attainable, including refactoring access to more than 500 tables and 2300 web pages. Since xBase++ has a new web engine that can run on IIS and Apache, you will see how to run under this state-of-the-art environment. I'll also review how to access DBF, PostgreSQL or MySQL natively from within xBase++.

You will learn:

  • How to run the xBase++ transpiler
  • How to prepare your app to be easier to convert to xBase++
  • About the new native web adapter

Prerequisites: VFP 9. Knowledge of HTML, JavaScript, jQuery, PostgreSQL, MySQL will help.

Introducing Xbase++ 3.0 (alias Project PolarFox)Steffen F. Pirsig

Beyond Xbase++ 2.0Moving VFP Applications Forward

Presenter: Steffen F. Pirsig
Level: Advanced
When: Saturday, October 19, 2:00 - 3:15, Arizona (R1)
Sunday, October 20, 11:30 - 12:45, Arizona (R2)

PolarFox is the codename of a project at Alaska Software that is not just the next-generation Visual FoxPro. In fact, PolarFox is Xbase++ 3.0 with a clear focus on user interface and visual design capabilities coupled with features such as int64, decimals and Unicode-support. Also covered is the ability of Polarfox to migrate and extend existing Visual FoxPro 9 applications while still being 100% compatible to any existing Xbase++ 1.x/2.x based application.

This session is the first comprehensive look into what will be new with Xbase++ 3.0 - an absolute must see.

You will learn:

  • What you can expect from Xbase++ 3.0
  • What precision arithmetic and Unicode-support means
  • How we achieved Visual FoxPro compatibility without compromising backward compatibility

Prerequisites: Knowledge about Xbase++ or Visual FoxPro

Project PolarFox: Sneak PreviewSteffen F. Pirsig

Beyond Xbase++ 2.0Moving VFP Applications Forward

Presenter: Steffen F. Pirsig
Level: Advanced
When: Saturday, October 19, 5:15 - 6:30, Bisbee

This session is about the PolarFox project and the current state of affairs with regards to Visual FoxPro compatiblity. Based on existing Visual FoxPro 9 code samples, we will examine how PolarFox deals with specific features and concepts of the Visual FoxPro language. By attending this session, Visual FoxPro developers will get essential knowledge required to prepare themselves for the move.

You will learn:

  • How PolarFox handles Visual FoxPro source code
  • How VCX, SCX and MNX files are transformed into Xbase++ XML files and source code

Prerequisites: Knowledge about Visual FoxPro

Xbase++ from a VFP Developers PerspectiveEric Lendvai

Beyond Xbase++ 2.0Moving VFP Applications Forward

Presenter: Eric Lendvai
Level: Intermediate, Advanced
When: Friday, October 18, 8:30 - 9:45, Bisbee (R1)
Saturday, October 19, 11:30 - 12:45, Bisbee (R2)

Since March of 2007, a multitude of developers have contemplated and speculated over what would happen to VFP. A majority of us, long time FoxPro developers, have invested over two decades in learning and utilizing FoxPro and Visual FoxPro for a variety of purposes. Many new languages have appeared on the market, but none have truly delivered a genuine 4GL language.

At the last Southwest Fox conference, I purposely attended most of the xBase ++ presentations to see if there would finally be a viable future for VFP developers, and what a surprise it was! Not only did I see a future for VFP developers, but I also discovered features that we could only dream about in years past.

Due to the enhanced architecture of xBase++, it is a true 4GL compiler, and while there are only slight differences in the syntax, it provides a lot of new options. In order to take full advantage of xBase++, it is a necessity for VFP developers to re-think some of the existing development patterns. It is best to think of xBase++ as an enhanced version of VFP that incorporates many features from other modern languages. As a true compiler, you get a substantially higher speed than before, in addition to code protection!

You will learn:

  • What the current xBase++ can already provide for a VFP developer.
  • About the Differences in creating and using Objects and Classes
  • The Data Engine, the limitless options of mixing DBF, arrays, objects, and any back-ends
  • How to use a Compiler while still using macros and evals.
  • Many Tips and Tricks that will make it easier to move to xBase++

Prerequisites: Intermediate to Advanced knowledge of VFP.

Solidifying Xbase++ Development

Creating Graphs and Charts using RMChartRoger Donnay

Solidifying Xbase++ Development

Presenter: Roger Donnay
Level: Intermediate, Advanced
When: Friday, October 18, 10:00 - 11:15, Arizona

Xbase++ 1.9 and 2.0 have full support for Active-X. This capability can be used to produce graphs and charts using a FREE Active-X control named RMChart.

End user application screens and reports can be given new life and improved visual appeal with only a few hours or a few days of work using this robust graphing control.

This seminar discusses the basics of charting and graphing such as:

  • Non Grid-Based Charts
  • Pie Charts
  • Donut Charts
  • Pyramid Charts
  • Grid-Based Chartsv
  • Single Bars
  • Double Bars
  • Stacked Bars
  • Floating Bars
  • Simple Line Graphs
  • Indexed Line Graphs
  • Bars and Lines

Included in this seminar is the RMChart Control and documentation and several complete new classes with source code and sample programs that are ready to be used in your Xbase++ or eXpress++ programs with no other software required.

You will learn:

  • How to create a charting/graphing class based on RMChart
  • How to embed charts and graphs in Xbase Parts objects such as dialogs, statics and tab pages
  • How to embed charts and graphs in Xbase++ Reports using XbpPrinter()
  • How to embed charts and graphs in eXpress++ Reports using DCPRINT
  • How to embed charts and graphs in eXpress++ dialogs using DCRMCHART

Prerequisites: Experience creating GUI applications with Xbase++ or eXpress++. Experience creating reports with Xbase++ or eXpress++.

Creating Rich Desktop Applications with Xbase++ 2.0Till Warweg

Solidifying Xbase++ Development

Presenter: Till Warweg
Level: Beginner, Intermediate
When: Saturday, October 19, 10:00 - 11:15, Bisbee (R1)
Sunday, October 20, 10:00 - 11:15, Bisbee (R2)

Xbase++ 2.0 comes with a number of new features for creating rich and appealing desktop applications. For example, forms and controls can be created based on HTML and CSS using the Web UI feature. Also available are features such as the new Layout Manager class which ease developing of forms and controls for desktop applications.

You will learn:

  • About the Web UI as a framework for integrating HTML/CSS-based content in forms and controls
  • About new features for developing desktop applications

Prerequisites: Basic knowledge of programming with Xbase++

Mastering Dialog Windows in Xbase++Clayton Jones

Solidifying Xbase++ Development

Presenter: Clayton Jones
Level: Beginner
When: Sunday, October 20, 8:30 - 9:45, Arizona

Xbase++ distills the complexity of the Windows API for dialogs down to several basic parent/owner configurations and some optional attributes. This makes it easy to create many different kinds of interfaces in our applications. As a result, however, Xbase++ has a unique nomenclature and set of guidelines for controlling the behavior of dialog windows. Developers need to have a thorough understanding of this material in order to quickly construct the interfaces they need and have them behave properly.

This session will cover the material in a step-by-step manner, presenting source code examples, on-screen demonstrations of each type of window (and what happens when they are improperly done), and examples of actual use in real-world applications.

This is essential knowledge for a beginner or anyone coming into Xbase++ from another language. Without it, one can spend hours groping in the dark and wondering why things don't work properly. With it, we can get exactly what we need and have it work properly the first time. Once this material is mastered, dialog window architecture becomes a minor issue, and not an obstacle to productivity.

You will learn:

  • The purposes and guidelines for using the functions SetAppWindow() and AppDesktop()
  • The significance of the Application Desktop window
  • The different kinds of Top-Level windows and their uses
  • The correct configuration for Child windows and techniques for layered Child windows
  • The correct configuration for Modal windows and techniques for layered Modals
  • The importance of event loops in dialog windows
  • How to apply these principles in modular applications with multiple Top-Level windows

Prerequisites: This session is an extension of the Tips, Tricks and Secrets for Xbase++ Programming session, but they may be attended in any order.

Owner DrawingRoger Donnay

Solidifying Xbase++ Development

Presenter: Roger Donnay
Level: Intermediate, Advanced
When: Saturday, October 19, 3:30 - 4:45, Arizona

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

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

This seminar discusses the basics of owner-drawing such as:

  • The Xbase Parts classes that support owner-drawing
  • The Xbase++ graphics engine
  • The Draw() method

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

  • A new pushbutton class that provides the following features:
    • Radiused corners
    • Gradient options
    • Multiple bitmaps, icons and caption strings
    • A drop-down menu option
    • MouseOver effects, such as change size, color, font and sounds
    • Color options for normal, mouse-over, clicked and disabled states
    • Shadowing of button and captions
    • Bitmap tiling
    • Caption and bitmap alignment options
    • Focus rectangle options
    • Border color
    • Transparency
    • Can function like a set of Radio Buttons
  • A Custom MessageBox class that has better visual appear than MsgBox().
  • Improving the look of XbpBrowse() class browses with Xbase++ owner-drawing.

You will learn:

  • How to create a subclass to customize drawing of Xbase Parts
  • How to use the Graphics engine functions
  • How to create your own class of Static or Pushbutton
  • How to use your new class in an Xbase++ application

Prerequisites: Experience developing Xbase++ GUI applications.

Painting in the Presentation SpaceMarcus Herz

Solidifying Xbase++ Development

Presenter: Marcus Herz
Level: Advanced
When: Saturday, October 19, 8:30 - 9:45, Arizona

The session will describe the class xbpPresSpace, what it's for and all the functions based on it. A PresSpace is used for graphic output either on the screen or any other device (printer). Samples will demonstrate some possibilities and solutions.

You will learn:

  • Use of the xbpPresSpace() class
  • Printing with xbpPresSpace()
  • Drawing with gra functions

Prerequisites: None

Real-time Web Applications Using WebSocketsAndreas Herdt

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Andreas Herdt
Level: Advanced
When: Saturday, October 19, 10:00 - 11:15, Arizona

The term "real-time" in the context of connected applications simply describes the fact that clients no longer need to poll for information. Instead, the information is pushed to the clients, either from a server or from another client. The benefit of this approach is faster flow of information with lesser cpu and network workloads.

Real-time applications employing instant discovery and delivery of data are rapidly becoming mainstream. WebSockets, SocketIO and SignalR are the technologies which make this possible, and which are seen as the future in client/client and client/server communications in web and desktop applications.

Xbase++ 2.0 supports WebSocket client and server communication out of the box. With a few lines of code, Xbase++ 2.0 applications can interconnect with each other, push data to the end-user or to a mobile application.

This session presents a number of use-cases which show how WebSockets can be utilized using Xbase++ 2.0.

You will learn:

  • What WebSockets are
  • How to use WebSockets on the client and server
  • How to avoid lost updates using real-time communication
  • How to push data to a web site
  • When to use WebSockets and when to use Ajax

Prerequisites: Basic knowledge about TCP/IP

SQL for RunawaysSteffen F. Pirsig

Solidifying Xbase++ DevelopmentIt is All About Data

Presenter: Steffen F. Pirsig
Level: Advanced
When: Friday, October 18, 11:30 - 12:45, Bisbee (R1)
Saturday, October 19, 8:30 - 9:45, Bisbee (R2)

SQL means Structured Query Language and is a special-purpose programming language designed for managing data. At least normally! But Xbase++ 2.0 integrates SQL into its powerful general-purpose 4GL language. Therefore, Xbase++ 2.0 delivers the best of both worlds combined into a powerful and flexible data access and data manipulation language. In this session attendees will learn to leverage SQL in the context of their existing or new Xbase++ applications.

However, there always is a drawback and this is also true for SQL. Consequently, this session is also about the limitations of SQL and how the Xbase++ navigational coding style can help to work around those limitations.

You will learn:

  • SQL vs. ISAM or relational vs. navigational
  • SQL basics
  • Where SQL might help and where it might become cumbersome

Prerequisites: None

Tips, Tricks and Secrets for Xbase++ ProgrammingClayton Jones

Solidifying Xbase++ Development

Presenter: Clayton Jones
Level: Beginner
When: Saturday, October 19, 11:30 - 12:45, Arizona

Xbase++ is a powerful and flexible programming language, and like every language, it has its unique strengths, weaknesses, and ways of doing things. This session will look beneath the surface at some of the aspects of Xbase++ programming that developers must deal with on a regular basis, but which may be a mystery to beginners or people coming into Xbase++ from another language. Topics will include multithreading, codeblocks, event loops, the PostAppEvent() function, the iif() function, file-wide preprocessor defines, overloading methods in subclasses, the radio-button mystery, and extending the menu and print systems. If time allows there will be a Q & A session at the end.

For anyone new to the language this session should significantly smooth the learning curve and shorten the time it takes to become productive. It is also recommended for anyone who wants to know more about the language before deciding to make the leap.

You will learn:

  • The How and Why of using multithreading with dialog windows
  • Advantages of using a Launchpad function
  • Event Loops: how they work, when we do and don't need them
  • Tips for using the PostAppEvent() function
  • Tips for using and evaluating codeblocks
  • Tips for using the iif() function
  • How to use file-wide preprocessor #define statements
  • About the radio-button mystery and its workaround
  • Tips for overloading methods in subclasses
  • Limitations of the Xbase++ menu system and how it can be extended
  • Tips for using and extending the Xbase++ printing system

Prerequisites: This session is an extension of the Mastering Dialog Windows in Xbase++ session, but they may be attended in any order.

Using HTML5 & CSS in Desktop and Web ApplicationsTill Warweg

Solidifying Xbase++ DevelopmentWeb and Mobile

Presenter: Till Warweg
Level: Beginner, Intermediate
When: Friday, October 18, 8:30 - 9:45, Arizona

Regardless of whether you need a web front-end for usage in a (mobile) browser, or you need to display complex content on the desktop, using HTML and CSS as the design language for your forms gives you access to a flexible layout engine supporting a host of styles and controls. This session introduces HTML and CSS as a presentation technology and gives examples for utilizing it in the browser and on the desktop.

You will learn:

  • About HTML and CSS as a design model for abstracting the representation/UI from the actual data
  • How to use HTML/CSS to render styled content in web and desktop applications
  • How to use CSS to create flexible layouts for screen and print

Prerequisites: Basic knowledge of programming with Xbase++

Using SQL Where You Never Thought it Would Make SenseSteffen F. Pirsig

Solidifying Xbase++ DevelopmentIt is All About Data

Presenter: Steffen F. Pirsig
Level: Advanced
When: Friday, October 18, 5:15 - 6:30, Arizona

With Xbase++ 2.0 SQL became an important topic. The new key feature is seamlessly and fully integrated into the Xbase++ language. But it wouldn't be Xbase++ if the integration only meant supporting the Structured Query Language (SQL) for SQL servers. In the context of Xbase++ 2.0, SQL is much more! In addition to tables/work areas, SQL can now be used on arrays and objects, or even on a combination of the two! Of course, this works in both directions: on the input and output side of your SELECT/INSERT/UPDATE statements.

The goal of this session is to establish SQL as an everyday solution for Xbase++ developers, similar to what FOR/NEXT or DO/WHILE already is.

You will learn:

  • To use SQL with objects and arrays
  • To see SQL as a programming style/pattern vs. a programming language
  • To make use of SQL in unexpected areas

Prerequisites: None

Working with Xbase++ Part 1Dieter Stelzner

Solidifying Xbase++ Development

Presenter: Dieter Stelzner
Level: Advanced
When: Friday, October 18, 3:30 - 4:45, Bisbee

Part 1 of this two-part workshop will introduce the Xbase++ environment, and describe the different kinds of Xbase applications and how to build them.

It will include the basics of programming with Xbase++, includintg type and visibility of variables, classes, codeblocks, and threads. Samples for the attendees to work with will be provided.

You will learn:

  • About the environment of Xbase++
  • How to build different kinds of applications
  • About the type and visibility of variables, classes
  • About codeblocks and threads

Prerequisites: Computers with installed Xbase++

Working with Xbase++ Part 2Dieter Stelzner

Solidifying Xbase++ Development

Presenter: Dieter Stelzner
Level: Advanced
When: Friday, October 18, 5:15 - 6:30, Bisbee

In part 2 of this two-part workshop, we'll cover a number of more advanced topics, including how to manage event handling, how to handle the opening of data tables (thread based, session based), building a dialog-based application, and building a console application.

You will learn:

  • About event handling
  • How to open data tables (thread / session based)
  • How to build dialog based applications
  • How to build console applications

Prerequisites: The attendee should have joined the first workshop

Xbase++ and ActiveXMarcus Herz

Solidifying Xbase++ Development

Presenter: Marcus Herz
Level: Advanced
When: Friday, October 18, 11:30 - 12:45, Arizona

The sessions will show basic implementations of ActiveX elements using the Xbase++ XbpActiveXControl() class. This will include embedding ActiveX GUI elements in Xbase dialogs as well as managing data exchange or calling ActiveX methods. It will clarify where properties are defined: Xbase++ or ActiveX control. Samples will show how to use Excel, Word, Outlook and others.

You will learn:

  • Implementation of ActiveX controls using the Xbase++ XbpActiveXControl() class
  • Communicating with Excel; data export and import
  • Sending emails with Outlook
  • Creating letters with Word

Prerequisites: None

It is All About Data

SQL for RunawaysSteffen F. Pirsig

It is All About DataSolidifying Xbase++ Development

Presenter: Steffen F. Pirsig
Level: Advanced
When: Friday, October 18, 11:30 - 12:45, Bisbee (R1)
Saturday, October 19, 8:30 - 9:45, Bisbee (R2)

SQL means Structured Query Language and is a special-purpose programming language designed for managing data. At least normally! But Xbase++ 2.0 integrates SQL into its powerful general-purpose 4GL language. Therefore, Xbase++ 2.0 delivers the best of both worlds combined into a powerful and flexible data access and data manipulation language. In this session attendees will learn to leverage SQL in the context of their existing or new Xbase++ applications.

However, there always is a drawback and this is also true for SQL. Consequently, this session is also about the limitations of SQL and how the Xbase++ navigational coding style can help to work around those limitations.

You will learn:

  • SQL vs. ISAM or relational vs. navigational
  • SQL basics
  • Where SQL might help and where it might become cumbersome

Prerequisites: None

Using SQL Where You Never Thought it Would Make SenseSteffen F. Pirsig

It is All About DataSolidifying Xbase++ Development

Presenter: Steffen F. Pirsig
Level: Advanced
When: Friday, October 18, 5:15 - 6:30, Arizona

With Xbase++ 2.0 SQL became an important topic. The new key feature is seamlessly and fully integrated into the Xbase++ language. But it wouldn't be Xbase++ if the integration only meant supporting the Structured Query Language (SQL) for SQL servers. In the context of Xbase++ 2.0, SQL is much more! In addition to tables/work areas, SQL can now be used on arrays and objects, or even on a combination of the two! Of course, this works in both directions: on the input and output side of your SELECT/INSERT/UPDATE statements.

The goal of this session is to establish SQL as an everyday solution for Xbase++ developers, similar to what FOR/NEXT or DO/WHILE already is.

You will learn:

  • To use SQL with objects and arrays
  • To see SQL as a programming style/pattern vs. a programming language
  • To make use of SQL in unexpected areas

Prerequisites: None

Which Data Access and Data Storage Technology Shall I UseSteffen F. Pirsig

It is All About Data

Presenter: Steffen F. Pirsig
Level: Advanced
When: Friday, October 18, 10:00 - 11:15, Bisbee (R1)
Sunday, October 20, 8:30 - 9:45, Bisbee (R2)

With Xbase++ 2.0, numerous additional data access and data storage technologies have been addded to the standard feature set. In this session, we will talk about the different kinds of data an application needs to manage. We will analyze which data access method--navigational (ISAM) or relational (SQL)--fits best for which scenario, and will compare the benefits and drawbacks of data storage technologies such as xml files, local/shared dbf tables, sqlite databases and client/server systems (Advantage Database Server, PostgreSQL).

Finally, we will look at how the different deployment strategies for the various application types (i.e. rich-client, terminal server, virtual or web application) will affect our decision.

You will learn:

  • When to use ISAM and SQL as the data access strategy
  • To decide which storage solution is the best for their data
  • How performance and reliability requirements affect the strategy
  • A clear understanding about the limitations of the different storage technologies

Prerequisites: Experience as a developer with Clipper, Visual FoxPro or Xbase++

Technology and Business for the Developer

Customer Service: Making a DifferenceJody L. Meyer

Technology and Business for the Developer

Presenter: Jody L. Meyer
Level: Advanced
When: Friday, October 18, 8:30 - 9:45, Elliott (R1)
Saturday, October 19, 3:30 - 4:45, Elliott (R2)

In today's society we have many options. If we don't like how someone has treated us, we can go to a different store, carrier or provider for the things we need. Sure, you might have great quality products but is it worth the price of poor customer service? The resounding answer is "No" and your customers will soon be your customers no more. Your competitive edge is a fair price and how you treat your customers. The one thing your competition can't take away from you is the relationship you have with your customers.

So do you have great customer service? What can you do to get it? It's in the big and little things you do. Great service:

  • Inspires stories
  • Uses outside-the-box thinking
  • Is a choice
  • Starts with a clear vision
  • Requires everyone catch the vision
  • Surprises people
  • Begins with anyone
  • Goes the extra mile
  • Brings customers back
  • Comes from the heart

Be inspired. Let's take an honest look in the mirror. Are the right people being hired? Do the people on the front lines have the ability to make good service decisions? This is a great session of honest reflection and empowering steps forward to great service. This session is a must see.

This session is from the heart... my heart. I have been empowered and inspired by the people of Simple Truths and their great set of books on customer service.

You will learn:

  • How to be inspired to be what you need to be for your customers
  • An easy game plan to making a difference for you and your customers
  • About easy to obtain resources

Prerequisites: None

Implementing SaaS from a Data Center PerspectiveJim Graham

Technology and Business for the Developer

Presenter: Jim Graham
Level: Advanced
When: Friday, October 18, 2:00 - 3:15, Arizona

This session will review different approaches and issues that need to be taken into consideration in the data center when implementing SaaS. Proper planning and architecture are critical to building a stable and scalable platform that will service many customers. A four year business transformation will be reviewed and experiences shared

You will learn:

  • About equipment colocation versus using your own data center
  • About power issues
  • About Internet issues
  • About Server Virtualization
  • What a "multi-tenant" system is

Prerequisites: None

Late-Night: The Speed of Light and the Size of an AtomSteffen F. Pirsig

Technology and Business for the Developer

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

How does the speed of light affect application design and the performance of your client/server or cloud solution? And why 88 Silicon atoms correlate with our ability to execute code on different CPU cores at the same time? Those and other questions will be answered in this session.

The idea of this session is to give attendees a better understanding about the strong influence physical factors have on hardware and software design, and hence on our ability to deliver great solutions to the end-user.

You will learn:

  • You will have a lot of fun
  • To think differently about the speed of your application
  • To understand the physical limitations and how they affect us all
  • Why the user who logs onto a network first generally has great performance but often complains about a sluggish network later on
  • Why Green IT is just marketing buzz and what has really driven that movement.
  • Why a dual-core Atom processor-based SQL Server can handle more transactions per second than a quad-core Xeon SQL Server!

Multi-Track Development Strategies in DVCSRick Borup

Technology and Business for the Developer

Presenter: Rick Borup
Level: Advanced
When: Friday, October 18, 5:15 - 6:30, Elliott (R1)
Sunday, October 20, 8:30 - 9:45, Elliott (R2)

Distributed version control systems (DVCS) such as Git and Mercurial have become the de facto standard for modern source control. The use of local repositories and the ability to create clones greatly facilitate multi-track development work, wherein developers must simultaneously manage multiple lines of development representing different release versions of a product side by side with new feature development work and hot fixes. The challenge lies in deciding how to branch, when to branch, when to merge, and how many branches to maintain for which purposes. In this session, Rick explores some of the strategies that have proven effective in his own work and in the shared experiences of others.

You will learn:

  • Single-track and multi-track development strategies
  • When to branch
  • How to branch
  • How to prepare your VFP app for DVCS
  • How to adopt a reliable workflow

Prerequisites: Some experience with distributed version control systems would be helpful but is not required.

Office 365: An IT Department for Small BusinessesTamar E. Granor

Technology and Business for the Developer

Presenter: Tamar E. Granor
Level: Advanced
When: Friday, October 18, 3:30 - 4:45, Elliott (R1)
Saturday, October 19, 11:30 - 12:45, Elliott (R2)

Small development shops (and other small businesses) generally don't have the skills in-house to operate a mail server or host their own website. Time spent on these and other IT tasks comes out of billable hours. Microsoft's Office 365 offers an inexpensive way of outsourcing these tasks. For a small monthly fee, a company gets an Exchange server, web hosting, cloud storage, and the latest version of Office.

In this session, we'll look at what Office 365 has to offer, including a look at the SharePoint-based team and public sites you can create.

You will learn:

  • What Office 365 is
  • What subscription options are available
  • How to get started using Office 365
  • How to use Office 365's tools to build a website

Prerequisites: None

Transitioning Your Business to SaaS (Software as a Service)Jim Graham

Technology and Business for the Developer

Presenter: Jim Graham
Level: Advanced
When: Saturday, October 19, 2:00 - 3:15, Bisbee

The application software business is moving quickly in a direction you may be unfamiliar with. Instead of selling software to your customers that they install and run on their computers and servers, you sell them access and rights to use your software via the "Cloud". As the service provider you are now obligated to provide them 24 x 7 access to the software, keep their data safe and your system virus free.A four year business transformation will be reviewed and experiences shared.

You will learn:

  • What Service Level Agreements are
  • What technical issues need to be addressed
  • What types of connectivity issues are likely to come up
  • What financial issues must be considered
  • What legal issues arise
  • What a "multi-tenant" system is

Prerequisites: None

Web and Mobile

A Real World Web Application Using CXPAndreas Herdt

Web and Mobile

Presenter: Andreas Herdt
Level: Beginner, Intermediate
When: Friday, October 18, 3:30 - 4:45, Arizona (R1)
Saturday, October 19, 5:15 - 6:30, Arizona (R2)

In this session, we will develop step by step a small conference scheduling application for attendees.

All of the relevant concepts for creating appealing, single-page web applications using Ajax, JQuery and HTML5 and the Xbase++ CXP technology are demonstrated. Attendees can use this application as a starting point for creating their own web and connected mobile applications for the desktop or a mobile device.

You will learn:

  • How a web application is structured
  • How to use AJAX with Xbase++ CXP
  • How single-page web applications work
  • How existing HTML frameworks can be used for creating appealing web apps Using different CXP technologies

Prerequisites: Basic knowledge of HTML is a plus but not required.

Real-time Web Applications Using WebSocketsAndreas Herdt

Web and MobileSolidifying Xbase++ Development

Presenter: Andreas Herdt
Level: Advanced
When: Saturday, October 19, 10:00 - 11:15, Arizona

The term "real-time" in the context of connected applications simply describes the fact that clients no longer need to poll for information. Instead, the information is pushed to the clients, either from a server or from another client. The benefit of this approach is faster flow of information with lesser cpu and network workloads.

Real-time applications employing instant discovery and delivery of data are rapidly becoming mainstream. WebSockets, SocketIO and SignalR are the technologies which make this possible, and which are seen as the future in client/client and client/server communications in web and desktop applications.

Xbase++ 2.0 supports WebSocket client and server communication out of the box. With a few lines of code, Xbase++ 2.0 applications can interconnect with each other, push data to the end-user or to a mobile application.

This session presents a number of use-cases which show how WebSockets can be utilized using Xbase++ 2.0.

You will learn:

  • What WebSockets are
  • How to use WebSockets on the client and server
  • How to avoid lost updates using real-time communication
  • How to push data to a web site
  • When to use WebSockets and when to use Ajax

Prerequisites: Basic knowledge about TCP/IP

Using HTML5 & CSS in Desktop and Web ApplicationsTill Warweg

Web and MobileSolidifying Xbase++ Development

Presenter: Till Warweg
Level: Beginner, Intermediate
When: Friday, October 18, 8:30 - 9:45, Arizona

Regardless of whether you need a web front-end for usage in a (mobile) browser, or you need to display complex content on the desktop, using HTML and CSS as the design language for your forms gives you access to a flexible layout engine supporting a host of styles and controls. This session introduces HTML and CSS as a presentation technology and gives examples for utilizing it in the browser and on the desktop.

You will learn:

  • About HTML and CSS as a design model for abstracting the representation/UI from the actual data
  • How to use HTML/CSS to render styled content in web and desktop applications
  • How to use CSS to create flexible layouts for screen and print

Prerequisites: Basic knowledge of programming with Xbase++

Web CXP Programming: From Plain CXP/Xbase Coding to CXP with jQuery MobileDieter Stelzner

Web and Mobile

Presenter: Dieter Stelzner
Level: Advanced
When: Sunday, October 20, 10:00 - 11:15, Arizona

This session shows how to build an CXP mobile application with plain Xbase and tries to figures out possible difficulties a programmer may be confronted with. The CXP application contains a menu, a plain data browse and an editable window based on a database. This application will then be transformed to an application with mobile javascript. Along the way, we'll discuss how to build a mobile application in a proper way. The attendees will get the full working applications for their own investigation.

You will learn:

  • About the necessary environment for CXP programming
  • Techniques and concepts
  • Debugging of CXP and embedded Xbase code
  • How to use your own dynamic and static DLLs
  • How to get familar with CXP

Prerequisites: Small knowledge about Xbase coding

HTML5 is the Future of the WebDavid Giard

Web and MobilePre-Conference

Presenter: David Giard
Level: Intermediate
When: Thursday, October 17, 9:00 - 12:00, Gilbert

The next version of tools for the web will include more semantic markup, powerful APIs for JavaScript, and better native styling. In this presentation, I will show the important features of HTML5 and CSS3 and how you can use them today in your web applications.

I will demonstrate code that can be used today in browsers that support HTML5 features and that can be handled gracefully by browsers that do not support these features.

You will learn:

  • The goals of HTML5
  • New tags and attributes
  • CSS3 features
  • What new Javascript APIs are available

Prerequisites: HTML