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 Fox 2013 Sessions

There are 7 conference tracks at Southwest Fox 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.
Extending VFP: The sessions in this track look at ways to extend VFP's reach, by using it together with other products or by taking advantage of native extension capabilities.
Solidifying VFP Development: This track appeals to all VFP developers. Sessions cover either VFP fundamentals, aimed at those newer to VFP, whether moving up from FP2.x or coming to VFP from other languages; VFP best practices, aimed at helping all VFP developers improve; or in-depth looks at aspects of VFP that some developers may not have mastered yet.
Taking Advantage of VFPX: The sessions in this track showcase the projects in VFPX, providing attendees with enough information to put those projects to work for them. These sessions are deep dives into specific VFPX projects.
Technology and Business for the Developer: This track looks at tools, technologies and techniques to make life as a developer easier and more productive.
Moving VFP Applications Forward: This track covers topics related to taking VFP applications beyond the desktop, such as with web applications or mobile technology, as well as alternatives for new platforms and future application development.
Web and Mobile: The sessions in this track are aimed at developers who want to learn more about creating web and connected mobile applications.

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

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

Moving Forward from FoxPro: Tools and Technologies for TomorrowAndrew MacNeill

Pre-ConferenceMoving VFP Applications Forward

Presenter: Andrew MacNeill
Level: Advanced
When: Thursday, October 17, 1:00 - 4:00, Gilbert

Let's take a look at key technologies and products where you can leverage your FoxPro knowledge and still build new applications. We'll look at corporate technologies, cloud and even desktop applications and which ones are a good fit for different skill sets. If you're someone who builds full object-oriented systems, there's likely a better fit than for someone who works purely in code and procedures. But there are challenges with any new technology.

We'll go through the key things FoxPro developers should be aware of and how they relate back to VFP, covering the language, the development approach, data access and the actual development environment. Some features inspire while others confuse and we'll clear out that confusion, making it easier to choose the right environment for your experience. We'll build off the W5 approach (What, Who, When, Why and Where) and then add the "How" so you can make an informed decision.

Among the technologies being looked at will be the Microsoft platform (desktop and web), Lianja, Wakanda, xBase++, and yes, FoxPro in the form of ActiveVFP and WebConnection/FoxInCloud.

You will learn:

  • At least 5 products/technologies that can be used as a springboard from their VFP development experience
  • Benefits and the learning curve for each tool and technology
  • Overviews of each development environment and how it compares to VFP
  • Methods for building database applications in these environments
  • Ways to lean on your VFP experience when working in these areas

Prerequisites: None

VFP and HTML: Running Enterprise Apps on the Web with FoxInCloudTuvia Vinitsky

Pre-ConferenceMoving VFP Applications Forward

Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Thursday, October 17, 1:00 - 4:00, Flagstaff

The FoxInCloud tool has shown that a native VFP app can run both as a 100% web HTML app and as a desktop VFP app. But what happens when you try to adapt a large enterprise application for the web? Programming complexities, HTML DOM differences, and design conflicts between the web and the desktop can turn the adaptation into a series of problems until the developer is bogged down and no longer sure how to proceed.

This session will take an actual enterprise application from desktop to web and demonstrate the skills and ideas you will need to successfully complete such a project. We will start with the original VFP project and see the coding and implementation all the way through to an HTML app running in a browser. The end result web application is currently deployed in both HTML and desktop format to hundreds of users.

You will learn:

  • How Foxincloud actually produces HTML and tools to assist with the adaptation
  • How to determine where your "gotchas' are going to be on the web
  • What will need rewriting to work in HTML: how compatible with HTML is your VFP app
  • When to use Javascript and CSS vs VFP in your code
  • What design concepts and new ways of thinking are required
  • How to manage third party development tools, ActiveX controls, and other gotchas
  • How to best implement a multi-tenant or multi-client deployment

Prerequisites: Solid VFP knowledge. Knowledge of West Wind Web Connection, IIS, HTML, and Javascript helpful.

Workshop on Migrating Applications to LianjaHank Fay

Pre-ConferenceMoving VFP Applications Forward

Presenter: Hank Fay
Level: Intermediate, Advanced
When: Thursday, October 17, 9:00 - 12:00, Flagstaff

In this half-day workshop, attendees are encouraged to bring their notebooks and an application they would like to begin migrating to Lianja. We will begin with data migration, and progress through each of the major stages of migration, with the goal being for attendees to have experienced the process of successfully migrating some part of their application, so they can take that experience home with them. Every migration is different, to a degree: by having multiple apps undergoing migration at the same time, we will be able to share many more challenges than would be encountered in a single application. Attendees will have provided for them the Lianja Development environment.

You will learn:

  • How to import data into Lianja
  • How to import data structure into an ERD system integrated with Lianja
  • How to specify RI rules associated with the data structure
  • How to migrate VFP forms into Lianja
  • How to migrate VFP reports into Lianja
  • How to migrate help into Lianja

Prerequisites: Bringing an application for migration with you is not required, but is highly suggested. Having an existing application you have created and cared for is also highly suggested, because that provides the background knowledge to learn from the challenges being encountered during the workshop.

Extending VFP

Building Mobile Web Applications with FoxPro and Web ConnectionRick Strahl

Extending VFPWeb and Mobile

Presenter: Rick Strahl
Level: Intermediate
When: Friday, October 18, 5:15 - 6:30, Gilbert (R1)
Sunday, October 20, 10:00 - 11:15, Gilbert (R2)

Mobile content is becoming more and more important for Web applications as we no longer live in a desktop-only world. Modern Web applications need to ensure that content can display reliably on mobile devices. There are a number of different approaches to take from mobile-first to dedicated mobile frameworks and a composite approach using responsive design. We'll discuss how using mobile-first frameworks like jQuery Mobile can help with creating purely mobile sites, how CSS frameworks like Bootstrap can simplify responsive design layout, as well as looking at ways to retrofit older Web applications for mobile views. In this session you'll learn about the various different front-end approaches and you'll see how to integrate with a FoxPro backend using Web Connection. We'll discuss when it makes sense to use each of the approaches and see examples of each in small samples demonstrating the different design choices. This session focuses heavily on HTML and design issues and covers integration with the FoxPro backend using AJAX techniques.

You will learn:

  • Concepts of Mobile-First and Responsive Design
  • About mobile-first with jQuery Mobile
  • About responsive design with the BootStrap CSS framework
  • How to approach retro-fitting existing sites for mobile devices
  • How to create rich client apps using AJAX against a FoxPro backend

Prerequisites: Some familiarity with HTML, CSS, JavaScript and Web Development. Web Connection knowledge useful but not required.

Credit Cards and EFT/ACH in VFPTuvia Vinitsky

Extending VFP

Presenter: Tuvia Vinitsky
Level: Advanced
When: Friday, October 18, 11:30 - 12:45, Gilbert (R1)
Sunday, October 20, 8:30 - 9:45, Gilbert (R2)

Many applications today require the user to charge a credit card or process an ACH bank account transfer. Processing credit cards and EFT transactions in VFP involves both technical aspects and security aspects.

What is the best approach? What does PCI-compliant mean? What is the best way to connect securely to the credit card processor? What are terms like AVS and CPS? What do I have to do to keep my app current?

Software like PC-Charge and gateways like Authorize.net are essential to credit card processing. They serve different purposes, however, and knowing what services to use when can be confusing.

The requirements are very strict as to what information you can store and how it is stored. Violating these rules can result in the client losing their credit card processing privileges.

EFT's are increasingly popular. Learn the difference between EFT and e-checks and how to process both.

You will learn:

  • What information is needed from the user to process credit cards
  • What infomation you are allowed to store in a table and what information you cannot store
  • The encryption requirements for credit card data
  • How do decide whether to use middleware or the web: using PC-Charge or Authorize.net
  • The difference between EFT and e-check
  • About e-check processing
  • About processing EFT's: the bank and NACHA

Prerequisites: Basic VFP skills

Customizing Your Vertical Market ApplicationCathy Knight

Extending VFPSolidifying VFP Development

Presenter: Cathy Knight
Level: Advanced
When: Friday, October 18, 3:30 - 4:45, Flagstaff (R1)
Saturday, October 19, 5:15 - 6:30, Gilbert (R2)

Writing a vertical market application can be very rewarding. You write one application, sell it numerous times, and sit back while the money rolls in. Well, that's the theory anyway. The reality is that often times new clients want to buy your software, but only if you can change this one little thing. Managing custom code for various clients within your application can easily turn into a nightmare as your client base expands. This session shows you how to implement a customization methodology in your vertical market application that keeps your standard code independent from your custom code, yet the two code bases "play nice" with each other.

You will learn:

  • How to provide custom menu options
  • How to implement companion tables for storing additional data
  • How to customize existing forms and controls
  • How to implement new forms and controls
  • How to implement custom reports

Prerequisites: Basic knowledge of VFP

Expose Yourself (or How to Get Your Data on the Web)Stephen J. Bodnar

Extending VFPWeb and Mobile

Presenter: Stephen J. Bodnar
Level: Advanced
When: Friday, October 18, 8:30 - 9:45, Gilbert (R1)
Saturday, October 19, 2:00 - 3:15, Gilbert (R2)

You've got a great VFP app with a SQL Server back-end that works perfectly, but you need to start adding some web-based functionality or maybe you just need to expose the data to the web for one reason or another. In this session, we'll look at creating a Web API that will allow you to exchange data over the web without completely rewriting your app or fully exposing your SQL Server to the internet.

We'll look at Microsoft's Web API, part of the ASP.NET MVC tooling, which is a framework designed to let you create HTTP services available to any HTTP client including browsers, mobile devices, or any other application making HTTP calls.

In this session, we'll take an existing SQL Server database and develop a web API that demonstrates CRUD (Create, Read, Update, and Delete) functionality using the HTTP verbs GET, POST, PUT and DELETE. We'll use Entity Framework to create models of the data we want to expose to the web. We'll create repositories and repository interfaces to isolate our data-access from our business rules. We'll create WebAPI controllers that map the HTTP verbs to our CRUD actions so that we can create records, edit them, save them and delete them.

This session will show you one way you can start adding some web-based functionality without requiring a complete re-write of your VFP application.

You will learn:

  • How to create a web API allowing others to exchange data with your application
  • How to use Entity Framework to model your data for Web API
  • What it means to be RESTful
  • What HTTP Verbs are and how they are used
  • How data is passed over the web using JSON
  • Techniques and Tools for developing and debugging Web API

Prerequisites: This session will be code-heavy using basic C#, so a basic understanding of C# will be helpful, but not required.

Putting wwDotnetBridge to Practical UseRick Strahl

Extending VFP

Presenter: Rick Strahl
Level: Intermediate
When: Friday, October 18, 10:00 - 11:15, Gilbert (R1)
Saturday, October 19, 10:00 - 11:15, Gilbert (R2)

wwDotnetBridge is a tool to provide extended interoperability with Microsoft .NET by providing access to most .NET components natively from within FoxPro. The tool provides a number of interesting use cases to Visual FoxPro developers and this session highlights a few of them. See how to integrate native .NET or open source components into FoxPro by building wrappers in FoxPro, how to call .NET Web Service clients, how to call and interact with multi-threaded code from FoxPro, and how to build a self hosted Web server that can serve Web requests or send out broadcast messages to many clients.

You will learn:

  • How to use wwDotnetBridge
  • How to integrate native .NET or open source components into FoxPro
  • How to call .NET Web Service clients
  • How to call and interact with multi-threaded code from FoxPro
  • How to build a self hosted Web server

Prerequisites: Familiarity with COM in FoxPro. Basic familiarity with .NET.

Teaching an Old Fox a New Trick: SQL ServerCathy Knight

Extending VFPSolidifying VFP Development

Presenter: Cathy Knight
Level: Intermediate, Advanced
When: Friday, October 18, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 19, 11:30 - 12:45, Flagstaff (R2)

Are you a Fox developer? Are you using DBFs in your application? Are you considering moving your application to SQL Server? If the answer to those questions is YES, this session is for you! Maybe you've already attended some of the typical SQL Server sessions such as Connecting to SQL Server, Managing a SQL Server Database, Optimizing SQL Server, Using Transact SQL, or Using Stored Procedures. Good ... because that's not what this session is going to cover! This session is meant to help you avoid the bumps and bruises caused by not understanding the little differences and nuances between the Fox queries and the SQL Server queries. For example, the equivalent of Fox's NVL(MyField, '') in SQL Server is ISNULL(MyField, ''). But in Fox, ISNULL(MyField) has a totally different meaning and its SQL Server equivalent is MyField IS NULL. Is your head spinning yet? Well, mine was when I first began working with SQL Server. This session will help you move past that learning curve quickly and learn to write SQL statements in a manner that works with both Fox and SQL Server data.

You will learn:

  • How to code for syntax variations in SELECT statements
  • About data type variations such as Logical and Date fields
  • How to deal with NULL, empty, and precision variations
  • How to programmatically convert your Fox views or Cursor Adapters for SQL Server
  • How to use unit testing to look for differences between Fox and SQL Server query results
  • Much more!

Prerequisites: Basic knowledge of VFP and SQL Server

The Open Source World of Visual FoxProFrank Perez

Extending VFPSolidifying VFP Development

Presenter: Frank Perez
Level: Advanced
When: Saturday, October 19, 8:30 - 9:45, Gilbert (R1)
Sunday, October 20, 11:30 - 12:45, Gilbert (R2)

VFPX is considered the open source project in the Fox Community. Did you know there are other open source projects being developed outside of VFPX? Yes there are several. Microsoft CodePlex (the home of VFPX) hosts over 20,000 projects. Not all of these are for Visual FoxPro though. The other VFP projects are:

  • FoxyPreview by Cesar Chalom, which provides an alternative report previewer.
  • VFP Entity Framework Provider, which opens up access of VFP data through the Microsoft Entity Framework
  • LINQ to VFP, which is exactly as it sounds so you can open access to VFP data through LINQ in .NET.
  • VFPTweetAPI by Olaf Doschke, to integrate Twitter into VFP applications.
  • VFPOAuth by Olaf Doschke, a VFP binding to the oauth 1.0a protocol, also usable in other languages as OLE class.
  • VFPY by Claude Fox, for ActiveVFP (which competes with the Web frameworks like FoxWeb and WebConnection) and MTmyVFP (multi-threading spinoff).
In this session we will discuss and dive into as many of the other open source projects as time allows.

You will learn:

  • What open source projects are available for Visual FoxPro developers
  • Where these projects are
  • How to integrate them into your applications

Prerequisites: None

Unit Testing 201: Testing Our SQL Server BackendsEric J. Selje

Extending VFP

Presenter: Eric J. Selje
Level: Intermediate
When: Friday, October 18, 3:30 - 4:45, Gilbert (R1)
Saturday, October 19, 3:30 - 4:45, Gilbert (R2)

Nobody wants to find out the "one little change" they made to their database resulted in a data breach or massive billing error, so how can we proactively minimize that risk?

Applying the concept of Unit Tests to your database allows you to quickly ascertain whether the the changes you make to functions, stored procedures, and even other objects in your database have a negative unforeseen impact. In this session, we'll walk through the basics of what unit testing is, how to set up a simple Unit Testing project in SSMS, how we can tell whether something has negatively changed in our functions or procedures. We'll also enumerate any third party tools available to help us with Unit Testing our databases.

You will learn:

  • What Unit Testing is (in a quick review)
  • How to use the tSQLt framework in SSMS to create Unit Test classes for your databases
  • What to test to minimize your risk
  • How to use FoxUnit to do something similar in Visual Foxpro (time permitting)

Prerequisites: Desire to learn about how to improve your code

VFP Version Control with Mercurial - A RefresherRick Borup

Extending VFPTechnology and Business for the Developer

Presenter: Rick Borup
Level: Beginner, Intermediate
When: Friday, October 18, 11:30 - 12:45, Flagstaff

This session is both an introduction to and a refresher course on Mercurial, a distributed version control system (DVCS) well suited for use with Visual FoxPro application development. Rick first introduced Mercurial at Southwest Fox in 2011, and followed up in 2012 with a session exploring more advanced topics on the subject. This session combines the material from both of those sessions into one comprehensive presentation, designed both for those who are new to Mercurial as well as for those wanting a refresher. This session will also serve as a good lead-in for developers interested in attending Rick's session on Multi-track Development Strategies in DVCS, which is also being presented at this conference.

You will learn:

  • The concepts behind distributed version control systems (DVCS)
  • How to install and configure Mercurial and TortoiseHg on a Windows PC
  • The unique challenges of using any version control system with VFP
  • The basic techniques for using Mercurial with VFP application development
  • Advanced techniques to more fully explore the power of Mercurial

Solidifying VFP Development

"Modernizing" Your VFP AppsRick Borup

Solidifying VFP DevelopmentMoving VFP Applications Forward

Presenter: Rick Borup
Level: Intermediate, Advanced
When: Friday, October 18, 10:00 - 11:15, Elliott (R1)
Saturday, October 19, 2:00 - 3:15, Elliott (R2)

Is it Metro or is it retro? Regardless of how you feel about it, the Windows 8 "Modern" user interface introduced an entirely new paradigm, and I predict it's here to stay. Microsoft shelved the whole concept of the glossy "Aero" interface—with its rich graphics, alpha transparencies, and other eye candy—and replaced it with solid colors, flat icons, blocky tiles, and other major changes to the user experience. Like the ribbon interface introduced with Office 2007, these changes were at first reviled, but history shows they will soon be accepted by users as commonplace, becoming the de facto standard and making everything else look old-fashioned. What does this mean for our VFP apps? How can we redesign our app's user interface to keep up with the times? Come to this session for some ideas on modernizing your legacy VFP apps to keep them looking fresh and up-to-date!

You will learn:

  • The design philosophy behind the "Modern" user interface
  • Ways to incorporate the Modern interface in VFP apps
  • The new color palette and how to use it
  • Where to find resources for flat icons and other "Modern" design elements

Prerequisites: Some experience designing VFP apps and a desire to move them forward into 2014 and beyond.

Crushing the User's Experience: Building the Right (and Wrong) UIAndrew MacNeill

Solidifying VFP DevelopmentMoving VFP Applications Forward

Presenter: Andrew MacNeill
Level: Advanced
When: Friday, October 18, 2:00 - 3:15, Elliott (R1)
Saturday, October 19, 5:15 - 6:30, Elliott (R2)

User interface is always a touchy subject. Do you emulate an existing application or create a brand new experience? Do you use flashy colors or stay neutral?

In this session, we'll go through different user interface choices you can make when building your VFP application and how and when to use them. We'll start with the standard desktop application; with Windows XP, 7 and 8 all out in user's environments, this can mean a wild ride. Can one single VFP application handle them all with minimal effort?

Let's also look at web and mobile applications using HTML and how they can improve or change your user interface decisions. The actual users themselves may also impact your choices; before showing a demo of what you think is the "Mona Lisa" of interfaces, make sure it fits in with the users' expectations.

You will learn:

  • Smart interface choices for different types of applications and how to build them
  • Best practices for deciding and testing your user interface
  • Guidelines for identifying approaches depending on your user's demographics
  • Strategies for presenting interfaces to clients and users

Prerequisites: None

Customizing Your Vertical Market ApplicationCathy Knight

Solidifying VFP DevelopmentExtending VFP

Presenter: Cathy Knight
Level: Advanced
When: Friday, October 18, 3:30 - 4:45, Flagstaff (R1)
Saturday, October 19, 5:15 - 6:30, Gilbert (R2)

Writing a vertical market application can be very rewarding. You write one application, sell it numerous times, and sit back while the money rolls in. Well, that's the theory anyway. The reality is that often times new clients want to buy your software, but only if you can change this one little thing. Managing custom code for various clients within your application can easily turn into a nightmare as your client base expands. This session shows you how to implement a customization methodology in your vertical market application that keeps your standard code independent from your custom code, yet the two code bases "play nice" with each other.

You will learn:

  • How to provide custom menu options
  • How to implement companion tables for storing additional data
  • How to customize existing forms and controls
  • How to implement new forms and controls
  • How to implement custom reports

Prerequisites: Basic knowledge of VFP

Legacy Code Forensics: Answering the Questions of the UnknownJody L. Meyer

Solidifying VFP DevelopmentTaking Advantage of VFPX

Presenter: Jody L. Meyer
Level: Advanced
When: Friday, October 18, 2:00 - 3:15, Flagstaff (R1)
Sunday, October 20, 11:30 - 12:45, Elliott (R2)

We have all done this before...You pick up the phone and on the other end you hear "Hi! I would like you to check out this FoxPro system of ours and change it. But... all the original developers are gone. There isn't any documentation. The system just works, sort of. Can you help us?" You want to say yes! But... but should you? Jody will walk you through best practices of things to look for and to look out for when contemplating your decision. She will talk about tools such as VFPx Code Analyst, Code References and GoFish that can help you peel back the layers of the unknown. There are other tools such as Microsoft Visio to chart your way through the depths of the murky waters of legacy code to crystal clear understanding of how the logic flows. If you want to say "YES!" to new business opportunities, then make sure you come to this session!

You will learn:

  • Best Practices for taking on legacy systems
  • What VFPx Code Analyst is and how to use it
  • What VFPx Code References is and how to use it
  • About GoFish and why you would want to use it vs Code Reference.
  • About Beyond Compare and its value in legacy systems
  • What MS Visio is and how to use it

Prerequisites: None

Strategies for Refactoring and Testing Legacy CodeDavid Giard

Solidifying VFP Development

Presenter: David Giard
Level: Intermediate
When: Saturday, October 19, 8:30 - 9:45, Flagstaff

Many developers cringe at the thought of inheriting and maintaining someone else's code base, particularly if that code base consists of large, complex classes and methods with little separation of concerns. It can be difficult to apply the principles of clean code and to write effective unit tests when you inherit code that is difficult to test. In this session, I will show you strategies for working with, maintaining, testing, and refactoring legacy code. You will learn how to explore a complex code base and how to refactor it in order to make it more maintainable and testable.

You will learn:

  • Techniques for managing legacy code bases

Prerequisites: Basic programming knowledge

Teaching an Old Fox a New Trick: SQL ServerCathy Knight

Solidifying VFP DevelopmentExtending VFP

Presenter: Cathy Knight
Level: Intermediate, Advanced
When: Friday, October 18, 8:30 - 9:45, Flagstaff (R1)
Saturday, October 19, 11:30 - 12:45, Flagstaff (R2)

Are you a Fox developer? Are you using DBFs in your application? Are you considering moving your application to SQL Server? If the answer to those questions is YES, this session is for you! Maybe you've already attended some of the typical SQL Server sessions such as Connecting to SQL Server, Managing a SQL Server Database, Optimizing SQL Server, Using Transact SQL, or Using Stored Procedures. Good ... because that's not what this session is going to cover! This session is meant to help you avoid the bumps and bruises caused by not understanding the little differences and nuances between the Fox queries and the SQL Server queries. For example, the equivalent of Fox's NVL(MyField, '') in SQL Server is ISNULL(MyField, ''). But in Fox, ISNULL(MyField) has a totally different meaning and its SQL Server equivalent is MyField IS NULL. Is your head spinning yet? Well, mine was when I first began working with SQL Server. This session will help you move past that learning curve quickly and learn to write SQL statements in a manner that works with both Fox and SQL Server data.

You will learn:

  • How to code for syntax variations in SELECT statements
  • About data type variations such as Logical and Date fields
  • How to deal with NULL, empty, and precision variations
  • How to programmatically convert your Fox views or Cursor Adapters for SQL Server
  • How to use unit testing to look for differences between Fox and SQL Server query results
  • Much more!

Prerequisites: Basic knowledge of VFP and SQL Server

The Open Source World of Visual FoxProFrank Perez

Solidifying VFP DevelopmentExtending VFP

Presenter: Frank Perez
Level: Advanced
When: Saturday, October 19, 8:30 - 9:45, Gilbert (R1)
Sunday, October 20, 11:30 - 12:45, Gilbert (R2)

VFPX is considered the open source project in the Fox Community. Did you know there are other open source projects being developed outside of VFPX? Yes there are several. Microsoft CodePlex (the home of VFPX) hosts over 20,000 projects. Not all of these are for Visual FoxPro though. The other VFP projects are:

  • FoxyPreview by Cesar Chalom, which provides an alternative report previewer.
  • VFP Entity Framework Provider, which opens up access of VFP data through the Microsoft Entity Framework
  • LINQ to VFP, which is exactly as it sounds so you can open access to VFP data through LINQ in .NET.
  • VFPTweetAPI by Olaf Doschke, to integrate Twitter into VFP applications.
  • VFPOAuth by Olaf Doschke, a VFP binding to the oauth 1.0a protocol, also usable in other languages as OLE class.
  • VFPY by Claude Fox, for ActiveVFP (which competes with the Web frameworks like FoxWeb and WebConnection) and MTmyVFP (multi-threading spinoff).
In this session we will discuss and dive into as many of the other open source projects as time allows.

You will learn:

  • What open source projects are available for Visual FoxPro developers
  • Where these projects are
  • How to integrate them into your applications

Prerequisites: None

Using the VFP Debugger EffectivelyTamar E. Granor

Solidifying VFP Development

Presenter: Tamar E. Granor
Level: Intermediate
When: Saturday, October 19, 2:00 - 3:15, Flagstaff

Visual FoxPro has a powerful debugger that provides many tools for finding problems with your code. This session will dig into the Debugger, showing how you can make the most of its tools in order to speed development, improve your code, and understand VFP better.

You will learn:

  • Step through code to find problems
  • Set breakpoints
  • Use Event Tracking
  • Use the Coverage Profiler

Prerequisites: Familiarity with VFP

VFPX.Edition.2013() Part 1Rick Schummer

Solidifying VFP DevelopmentTaking Advantage of VFPX

Presenter: Rick Schummer
Level: Advanced
When: Friday, October 18, 5:15 - 6:30, Flagstaff (R1)
Saturday, October 19, 3:30 - 4:45, Flagstaff (R2)

VFPX, one of the active open source projects hosted on CodePlex, has some terrific tools to enhance the Visual FoxPro Interactive Development Environment (IDE) and components to impress your customers in the applications you write for them. This two-part session covers some of the recent updates and additions to VFPX in 2013 (note that part 2 is not repeated).

We are going to cover as many of these tools as time allows:

  • Exploring the Data Explorer enhancements
  • Going 2-dimensional with FoxBarCodeQR
  • Flexible on-the-fly forms with Dynamic Forms
  • Enhancing IntelliSense with FoxcodePlus
  • Polishing the user interface with ssClasses
  • Build Excel files without Microsoft Office or OpenOffice using FoxyXLS
  • What is new with the mighty Thor!
  • Playing GoFish with your text searches
  • Sniffing out bad smelling code with updated Code Analyst

This session can fluctuate between deep dives and overviews, depending on audience needs.

Note: this list is subject to changes based on the releases by VFPX project managers.

You will learn:

  • What is new in VFPX in 2013
  • How VFPX makes a developer's life easier
  • Where to get all the new goodness
  • Why it is important to get involved in VFPX

Prerequisites: None

VFPX.Edition.2013() Part 2Rick Schummer

Solidifying VFP DevelopmentTaking Advantage of VFPX

Presenter: Rick Schummer
Level: Advanced
When: Saturday, October 19, 5:15 - 6:30, Flagstaff (R1)
Sunday, October 20, 10:00 - 11:15, Flagstaff (R2)

This is the second part of this session on new and updated VFPX projects.

Will the Circle Be Unbroken: Continuous Integration and VFPEric J. Selje

Solidifying VFP DevelopmentTaking Advantage of VFPX

Presenter: Eric J. Selje
Level: Advanced
When: Saturday, October 19, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 20, 11:30 - 12:45, Flagstaff (R2)

This session will focus on improving the Software Development Lifecycle for Visual FoxPro developers. We'll begin by reviewing the typical development cycle, and show ways to improve and automate our current process using a Continuous Integration server and open source tools from VFPX such as Automated Build, FoxUnit, and SubFox. By the end of this session, you should have a better idea of what Continuous Integration is and how you can implement it in your workflow regardless of whether you're an independent developer or work on a large team.

You will learn:

  • What "Continuous Integration" (CI) is
  • What hooks are available to you
  • What tools you can use to automate your development lifecycle

Prerequisites: Knowledge of how to build applications in Visual FoxPro.

Taking Advantage of VFPX

Legacy Code Forensics: Answering the Questions of the UnknownJody L. Meyer

Taking Advantage of VFPXSolidifying VFP Development

Presenter: Jody L. Meyer
Level: Advanced
When: Friday, October 18, 2:00 - 3:15, Flagstaff (R1)
Sunday, October 20, 11:30 - 12:45, Elliott (R2)

We have all done this before...You pick up the phone and on the other end you hear "Hi! I would like you to check out this FoxPro system of ours and change it. But... all the original developers are gone. There isn't any documentation. The system just works, sort of. Can you help us?" You want to say yes! But... but should you? Jody will walk you through best practices of things to look for and to look out for when contemplating your decision. She will talk about tools such as VFPx Code Analyst, Code References and GoFish that can help you peel back the layers of the unknown. There are other tools such as Microsoft Visio to chart your way through the depths of the murky waters of legacy code to crystal clear understanding of how the logic flows. If you want to say "YES!" to new business opportunities, then make sure you come to this session!

You will learn:

  • Best Practices for taking on legacy systems
  • What VFPx Code Analyst is and how to use it
  • What VFPx Code References is and how to use it
  • About GoFish and why you would want to use it vs Code Reference.
  • About Beyond Compare and its value in legacy systems
  • What MS Visio is and how to use it

Prerequisites: None

Make Thor Your OwnTamar E. Granor

Taking Advantage of VFPX

Presenter: Tamar E. Granor
Level: Intermediate, Advanced
When: Friday, October 18, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 20, 8:30 - 9:45, Flagstaff (R2)

While using Thor exactly as it's installed offers lots of benefits, Thor also can be customized in lots of ways. From adding your own tools to specifying plug-ins that change the behavior of tools to setting up options for tools, you can tailor Thor's behavior to provide yourself and your team exactly what you need. The Thor Framework and Thor Procs provide basic code that makes it easier to customize Thor.

In this session, we'll see how to take Thor to the next level by adding tools, setting up options, and modifying and adding plug-ins. We'll also explore the Thor Framework and Thor Procs to understand the rich environment Thor provides.

You will learn:

  • How to add tools to Thor
  • How to set up options for Thor Tools
  • How to change tool behavior with plug-ins
  • What the Thor Framework has to offer
  • What Thor Procs are available

Prerequisites: Some familiarity with Thor

VFPX.Edition.2013() Part 1Rick Schummer

Taking Advantage of VFPXSolidifying VFP Development

Presenter: Rick Schummer
Level: Advanced
When: Friday, October 18, 5:15 - 6:30, Flagstaff (R1)
Saturday, October 19, 3:30 - 4:45, Flagstaff (R2)

VFPX, one of the active open source projects hosted on CodePlex, has some terrific tools to enhance the Visual FoxPro Interactive Development Environment (IDE) and components to impress your customers in the applications you write for them. This two-part session covers some of the recent updates and additions to VFPX in 2013 (note that part 2 is not repeated).

We are going to cover as many of these tools as time allows:

  • Exploring the Data Explorer enhancements
  • Going 2-dimensional with FoxBarCodeQR
  • Flexible on-the-fly forms with Dynamic Forms
  • Enhancing IntelliSense with FoxcodePlus
  • Polishing the user interface with ssClasses
  • Build Excel files without Microsoft Office or OpenOffice using FoxyXLS
  • What is new with the mighty Thor!
  • Playing GoFish with your text searches
  • Sniffing out bad smelling code with updated Code Analyst

This session can fluctuate between deep dives and overviews, depending on audience needs.

Note: this list is subject to changes based on the releases by VFPX project managers.

You will learn:

  • What is new in VFPX in 2013
  • How VFPX makes a developer's life easier
  • Where to get all the new goodness
  • Why it is important to get involved in VFPX

Prerequisites: None

VFPX.Edition.2013() Part 2Rick Schummer

Taking Advantage of VFPXSolidifying VFP Development

Presenter: Rick Schummer
Level: Advanced
When: Saturday, October 19, 5:15 - 6:30, Flagstaff (R1)
Sunday, October 20, 10:00 - 11:15, Flagstaff (R2)

This is the second part of this session on new and updated VFPX projects.

Will the Circle Be Unbroken: Continuous Integration and VFPEric J. Selje

Taking Advantage of VFPXSolidifying VFP Development

Presenter: Eric J. Selje
Level: Advanced
When: Saturday, October 19, 10:00 - 11:15, Flagstaff (R1)
Sunday, October 20, 11:30 - 12:45, Flagstaff (R2)

This session will focus on improving the Software Development Lifecycle for Visual FoxPro developers. We'll begin by reviewing the typical development cycle, and show ways to improve and automate our current process using a Continuous Integration server and open source tools from VFPX such as Automated Build, FoxUnit, and SubFox. By the end of this session, you should have a better idea of what Continuous Integration is and how you can implement it in your workflow regardless of whether you're an independent developer or work on a large team.

You will learn:

  • What "Continuous Integration" (CI) is
  • What hooks are available to you
  • What tools you can use to automate your development lifecycle

Prerequisites: Knowledge of how to build applications in Visual FoxPro.

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

VFP Version Control with Mercurial - A RefresherRick Borup

Technology and Business for the DeveloperExtending VFP

Presenter: Rick Borup
Level: Beginner, Intermediate
When: Friday, October 18, 11:30 - 12:45, Flagstaff

This session is both an introduction to and a refresher course on Mercurial, a distributed version control system (DVCS) well suited for use with Visual FoxPro application development. Rick first introduced Mercurial at Southwest Fox in 2011, and followed up in 2012 with a session exploring more advanced topics on the subject. This session combines the material from both of those sessions into one comprehensive presentation, designed both for those who are new to Mercurial as well as for those wanting a refresher. This session will also serve as a good lead-in for developers interested in attending Rick's session on Multi-track Development Strategies in DVCS, which is also being presented at this conference.

You will learn:

  • The concepts behind distributed version control systems (DVCS)
  • How to install and configure Mercurial and TortoiseHg on a Windows PC
  • The unique challenges of using any version control system with VFP
  • The basic techniques for using Mercurial with VFP application development
  • Advanced techniques to more fully explore the power of Mercurial

Moving VFP Applications Forward

"Modernizing" Your VFP AppsRick Borup

Moving VFP Applications ForwardSolidifying VFP Development

Presenter: Rick Borup
Level: Intermediate, Advanced
When: Friday, October 18, 10:00 - 11:15, Elliott (R1)
Saturday, October 19, 2:00 - 3:15, Elliott (R2)

Is it Metro or is it retro? Regardless of how you feel about it, the Windows 8 "Modern" user interface introduced an entirely new paradigm, and I predict it's here to stay. Microsoft shelved the whole concept of the glossy "Aero" interface—with its rich graphics, alpha transparencies, and other eye candy—and replaced it with solid colors, flat icons, blocky tiles, and other major changes to the user experience. Like the ribbon interface introduced with Office 2007, these changes were at first reviled, but history shows they will soon be accepted by users as commonplace, becoming the de facto standard and making everything else look old-fashioned. What does this mean for our VFP apps? How can we redesign our app's user interface to keep up with the times? Come to this session for some ideas on modernizing your legacy VFP apps to keep them looking fresh and up-to-date!

You will learn:

  • The design philosophy behind the "Modern" user interface
  • Ways to incorporate the Modern interface in VFP apps
  • The new color palette and how to use it
  • Where to find resources for flat icons and other "Modern" design elements

Prerequisites: Some experience designing VFP apps and a desire to move them forward into 2014 and beyond.

An Hour (or so) at the SPAStephen J. Bodnar

Moving VFP Applications ForwardWeb and Mobile

Presenter: Stephen J. Bodnar
Level: Intermediate
When: Saturday, October 19, 10:00 - 11:15, Elliott (R1)
Sunday, October 20, 10:00 - 11:15, Elliott (R2)

Single-page Applications or SPAs are all the rage these days. What are they? Are they right for you?

Single-page Applications are web sites that let visitors move through the app without a page refresh. The application logic is pushed down to the client and the application pulls data as required. The application can maintain state and it might use local storage.

The concept of SPAs has been around since the early 2000's but lately they seem to be the favored approach for greenfield web applications. Not so long ago, there was a lot of talk about how "desktop" applications could never be replaced with web applications. In the past, using traditional HTML approaches, this was a safe bet. Today, using SPAs built with modern JavaScript libraries, current HTML and the latest CSS techniques, it may just be possible to replace a desktop application with a web application.

In this session we'll look at the purpose of an SPA and discuss the suitability of this approach for various applications. We'll look at some of the popular JavaScript frameworks that are instrumental in developing Single Page Applications.

We'll also discuss the pros and cons of this approach. While it might be appealing to reduce server round-trips while delivering more responsive, fluid and interactive web pages, you'll also take on the responsibility for making sure things like back and forward buttons still behave the way the user would expect.

To put a handle on all these concepts, we'll build a simple SPA that will collect some data, validate it and store it to a database.

You will learn:

  • What components make up a single page application
  • How design patterns such as MVC and MVVM are used when building SPAs
  • About JavaScript libraries that address many aspects of SPA development
  • The implications of Mobile devices on SPAs
  • Key concepts such as Models, Collections, Events, Views and Routing

Prerequisites: Should be familiar with some sort of web development. Session will not discuss basics of web development or serving data to web sites.

Converting a Real VFP App to Xbase++Eric Lendvai

Moving VFP Applications ForwardBeyond Xbase++ 2.0

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.

Crushing the User's Experience: Building the Right (and Wrong) UIAndrew MacNeill

Moving VFP Applications ForwardSolidifying VFP Development

Presenter: Andrew MacNeill
Level: Advanced
When: Friday, October 18, 2:00 - 3:15, Elliott (R1)
Saturday, October 19, 5:15 - 6:30, Elliott (R2)

User interface is always a touchy subject. Do you emulate an existing application or create a brand new experience? Do you use flashy colors or stay neutral?

In this session, we'll go through different user interface choices you can make when building your VFP application and how and when to use them. We'll start with the standard desktop application; with Windows XP, 7 and 8 all out in user's environments, this can mean a wild ride. Can one single VFP application handle them all with minimal effort?

Let's also look at web and mobile applications using HTML and how they can improve or change your user interface decisions. The actual users themselves may also impact your choices; before showing a demo of what you think is the "Mona Lisa" of interfaces, make sure it fits in with the users' expectations.

You will learn:

  • Smart interface choices for different types of applications and how to build them
  • Best practices for deciding and testing your user interface
  • Guidelines for identifying approaches depending on your user's demographics
  • Strategies for presenting interfaces to clients and users

Prerequisites: None

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

Moving VFP Applications ForwardBeyond Xbase++ 2.0

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

Moving Forward from FoxPro: Tools and Technologies for TomorrowAndrew MacNeill

Moving VFP Applications ForwardPre-Conference

Presenter: Andrew MacNeill
Level: Advanced
When: Thursday, October 17, 1:00 - 4:00, Gilbert

Let's take a look at key technologies and products where you can leverage your FoxPro knowledge and still build new applications. We'll look at corporate technologies, cloud and even desktop applications and which ones are a good fit for different skill sets. If you're someone who builds full object-oriented systems, there's likely a better fit than for someone who works purely in code and procedures. But there are challenges with any new technology.

We'll go through the key things FoxPro developers should be aware of and how they relate back to VFP, covering the language, the development approach, data access and the actual development environment. Some features inspire while others confuse and we'll clear out that confusion, making it easier to choose the right environment for your experience. We'll build off the W5 approach (What, Who, When, Why and Where) and then add the "How" so you can make an informed decision.

Among the technologies being looked at will be the Microsoft platform (desktop and web), Lianja, Wakanda, xBase++, and yes, FoxPro in the form of ActiveVFP and WebConnection/FoxInCloud.

You will learn:

  • At least 5 products/technologies that can be used as a springboard from their VFP development experience
  • Benefits and the learning curve for each tool and technology
  • Overviews of each development environment and how it compares to VFP
  • Methods for building database applications in these environments
  • Ways to lean on your VFP experience when working in these areas

Prerequisites: None

Moving VFP Applications to the Cloud Using LianjaHank Fay

Moving VFP Applications ForwardWeb and Mobile

Presenter: Hank Fay
Level: Advanced
When: Friday, October 18, 11:30 - 12:45, Elliott (R1)
Saturday, October 19, 8:30 - 9:45, Elliott (R2)

Lianja provides us with the ability to move VFP applications to the Cloud (browser and mobile devices). In this session, we will discuss and demonstrate the style of development in Lianja most consistent with writing an application once, and having it run everywhere, as well as how to handle the (inevitable) exceptions. We will also show how every part of your application can be styled using CSS, to achieve the custom look you want, or to mimic the OS under which the application is running using CSS style sheets provided by Lianja. All of this will be done in the context of a sample app, which we will then deploy to the cloud, accessible for use during and after the conference.

You will learn:

  • The UI objects to embrace, and the ones to avoid-if-possible, when writing an app that will run in the cloud
  • How desktop objects are transformed when running in the cloud
  • How to use Lianja's built-in simulators in two-way design mode for the (inevitable) tweaks that make your app run the way you want, everywhere
  • How to program gestures to take advantage of mobile apps' capabilities
  • How to access mobile device hardware
  • How to specify certain validation actions to occur entirely on the client device—and what happens when validation has to occur on the server

Prerequisites: A familiarity with smartphone/tablet use will help place much of the talk in context. Other than that, there are no prerequisites.

Project PolarFox: Sneak PreviewSteffen F. Pirsig

Moving VFP Applications ForwardBeyond Xbase++ 2.0

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

VFP and HTML: Running Enterprise Apps on the Web with FoxInCloudTuvia Vinitsky

Moving VFP Applications ForwardPre-Conference

Presenter: Tuvia Vinitsky
Level: Intermediate, Advanced
When: Thursday, October 17, 1:00 - 4:00, Flagstaff

The FoxInCloud tool has shown that a native VFP app can run both as a 100% web HTML app and as a desktop VFP app. But what happens when you try to adapt a large enterprise application for the web? Programming complexities, HTML DOM differences, and design conflicts between the web and the desktop can turn the adaptation into a series of problems until the developer is bogged down and no longer sure how to proceed.

This session will take an actual enterprise application from desktop to web and demonstrate the skills and ideas you will need to successfully complete such a project. We will start with the original VFP project and see the coding and implementation all the way through to an HTML app running in a browser. The end result web application is currently deployed in both HTML and desktop format to hundreds of users.

You will learn:

  • How Foxincloud actually produces HTML and tools to assist with the adaptation
  • How to determine where your "gotchas' are going to be on the web
  • What will need rewriting to work in HTML: how compatible with HTML is your VFP app
  • When to use Javascript and CSS vs VFP in your code
  • What design concepts and new ways of thinking are required
  • How to manage third party development tools, ActiveX controls, and other gotchas
  • How to best implement a multi-tenant or multi-client deployment

Prerequisites: Solid VFP knowledge. Knowledge of West Wind Web Connection, IIS, HTML, and Javascript helpful.

Workshop on Migrating Applications to LianjaHank Fay

Moving VFP Applications ForwardPre-Conference

Presenter: Hank Fay
Level: Intermediate, Advanced
When: Thursday, October 17, 9:00 - 12:00, Flagstaff

In this half-day workshop, attendees are encouraged to bring their notebooks and an application they would like to begin migrating to Lianja. We will begin with data migration, and progress through each of the major stages of migration, with the goal being for attendees to have experienced the process of successfully migrating some part of their application, so they can take that experience home with them. Every migration is different, to a degree: by having multiple apps undergoing migration at the same time, we will be able to share many more challenges than would be encountered in a single application. Attendees will have provided for them the Lianja Development environment.

You will learn:

  • How to import data into Lianja
  • How to import data structure into an ERD system integrated with Lianja
  • How to specify RI rules associated with the data structure
  • How to migrate VFP forms into Lianja
  • How to migrate VFP reports into Lianja
  • How to migrate help into Lianja

Prerequisites: Bringing an application for migration with you is not required, but is highly suggested. Having an existing application you have created and cared for is also highly suggested, because that provides the background knowledge to learn from the challenges being encountered during the workshop.

Xbase++ from a VFP Developers PerspectiveEric Lendvai

Moving VFP Applications ForwardBeyond Xbase++ 2.0

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.

Web and Mobile

An Hour (or so) at the SPAStephen J. Bodnar

Web and MobileMoving VFP Applications Forward

Presenter: Stephen J. Bodnar
Level: Intermediate
When: Saturday, October 19, 10:00 - 11:15, Elliott (R1)
Sunday, October 20, 10:00 - 11:15, Elliott (R2)

Single-page Applications or SPAs are all the rage these days. What are they? Are they right for you?

Single-page Applications are web sites that let visitors move through the app without a page refresh. The application logic is pushed down to the client and the application pulls data as required. The application can maintain state and it might use local storage.

The concept of SPAs has been around since the early 2000's but lately they seem to be the favored approach for greenfield web applications. Not so long ago, there was a lot of talk about how "desktop" applications could never be replaced with web applications. In the past, using traditional HTML approaches, this was a safe bet. Today, using SPAs built with modern JavaScript libraries, current HTML and the latest CSS techniques, it may just be possible to replace a desktop application with a web application.

In this session we'll look at the purpose of an SPA and discuss the suitability of this approach for various applications. We'll look at some of the popular JavaScript frameworks that are instrumental in developing Single Page Applications.

We'll also discuss the pros and cons of this approach. While it might be appealing to reduce server round-trips while delivering more responsive, fluid and interactive web pages, you'll also take on the responsibility for making sure things like back and forward buttons still behave the way the user would expect.

To put a handle on all these concepts, we'll build a simple SPA that will collect some data, validate it and store it to a database.

You will learn:

  • What components make up a single page application
  • How design patterns such as MVC and MVVM are used when building SPAs
  • About JavaScript libraries that address many aspects of SPA development
  • The implications of Mobile devices on SPAs
  • Key concepts such as Models, Collections, Events, Views and Routing

Prerequisites: Should be familiar with some sort of web development. Session will not discuss basics of web development or serving data to web sites.

Building Mobile Web Applications with FoxPro and Web ConnectionRick Strahl

Web and MobileExtending VFP

Presenter: Rick Strahl
Level: Intermediate
When: Friday, October 18, 5:15 - 6:30, Gilbert (R1)
Sunday, October 20, 10:00 - 11:15, Gilbert (R2)

Mobile content is becoming more and more important for Web applications as we no longer live in a desktop-only world. Modern Web applications need to ensure that content can display reliably on mobile devices. There are a number of different approaches to take from mobile-first to dedicated mobile frameworks and a composite approach using responsive design. We'll discuss how using mobile-first frameworks like jQuery Mobile can help with creating purely mobile sites, how CSS frameworks like Bootstrap can simplify responsive design layout, as well as looking at ways to retrofit older Web applications for mobile views. In this session you'll learn about the various different front-end approaches and you'll see how to integrate with a FoxPro backend using Web Connection. We'll discuss when it makes sense to use each of the approaches and see examples of each in small samples demonstrating the different design choices. This session focuses heavily on HTML and design issues and covers integration with the FoxPro backend using AJAX techniques.

You will learn:

  • Concepts of Mobile-First and Responsive Design
  • About mobile-first with jQuery Mobile
  • About responsive design with the BootStrap CSS framework
  • How to approach retro-fitting existing sites for mobile devices
  • How to create rich client apps using AJAX against a FoxPro backend

Prerequisites: Some familiarity with HTML, CSS, JavaScript and Web Development. Web Connection knowledge useful but not required.

Expose Yourself (or How to Get Your Data on the Web)Stephen J. Bodnar

Web and MobileExtending VFP

Presenter: Stephen J. Bodnar
Level: Advanced
When: Friday, October 18, 8:30 - 9:45, Gilbert (R1)
Saturday, October 19, 2:00 - 3:15, Gilbert (R2)

You've got a great VFP app with a SQL Server back-end that works perfectly, but you need to start adding some web-based functionality or maybe you just need to expose the data to the web for one reason or another. In this session, we'll look at creating a Web API that will allow you to exchange data over the web without completely rewriting your app or fully exposing your SQL Server to the internet.

We'll look at Microsoft's Web API, part of the ASP.NET MVC tooling, which is a framework designed to let you create HTTP services available to any HTTP client including browsers, mobile devices, or any other application making HTTP calls.

In this session, we'll take an existing SQL Server database and develop a web API that demonstrates CRUD (Create, Read, Update, and Delete) functionality using the HTTP verbs GET, POST, PUT and DELETE. We'll use Entity Framework to create models of the data we want to expose to the web. We'll create repositories and repository interfaces to isolate our data-access from our business rules. We'll create WebAPI controllers that map the HTTP verbs to our CRUD actions so that we can create records, edit them, save them and delete them.

This session will show you one way you can start adding some web-based functionality without requiring a complete re-write of your VFP application.

You will learn:

  • How to create a web API allowing others to exchange data with your application
  • How to use Entity Framework to model your data for Web API
  • What it means to be RESTful
  • What HTTP Verbs are and how they are used
  • How data is passed over the web using JSON
  • Techniques and Tools for developing and debugging Web API

Prerequisites: This session will be code-heavy using basic C#, so a basic understanding of C# will be helpful, but not required.

How I Learned to Stop Worrying and Love jQueryDavid Giard

Web and Mobile

Presenter: David Giard
Level: Intermediate
When: Friday, October 18, 2:00 - 3:15, Gilbert (R1)
Saturday, October 19, 11:30 - 12:45, Gilbert (R2)

JavaScript is an excellent way to add rich client-side functionality to a web site. But differences in the DOM implementation by the various browsers and platforms can make JavaScript difficult. JQuery solves this by providing a library of functions that provide simplified, consistent, cross-browser, cross-platform JavaScript support.

In this session, I will show how to add jQuery to your applications and use it to add rich functionality to your web sites.

This presentation is heavy on examples, showing jQuery syntax and functionality; showing Ajax calls with jQuery; and showing jQuery UI examples.

You will learn:

  • jQuery syntax
  • How to use jQuery through specific examples
  • How to use jQuery UI through specific samples

Prerequisites: Web development, HTML

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

Moving VFP Applications to the Cloud Using LianjaHank Fay

Web and MobileMoving VFP Applications Forward

Presenter: Hank Fay
Level: Advanced
When: Friday, October 18, 11:30 - 12:45, Elliott (R1)
Saturday, October 19, 8:30 - 9:45, Elliott (R2)

Lianja provides us with the ability to move VFP applications to the Cloud (browser and mobile devices). In this session, we will discuss and demonstrate the style of development in Lianja most consistent with writing an application once, and having it run everywhere, as well as how to handle the (inevitable) exceptions. We will also show how every part of your application can be styled using CSS, to achieve the custom look you want, or to mimic the OS under which the application is running using CSS style sheets provided by Lianja. All of this will be done in the context of a sample app, which we will then deploy to the cloud, accessible for use during and after the conference.

You will learn:

  • The UI objects to embrace, and the ones to avoid-if-possible, when writing an app that will run in the cloud
  • How desktop objects are transformed when running in the cloud
  • How to use Lianja's built-in simulators in two-way design mode for the (inevitable) tweaks that make your app run the way you want, everywhere
  • How to program gestures to take advantage of mobile apps' capabilities
  • How to access mobile device hardware
  • How to specify certain validation actions to occur entirely on the client device—and what happens when validation has to occur on the server

Prerequisites: A familiarity with smartphone/tablet use will help place much of the talk in context. Other than that, there are no prerequisites.