Southwest Fox 2016
Southwest Xbase++ 2016

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

Southwest Fox 2016 Sessions

There are 7 conference tracks at Southwest Fox 2016. "Level" shows the expected Visual FoxPro 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, including working with SQL back-ends.
Moving VFP Applications Forward: This track covers topics related to modernizing VFP applications as well as alternatives for new platforms and future application development.
Solidifying VFP Development: This track will appeal to all VFP developers. Sessions cover either a) VFP fundamentals, aimed at those newer to VFP, whether moving up from FP2.x or coming to VFP from other languages; b) VFP best practices, aimed at helping all VFP developers improve; or c) 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. Topics in this track are application to both VFP and Xbase++ developers.
Web and Mobile: The sessions in this track are aimed at developers who want to learn more about creating web and connected mobile applications.

Keynote

Presenter: Phil Sherwood

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

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

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

Pre-Conference

Pre-ConferenceExtending VFP

Presenter: Rick Borup
Level: Intermediate, Advanced
When: Thursday, September 22, 9:00 - 12:00, Flagstaff

Distributed version control systems: You've heard about them. You've read about them. You've attended some conference sessions. Maybe you've downloaded and installed one, and perhaps you're actually even using it. But for a lot of developers, version control systems are still a strange and scary place when you get past the basics, especially when it comes to branching and merging. What you really want is a hands-on educational experience where you can learn by doing instead of just by watching and listening. If this describes your current relationship with version control, this pre-conference session is for you! Bring your laptop and be ready to work through a series of structured exercises designed to ease your fears and take you to a whole new level of comfort and proficiency with your version control system.

You will learn:

  • What distributed version control systems are all about
  • The theory behind branching and merging
  • How to use SourceTree and TortoiseHg
  • How and when to create branches
  • How and when to perform merges, and how to resolve conflicts
  • How to use a remote repository for solo and/or team development
  • How to use the VFPX FoxBin2Prg tool
  • How to use the HgFlow / GitFlow approach to branching and merging

Prerequisites: Some experience with Mercurial or Git is required. A laptop computer running Windows® 7, 8.1, or 10 is required for the exercises. Attendees will be asked to pre-install TortoiseHg and SourceTree on their laptops (both are free, and instructions will be provided in advance).

Pre-ConferenceExtending VFP

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

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

You will learn:

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

Prerequisites: None

Extending VFP

Extending VFP

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

wwDotnetBridge lets you call just about any .NET code directly from FoxPro and helps overcome most of the limitations of regular .NET COM interop. Using this small library opens up a number of opportunities to interface with .NET functionality that wouldn't otherwise be available. In this talk, you'll see 10 (or more, depending on time) small, ready to use and practical examples that demonstrate how you can integrate with .NET and use many open source libraries that are available for performing a host of useful everyday tasks that would be difficult or impossible to achieve natively in FoxPro.

You will learn:

  • What wwDotnetBridge is and how it works
  • About the wealth of .NET components ready to be integrated with FoxPro
  • About many implementation examples of wwDotnetBridge in FoxPro
  • About different approaches to integration
  • How to create a simple .NET component and call it with wwDotnetBridge
  • Many ideas how to leverage this technology in your apps

Prerequisites: Familiarity with COM in Visual FoxPro, some familiarity with .NET

Extending VFPPre-Conference

Presenter: Rick Borup
Level: Intermediate, Advanced
When: Thursday, September 22, 9:00 - 12:00, Flagstaff

Distributed version control systems: You've heard about them. You've read about them. You've attended some conference sessions. Maybe you've downloaded and installed one, and perhaps you're actually even using it. But for a lot of developers, version control systems are still a strange and scary place when you get past the basics, especially when it comes to branching and merging. What you really want is a hands-on educational experience where you can learn by doing instead of just by watching and listening. If this describes your current relationship with version control, this pre-conference session is for you! Bring your laptop and be ready to work through a series of structured exercises designed to ease your fears and take you to a whole new level of comfort and proficiency with your version control system.

You will learn:

  • What distributed version control systems are all about
  • The theory behind branching and merging
  • How to use SourceTree and TortoiseHg
  • How and when to create branches
  • How and when to perform merges, and how to resolve conflicts
  • How to use a remote repository for solo and/or team development
  • How to use the VFPX FoxBin2Prg tool
  • How to use the HgFlow / GitFlow approach to branching and merging

Prerequisites: Some experience with Mercurial or Git is required. A laptop computer running Windows® 7, 8.1, or 10 is required for the exercises. Attendees will be asked to pre-install TortoiseHg and SourceTree on their laptops (both are free, and instructions will be provided in advance).

Extending VFPTechnology and Business for the Developer

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

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

You will learn:

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

Prerequisites: None

Extending VFPPre-Conference

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

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

You will learn:

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

Prerequisites: None

Extending VFP

Presenter: Eric J. Selje
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Flagstaff (R1)
Saturday, September 24, 2:00 - 3:15, Flagstaff (R2)

You may know OneNote is a pretty convenient place to keep information. But with its ability to store text, graphics, audio, video, hyperlinks, along with its sharing and replication features, OneNote can be used in ways you may not have thought of! For example, you could deliver a complete portfolio of reports to all of your managers in OneNote, which they can then collaboratively markup. Putting together a meeting and want to create a dynamic attendee guide? Forget about static PDFs; OneNote can do that for you! And the best part is that you can control it all from within Visual FoxPro using OneNote's REST API, so you can move your data from VFP to OneNote.

You will learn:

  • Fundamentals of OneNote
  • That OneNote is actually a NoSQL database with replication and collaboration features
  • How to use REST calls from within VFP to populate OneNote

Prerequisites: None

Extending VFP

Presenter: Jody L. Meyer
Level: Beginner
When: Friday, September 23, 8:30 - 9:45, Flagstaff (R1)
Saturday, September 24, 5:15 - 6:30, Flagstaff (R2)

I am a VFP developer through and through. But... times are changing and I have found myself writing VFP front-ends to SQL Server back-ends. There have been times where the passed-through T-SQL code runs extremely fast and other times... not so much. Why?

Well, there are tools such as the SQL Server Execution Plan to help you resolve questions like speed issues. SQL Server creates and saves these Execution Plans for future use. SQL Server Management Studio gives us a way to look at these Execution Plans graphically and save them so we can share with other developers. In doing so, we can then work together to come up with the best solution for faster speed.

So, do you want to answer questions like:

  • Why is my T-SQL query running slow?
  • Is SQL Server using the indexes?
  • Why isn't SQL Server using an index?
  • Are there tools out there to help me determine this?

Most SQL Server developers and administrators will tell you, “It depends”. Execution Plans show you what's going on behind the scenes in SQL Server. The plans can provide you with a wealth of information on how SQL Server is executing your queries, including: which indexes are getting used or not used, how the data is being retrieved and joined, how aggregations in GROUP BY queries are put together, anticipated load, and the estimated cost of all the operations.

Execution Plans are a great addition to the tool belt of a developer. Understanding what they are telling you goes a long way to answering many of those why questions and leads you to better performance.

You will learn:

  • How SQL Server uses Estimated and Actual Execution Plans
  • How to read these Execution Plans
  • How to tweak your indexes and T-SQL for better performance
  • How to export an Execution Plan
  • About tools other than SSMS to explore Execution Plans

Prerequisites: Some SQL Server experience

Extending VFP

Presenter: Jody L. Meyer
Level: Beginner
When: Saturday, September 24, 10:00 - 11:15, Flagstaff (R1)
Sunday, September 25, 10:00 - 11:15, Flagstaff (R2)

SQL Server Indexing can be a bit of mystery. Having gone to a number of SQL Saturdays, I hear the experts say that we shouldn't have a lot of indexes and there may never be a perfect index for any given situation. However, for high performance, SQL Server should use an index to seek against the data instead of using a scan. There are numerous books, articles, blogs, and sessions (much like this one) on just SQL Server Indexing. It can all be a bit confusing. So, in this session, you'll get to know SQL Server indexing a bit better. We will explore indexing fundamentals. This session lays the groundwork for a solid foundation on some of the primary index types such as Heap, Clustered Indexes, and Nonclustered Indexes. We will explore what they are and how to build, alter and drop them. We will also explore the options available that can change the structure of indexes, such as fill factor and included columns.

SQL Server provides information on indexes through its metadata. It's important to understand what kind of information is available and where to find it. SQL Server also stores and uses statistical information on the available indexes, which provides insight into how SQL Server can and is using indexes. It provides the information needed to decipher why an index may or may not be selected for use.

We will also cover best practices. What do the experts say we should do? There are a lot of myths out there, too. We will look at a number of those.

SQL Server indexes require maintenance because, over time, performance benefits can wane, or through data modification, their sizes and the underlying statistics can bloat. We will look at a number of areas to consider: index fragmentation, heap bloat and forwarding, statistics, and in-memory statistics.

This session explores some index strategies: how and when to apply indexes to tables by walking through a number of patterns to help identify potential indexes. But having the indexes is only half the battle. We need to consider how we can use them to their fullest potential through query strategies. We will explore the effect that queries can have on whether indexes are being used and provide the expected performance improvements.

You will walk away with a better understanding of SQL Server's indexing and how to use it like a pro!

You will learn:

  • Indexing fundamentals
  • Metadata and statistics
  • Best practices and myths
  • Indexing maintenance
  • Indexing strategies
  • Query strategies

Prerequisites: Some SQL Server experience

Extending VFP

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

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

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

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

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

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

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

You will learn:

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

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

Extending VFP

Presenter: Rick Schummer
Level: All levels
When: Saturday, September 24, 8:30 - 9:45, Flagstaff (R1)
Sunday, September 25, 8:30 - 9:45, Flagstaff (R2)

XFRX has been around as a third party report preview replacement since 2001 and is considered one of the top-tier commercial add-on tools for improving the user experience with reporting in a Visual FoxPro application (version 5.0 to 9.0). A lot of developers I know purchased XFRX to incorporate PDF generation in their applications. The Report Preview capability however is awesome. It extends the previewer with a text search and the ability to export to various output formats. Eqeus most recently added the ability to preview reports in a Web browser with their new Web-based extension.

FoxyPreviewer is an open source project on CodePlex that also replaces the Visual FoxPro report preview. It extends the previewer with a search capability by previewing miniature pages, a text search, a printer selection dropdown, the number of copies you want printed, the ability to export to various output formats, and emailing a report to someone.Overall it is an impressive replacement, but like XFRX, it is more than just a previewer.

This session could go down as the battle of the report previewers, but the truth is, there is so much more to both of these Visual FoxPro report add-ons. During the 75 minutes, you will learn from someone who likes both products and has used both tools in production applications. There are differences in approaches, outputs, Visual FoxPro versions supported, toolbar features, implementation, licensing, and deployment strategies. The general idea of this session is to give you a good perspective on both tools, to show you how they are similar and different so you can understand which one is good for your existing and future products.

You will learn:

  • What it takes to integrate each of the reporting tools into a Visual FoxPro application
  • The advantages and disadvantages of FoxyPreviewer
  • The advantages and disadvantages of XFRX
  • How you can skip the previewer and leverage the output file capabilities
  • The implementation and deployment strategies involved
  • How to determine the costs to you as a developer and your customers

Prerequisites: An understanding of Visual FoxPro's reporting is beneficial.

Moving VFP Applications Forward

Moving VFP Applications Forward

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

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

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

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

You will learn:

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

Prerequisites: None

Moving VFP Applications Forward

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

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

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

You will learn:

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

Prerequisites: Experience in VFP development

Moving VFP Applications Forward

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

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

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

You will learn:

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

Prerequisites: None

Moving VFP Applications ForwardTechnology and Business for the Developer

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

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

Topics include:

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

You will learn:

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

Prerequisites: None

Moving VFP Applications Forward

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

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

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

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

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

You will learn:

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

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

Solidifying VFP Development

Solidifying VFP DevelopmentTaking Advantage of VFPX

Presenter: Eric J. Selje
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Elliott (R1)
Saturday, September 24, 5:15 - 6:30, Elliott (R2)

You've got years and years of legacy code to maintain. How can you be sure you're making changes without breaking everything and putting your company and your reputation at risk?

In this session we'll review what Unit Testing is, why you should be doing it, and how to use the VFPX tool FoxUnit to perform unit tests on your code. If it's been a while since you've looked at FoxUnit, you may be pleasantly surprised at how many new features have been added in the last few years, thanks to multiple contributors in the Fox family.

Refactor that code with confidence with FoxUnit!

You will learn:

  • What unit testing and TDD are
  • Why you should be doing it
  • What is FoxUnit
  • How to write Unit Tests in FoxUnit
  • How to integrate FoxUnit into a continuous integration cycle

Prerequisites: FoxPro coding experience

Solidifying VFP DevelopmentTechnology and Business for the Developer

Presenter: Doug Hennig
Level: Intermediate, Advanced
When: Saturday, September 24, 8:30 - 9:45, Elliott (R1)
Sunday, September 25, 10:00 - 11:15, Elliott (R2)

Rick Borup's sessions at previous Southwest Fox conferences really helped me get started using version control for my application development. Since then, I've made a ton of mistakes and learned a lot of lessons the hard way. This session discusses what has evolved into my team's best practices for version control. It's intended for those who are familiar with version control but are looking for ideas about how to improve their processes.

You will learn:

  • What to include in and what to exclude from the repository
  • When to commit
  • When to branch
  • About handling multi-developer, multi-branch scenarios
  • About handling merge problems
  • Workflow processes dealing with version control

Prerequisites: Some experience working with version control (the examples use Mercurial)

Solidifying VFP Development

Presenter: Christof Wollenhaupt
Level: All levels
When: Friday, September 23, 8:30 - 9:45, Elliott (R1)
Saturday, September 24, 2:00 - 3:15, Elliott (R2)

Visual FoxPro is a lot: it's fast, productive, stable, amazing, surprising... but it certainly isn't logical and consistent. Three decades with three fundamentally different programming concepts, four operating systems and two compilers left their traces in the product we love. FoxPro as a high-level development tool doesn't require knowledge of the internals, much less than .NET or JavaScript do. But should you encounter problems it's helpful to know a bit about what's going on behind the scenes. This session covers the internal management of variables, memory management, the handling of classes, objects and containers (and why those are the same, yet completely different), the system datasession, the impact of cache, buffers and transactions, table access, Rushmore optimization, and so on.

During the development of Guineu I learned even more details of FoxPro's inner working that are added to this new version of the session, e.g. how filters are not always what they seem and how the various FoxPro runtimes differ in sometimes subtle ways.

You will learn:

  • How variables are managed
  • How memory and buffers are managed
  • How VFP deals with objects
  • How to avoid problems with a buffer
  • What to consider with Rushmore

Prerequisites: None

Solidifying VFP Development

Presenter: Christof Wollenhaupt
Level: All levels
When: Saturday, September 24, 10:00 - 11:15, Elliott (R1)
Sunday, September 25, 11:30 - 12:45, Elliott (R2)

In this PowerPoint-free session, we talk about practical implementations in the broad area of security. Countless code samples—all available to you—cover various aspects around security:

  • How to implement a secure login dialog
  • How to use the CryptoAPI
  • How to encrypt and sign data
  • How to check files for manipulations
  • How to harden an application against invalid input
  • How to use the report designer securely
  • How to protect your application against code theft
  • How to transfer data securely
  • What you have to consider when accessing a SQL server
  • What to consider with distributed applications

All samples can easily be modified to suit your own needs and to increase the security in your application.

You will learn:

  • What security risks you face as a developer
  • How to use various security related technologies

Prerequisites: None

Taking Advantage of VFPX

Taking Advantage of VFPXSolidifying VFP Development

Presenter: Eric J. Selje
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Elliott (R1)
Saturday, September 24, 5:15 - 6:30, Elliott (R2)

You've got years and years of legacy code to maintain. How can you be sure you're making changes without breaking everything and putting your company and your reputation at risk?

In this session we'll review what Unit Testing is, why you should be doing it, and how to use the VFPX tool FoxUnit to perform unit tests on your code. If it's been a while since you've looked at FoxUnit, you may be pleasantly surprised at how many new features have been added in the last few years, thanks to multiple contributors in the Fox family.

Refactor that code with confidence with FoxUnit!

You will learn:

  • What unit testing and TDD are
  • Why you should be doing it
  • What is FoxUnit
  • How to write Unit Tests in FoxUnit
  • How to integrate FoxUnit into a continuous integration cycle

Prerequisites: FoxPro coding experience

Technology and Business for the Developer

Technology and Business for the Developer

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

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

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

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

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

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

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

You will learn:

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

Prerequisites: None

Technology and Business for the Developer

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

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

You will learn:

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

Prerequisites: Experience teaching or training end users

Technology and Business for the DeveloperExtending VFP

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

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

You will learn:

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

Prerequisites: None

Technology and Business for the DeveloperSolidifying VFP Development

Presenter: Doug Hennig
Level: Intermediate, Advanced
When: Saturday, September 24, 8:30 - 9:45, Elliott (R1)
Sunday, September 25, 10:00 - 11:15, Elliott (R2)

Rick Borup's sessions at previous Southwest Fox conferences really helped me get started using version control for my application development. Since then, I've made a ton of mistakes and learned a lot of lessons the hard way. This session discusses what has evolved into my team's best practices for version control. It's intended for those who are familiar with version control but are looking for ideas about how to improve their processes.

You will learn:

  • What to include in and what to exclude from the repository
  • When to commit
  • When to branch
  • About handling multi-developer, multi-branch scenarios
  • About handling merge problems
  • Workflow processes dealing with version control

Prerequisites: Some experience working with version control (the examples use Mercurial)

Technology and Business for the DeveloperMoving VFP Applications Forward

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

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

Topics include:

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

You will learn:

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

Prerequisites: None

Technology and Business for the Developer

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

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

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

You will learn:

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

Prerequisites: None

Web and Mobile

Web and Mobile

Presenter: Doug Hennig
Level: All levels
When: Friday, September 23, 11:30 - 12:45, Gilbert (R1)
Saturday, September 24, 5:15 - 6:30, Gilbert (R2)

Laying out a web page using HTML and CSS can be challenging. Do you use the older table mechanism or CSS floats to place objects side-by-side? How do you deal with differences in browsers? And what about handling different devices: phones, tablets, laptops, and desktops?

Bootstrap is a free, open source framework for developing responsive, mobile-first web sites. It solves many problems web developers typically face and makes it easy to create beautiful web sites in record time, even for inexperienced developers.

This session shows how to get started with Bootstrap, examines using its grid system to easily layout your page elements, and discusses how Bootstrap components add attractive and functional elements to your web site. We'll do a "makeover" of a real web site to show how easy is it to make it more attractive, functional, and mobile-friendly.

You will learn:

  • Where to download Bootstrap and related resources
  • How to add Bootstrap to your web site
  • How to work with Bootstrap's grid system
  • How to use Bootstrap components and themes

Prerequisites: Basic knowledge of HTML and CSS

Web and Mobile

Presenter: Rick Strahl
Level: All levels
When: Friday, September 23, 3:30 - 4:45, Gilbert (R1)
Sunday, September 25, 11:30 - 12:45, Gilbert (R2)

Mobile and rich client applications continue to be in high demand and this session describes how to build mobile applications based on Web technologies that can run either on the Web in a Web Browser or on-device using hybrid technology like Cordova. We'll look at a small application that runs both on the Web and from a device and interacts with a Visual FoxPro based JSON service on the server using Web Connection. You'll see what's involved in building rich client side interactivity using the new version AngularJS 2 and the Bootstrap CSS framework as well how to build service interfaces that can provide the data to provide to the front end application.

You will learn:

  • How to create REST Services that accept and return JSON with FoxPro (and Web Connection)
  • How to create client interfaces using the new AngularJs 2 JavaScript framework
  • How to create Web sites that work responsively on desktop down to mobile
  • How to use the Bootstrap CSS framework
  • How to create applications that can run in the browser and as mobile apps
  • How to use Cordova to create mobile apps

Prerequisites: Some familiarity with HTML, JavaScript and CSS

Platinum Sponsors