Sessions by Track

There are 7 conference tracks at Southwest Fox. "Level" shows the expected VFP 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, October 14, 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; or VFP best practices, aimed at helping all VFP developers improve.

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 for VFP Developers: This track will look at tools, technologies and techniques to make life as a developer easier and more productive.

Agile and Lean Development practices are gaining a lot of traction in the development world at large, but are largely misunderstood and frowned upon by VFP developers. Dismissing these practices is a huge mistake. Agile and Lean practices can be fit into any organization and can boost the productivity and job satisfaction of any developer. In this session we'll discuss the underlying principles of both of these approaches. Many advocates of these approaches take an all-or-nothing approach that smacks of elitism and zealotry. That will not be the case with this session. Instead, we'll look at each of the individual pieces and principles of these approaches from the standpoint of what makes sense for you and your organization - which is the original intent behind all of them.

You will learn:

The basics behind Agile Approach to Development

The basics behind Lean Development

How to apply Agile and Lean concepts to new VFP Development

How to apply Agile and Lean concepts to VFP systems currently under development and/or in maintenance mode

Ruby is a powerful, object-oriented, open-source language with a clean and easily understandable syntax. Originally released to the public in 1995, widespread interest in the Ruby language really began to take off in 2003 with the release of the Ruby on Rails® framework. Also known as "RoR" or simply "Rails", Ruby on Rails is an open-source Web framework that makes it possible to quickly and easily create data-based Web applications. Together, the Ruby language and the Ruby on Rails framework can become an exciting and powerful addition to any developer's toolbox. This session introduces both the Ruby language and the Rails framework, focusing on their installation and use on a Windows® platform with a perspective geared toward experienced Visual FoxPro developers.

You will learn:

How to install Ruby and the Rails framework on Windows

Ruby language essentials

How Ruby is similar to VFP

How Ruby differs from VFP

How Ruby on Rails implements the MVC pattern

How to build a Web application in Rails

Prerequisites: Some experience developing web applications and a basic understanding of HTML would be helpful but is not required.

This session will be a fast-paced overview of web development from the perspective of a VFP developer.

Need to get all or part of your VFP application on the web but don't know where to start? In this pre-con session we'll talk about the basics of web development for a VFP developer. Web development has a number of common stumbling blocks for desktop developers so we'll spend some time discussing the differences, see where developers normally go wrong, and cover some of the do's and don'ts. This pre-con session will also cover the basic web development model, then take a look at a few different web development frameworks that can be used to get your app on the web.

The second half of the session will go into more detail about using ASP.NET as your framework of choice. We'll do a quick tour of the Visual Studio IDE, talk about the .NET language (C# in particular), discuss server side controls and then create a simple reporting application that shares data with a VFP app. The goal of this pre-con session isn't to turn you into a web or ASP.NET developer in a few hours (sorry, it's going to take more time than that!), but to show you where to begin.

NOTE: This session will only cover "Classic" ASP.NET, not ASP.NET MVC.

You will learn:

Basics of web development

Common stumbling blocks

How to choose a framework

Why ASP.NET?

ASP.NET architecture

How easy (and how hard) web development can be

Prerequisites: Basic HTML familiarity is essential. Familiarity with C# will be helpful.

TDD, OCP, LSP, ISP, DIP, DRY, IoC, LOC, SRP, DbC, CDD, DDD: Our world is filled with three letter acronyms that are meant to make our lives easier, if only we could remember what each of them means.

In this pre-conference session we will extend a real-world application with some new features. "Real world" here means a typical, really messy, historically grown application; not a demo application carefully crafted for a session.

During the course we will start by using test-driven development which mainly means unit testing code. However, test-driven development is more than just writing some tests. By strictly limiting additions to whatever is needed to make the test pass, we avoid writing overly complex code.

As we move along with testing we will automatically discover the need for other object oriented design principles and apply them in the VFP world, including:

Single-Responsibility Principle

Open Closed Principle

Liskov-Substitution Principle

Inversion of Control

Don't Repeat Yourself

These principles are one possible way to achieve a solid design and implementation.

There's always more than one way to skin a cat, though. Sometimes you have to violate the principles above on purpose. We will cover situations where either the technology (that is, VFP) doesn't support them, or other limiting factors in the real world prevent us from doing so.

At the end we will apply these principles to some well-established techniques in the VFP community such as the global application object, meta-data driven applications, and other VFP specific solutions. 15 years after their introduction some of them might better be replaced by more current approaches.

FoxBase and FoxPro applications have been around for well over 20 years, and many are still in use that contain important business information in FoxPro tables. Visual FoxPro is an excellent tool for accessing and manipulating this data on Windows. Are there options to read, write, update and delete this information using tools that will run natively on the Mac OS X and Linux platforms? We'll be looking at the options that gain you access to the riches of this business information, extending their life if additional and alternative platforms are in your business future.

You will learn:

How to read, write and query data contained in FoxPro tables natively from the Mac OSX and Linux operating systems

What the performance numbers are when compared to running from within Visual FoxPro itself, in both local and network environments

About configuration issues and other "gotchas" when accessing data from Mac and Linux

About licensing issues when using these technologies in your applications

The subject of Artificial Intelligence was huge in the 80s and 90s but what happened? We'll be looking at the current state of artificial intelligence as it applies to business database applications in the modern environment. Using AI techniques we can build expert systems to analyze huge amounts of data, from a greater number of disparate sources, in less time, to make better business decisions that no human could hope to match.

You will learn:

The fundamental concepts of neural networks compared to expert systems and the benefits to each

How the lines between Neural Networks and Expert Systems can be blurred with the advance of Deterministically structured databases

How AI adds knowledge and reasoning to existing applications. to make them friendlier, smarter, more sensitive to user behavior and more adaptive to changes in the business environment

How the rise of the Internet can be leveraged as a database to build knowledge easily

Prerequisites: A general knowledge of Visual FoxPro programming and database concepts.

This session examines some controls you can add to your applications to provide a cleaner or fresher user interface. Controls discussed include a splitter, a combobox that drops down to a TreeView control, object-oriented Microsoft Office-like menus, a 100% VFP code date picker control, a control for displaying "balloon tips", and a modern-looking progress bar control.

You will learn:

How to use a splitter control to allow users to resize different parts of a form

How the combotree control allows your users to select from complex information while taking up little screen real estate

Enhancing the user experience has become a necessity for new development. Users are demanding easier ways to navigate and view their data. There is a figurative "world" of GUI elements and libraries out there for enhancing the user experience via the web browser. Why not incorporate some of these into your Windows form applications using the Web Browser control? This session will show you how you can significantly enhance the look and feel of your application by creating custom controls based on the Web Browser control. Learn how to seamlessly display data, accept user input, and respond to events and how to hook into a world of cool visual libraries and services using the Web Browser control. Practical examples will demonstrate the benefits the Web Browser control can offer.

You will learn:

How to maximize the potential of the Web Browser control

How to accept user input from the Web browser control

How to repond to events and call backs to and from the Web Browser control

In this session I'll introduce the concepts behind calling .NET components via COM Interop from Visual FoxPro and demonstrate how to create those components and publish their functionality so they can be accessed by VFP.
In addition I'll talk about some helper tools that allow you to access not only COM registered components, but almost all .NET components both in the framework and those from third parties, static members, enumerations, arrays and other types that aren't directly accessible through COM Interop. These tools make it much easier to take advantage of the wealth of functionality of .NET in your FoxPro application. I'll demonstrate several useful examples, including calling Web Services through a .NET Web Service proxy, automating a WinForm application and implementing a multi-threaded application controlled by VFP by using .NET as a thread controller.

You will learn:

How to call .NET components via COM Interop from Visual FoxPro

The limitations of plain COM interop

How to host the .NET runtime inside of Visual FoxPro

How to work around some of the limitations of FoxPro to .NET COM interop

Prerequisites: Some familiarity with COM object usage and the .NET type system

You always knew that FoxPro is different from every other programming language! You had a pretty clear idea that the development environment of Visual FoxPro is far superior to the one found in .NET, Java, and PHP. How else is it possible that those languages exists for years or even more than a decade and still lack features that FoxPro sported for eons? Even the simplest task in any of these languages requires an incredible amount of time. It's certainly not surprising that every single .NET project takes a multitude of time of a comparable VFP project to complete.

Ever thought along these lines? Then this session might have a few surprises for you. There will be a few insights in how FoxPro and other languages (primarily .NET) differ. We will see how even minor differences in the languages lead to vastly different application designs. It shouldn't come as surprise that many techniques published in books are aimed at C++, .NET and Java developers. Those techniques are good for those languages, but often a sub-optimal choice for VFP. Nonetheless, they were adopted by the VFP community and naturally failed to deliver the promised value.

If you have years of experience with Visual FoxPro, this session will support you in using .NET more efficiently. Yet, at the same time, it should made clear that "knowing OOP" is by far not enough to master .NET. Becoming proficient in .NET isn't the matter of learning a language; it's a matter of learning an idiom.

If you are one of the poor souls that started as a .NET or Java developer and have been forced to work on a VFP project, you'll learn that VFP isn't as awful as you first thought; just very different.

You will learn:

How to approach other languages without suffering the "nothing is available" syndrome

How languages differ despite looking similar at first glance

How .NET and VFP developers think and what their respective approaches are

Windows 7 is arguably the best looking version of Windows ever! Although Microsoft's new OS offers many improvements such as improved stability, speed, power management, and support for the latest hardware technologies, most people will notice the User Interface more than anything else. Windows 7's newly designed Taskbar and its many cool features are no doubt the most obvious, and perhaps most praised improvements to the UI. As VFP developers, we have no built-in support to enable us to access most of this great new functionality. In this session we will begin by reviewing all the new functionality offered by the Windows 7 Taskbar such as Jump Lists, Taskbar Toolbars, Custom & Live Thumbnail Previews, Taskbar Progress Meters, and more. We will then explore how to use my recently accepted new VFPX project, the Windows 7 Taskbar Library (Win7TLib), to allow full integration of these features into your VFP applications with minimal effort. By taking advantage of this functionality, you can really enhance your users' experience in Windows 7.

You will learn:

What are the many cool new features of the Windows 7 Taskbar

How to use the Win7TLib VFPx project to easily integrate these new features and enhance your applications

How to make your VFP apps "designed for Windows 7" by incorporating Jump Lists, Taskbar Toolbars, and much more

Have you ever wanted to send a Visual FoxPro report to a PDF file? Well, there are a number of tools out there that can help you do that. There are tools available to allow you to control: the name and location of the PDF, merging with other PDF files, creating watermarks, setting document properties, superimpose documents, protecting the document with a password and much more. What if your customer has a PDF form that needs to have the blanks filled in. There are a number of tools out there to do that as well. In this session Jody will show you how to do all of these things using a variety of tools.

Once you get started automating Microsoft Office, you're likely to find more and more uses for Automation. But you also start running into peculiarities of the individual servers, file format issues, and other complications. In this session, we'll look at a number of issues related to automating the Office servers, including exploring why recording a macro can lead you astray. Most of the topics will apply to multiple Office servers, but we'll also look at the so-called Outlook "hell patch" and how you can automate Outlook email with a minimum of fuss.

You will learn:

How the Office servers are the same and how they differ

Why recording a macro isn't always the best way to figure out how to automate a process

Silverlight is intended to be a front end for Internet applications. However, Silverlight 4 applications can be "installed" on machines without Internet access. Silverlight 4 applications can communicate with COM servers in the same way VFP applications can. So we have the basis to build Silverlight applications as desktop applications. A Silverlight desktop application can communicate with a COM server build with VFP. This VFP COM server can access a VFP database or a SQL Server database and can contain any business logic.

The Silverlight application will provide only the user interface tier. In this way a VFP application can be equipped with the most modern Silverlight user interface and can run on standalone machines and in local networks.

You will learn:

How to build a VFP COM server

How to access databases from COM servers

How to build a Silverlight front-end application

How to set up interaction between a Silverlight front-end and a VFP COM server

Imagine having the entire Windows32 framework at your disposal, allowing you to do things with your Visual FoxPro application you didn't think were possible. You can, with the VFPC32 library! It slices (your development time)! It dices (your filesystem and registry)! It even purees (I'm not sure what this means)! Watch as it reveals information about your environment you didn't even know about! Written by Christian Ehlscheid, this FLL is guaranteed to save you time and money or you will get a full refund!

You will learn:

What is the Windows32 framework, vs. .NET

How to manually take advantage of the Win32 framework

How to take advantage of VFP2C32.fll

Samples of existing projects that use VFP2C32, including projects on VFPX

Direct2D is the latest graphics API for Windows and is designed to offer high-quality and high performance rendering of 2-D graphics. The Direct2D API was designed to interoperate with GDI and GDI+, but because it uses hardware-acceleration, it offers a much faster rendering engine. This makes it ideal for creating controls and libraries for other developers as well as server-side rendering of 2-D graphics. Users have been demanding a richer visual experience from their applications; Direct2D was created to answer this demand as well as provide a scalable API for developers to take advantage of newer, graphics hardware-accelerated computers. Sample code will be provided to help kick-start your Direct2D development experience.

You will learn:

The advantages of using Direct2D instead of GDI and GDI+

How to implement Direct2D graphics using the updated GDIPlusX library

The system requirements for Direct2D and how to install it

Prerequisites: Should have some detailed knowledge and experiece using GDI and/or GDI+ to create 2-D graphics. Works with Windows Vista and later.

Web development is slipping more heavily into client side development and the jQuery JavaScript library is one of the most popular tools that is used to provide that functionality. In this session I'll demonstrate how jQuery can be used effectively to build client-centric Ajax applications that connect to a Visual FoxPro Web Server application using Web Connection, highlighting both the Ajax features of jQuery as well as some of the helpful tools in the Web Connection framework that greatly facilitate making server callbacks and retrieving data into the client and updating the user interface dynamically.

You will learn:

How to use jQuery's AJAX features

How to build a reusable service proxy to simplify callbacks

How to create server callback handler methods with Web Connection

How to use tools to create and consume JSON data from FoxPro types and cursors

The subject of Artificial Intelligence was huge in the 80s and 90s but what happened? We'll be looking at the current state of artificial intelligence as it applies to business database applications in the modern environment. Using AI techniques we can build expert systems to analyze huge amounts of data, from a greater number of disparate sources, in less time, to make better business decisions that no human could hope to match.

You will learn:

The fundamental concepts of neural networks compared to expert systems and the benefits to each

How the lines between Neural Networks and Expert Systems can be blurred with the advance of Deterministically structured databases

How AI adds knowledge and reasoning to existing applications. to make them friendlier, smarter, more sensitive to user behavior and more adaptive to changes in the business environment

How the rise of the Internet can be leveraged as a database to build knowledge easily

Prerequisites: A general knowledge of Visual FoxPro programming and database concepts.

When the collection base class was added to VFP 8, it gave us the opportunity to make our applications look more like those in other object-oriented languages. Collections let us manage groups of related objects through a straightforward interface, and avoid the peculiarities of working with arrays in VFP.

In this session, we'll cover the basics of using collections, the reasons why they're better than arrays, and show how they improve object models. We'll also consider the weaknesses of collections in VFP and talk about workarounds.

Imagine if your database application could switch from using FoxPro tables, to Microsoft SQL Server, MySQL, or to PostgreSQL, by simply changing one line in a configuration file? Imagine further if this change could occur programmatically at run time, without having to write different code to handle each different back-end separately?

If you've ever worked with more than one SQL back-end, you'll appreciate the complexity and difficulty that comes in wanting to support more than one, especially with the same set of code for your VFP applications. At first blush you might think that Remote Views or the Cursor Adaptor can handle this without any additional steps, but as this session will demonstrate, this is not the case.

In this session we will examine a strategy for creating database abstraction classes which hide all the complexities of working with various different SQL back-ends, including FoxPro local data. By using this approach your applications become decoupled from the back-end and can switch easily without recoding, even on the fly. The session will also cover the advantages and disadvantages of this approach, under what circumstances you may wish to use this technique, and how you can easily extend the classes to handle SQL back-ends that do not even exist yet.

You will learn:

Why it can be difficult to support multiple SQL back-ends

Why Remote Views and the Cursor Adaptor are not the solution

How to create a Database Abstraction Class (DAC) to enable supporting and switching between multiple back-ends easily

The advantages and disadvantages of using a DAC for your VFP projects

How to extend the DAC classes to support future SQL database back-ends

Prerequisites: Some familiarity with Business Objects, SQL Pass-Through, and at least one of the following back ends: Microsoft SQL Server, MySQL, PostgreSQL

Design patterns are abstract solutions that can be applied to solve common programming challenges in object-oriented software systems. Although it's been fifteen years since the seminal book Design Patterns was published, many developers are probably still not taking advantage of all that design patterns have to offer. While design patterns may most often be thought of in the context of languages like Java or C#, they are equally applicable and useful in Visual FoxPro. This session explores several common design patterns and shows you how to apply them to your work in Visual FoxPro.

You will learn:

What design patterns are

How patterns help solve common object-oriented design problems

How to recognize opportunities to apply design patterns in your own work

With the release of SP2, creating reports in VFP 9 became much more powerful. We now have the ability to create custom features that can be used over and over again on numerous reports. For example, would you like the ability to easily add a watermark to reports? How about the ability to dynamically reduce the font on long text so it fits within a narrow column? The possibilities are endless and no one developer can create them all. My new reporting framework and set of utilities allows each of us to create our own custom features as well as share them with the world and lets us all tap into the wealth of ability the FoxPro Community has to offer. This new project will become part of the FoxPro Community effort on VFPX (CodePlex). In this session, we'll walk through the entire concept from both sides. You'll learn how to use features developed by other developers, you'll learn how to create your own features, and you'll also learn how to share those features with other developers.

The PEM Editor, available for free on VFPX, is a utility created by the collaborative efforts of several VFP Community members. Its early roots were started by Doug Hennig and Marcia Akins as a replacement for a few VFP dialogs. Jim Nelson, along with help from Doug Hennig, Matt Slay, Rick Schummer, and many others, has since taken the project over and evolved this utility into a complete replacement for the Edit Property/Method dialog, the New Property dialog, the New Method dialog, the Properties window, and the Document View. Jim suffers from "Scope Creep" and continues to enhance this tool with mind-blowing features on an ongoing basis. Once you start using this utility, you'll find it invaluable. It's become one of my absolute MUST HAVES for my development toolbox.

In this session I'll start by showing you the basics of installing, using, and customizing the PEM Editor. Then we'll get into the cool stuff like copying properties and methods (including code) from one class into another. We'll look at a bunch of cool IDE tools such as Enhanced Beautify, MRUs, and Go To Definition. We'll also explore one of my favorite features; the new design-time event handlers and builders. With this feature you can put code in your classes and the PEM Editor can automatically fire that code at various times. For example, resize a container at design-time and objects inside the container can automatically resize too! Think of the possibilities! Drop a container on a form, resize it, and everything inside resizes without any additional design work!

Come see why I'm so passionate about this development tool. And knowing how many new features Jim keeps adding, I'm sure they'll be even more new features added between now and the start of Southwest Fox. Don't miss this session. Come see what all the buzz is about!

You will learn:

How to install and customize the PEM Editor to your preferences

How to use the basic features of the PEM Editor

How to use the bells and whistles in the PEM Editor

How to use the PEM Editor to implement design-time features in your classes

TDD, OCP, LSP, ISP, DIP, DRY, IoC, LOC, SRP, DbC, CDD, DDD: Our world is filled with three letter acronyms that are meant to make our lives easier, if only we could remember what each of them means.

In this pre-conference session we will extend a real-world application with some new features. "Real world" here means a typical, really messy, historically grown application; not a demo application carefully crafted for a session.

During the course we will start by using test-driven development which mainly means unit testing code. However, test-driven development is more than just writing some tests. By strictly limiting additions to whatever is needed to make the test pass, we avoid writing overly complex code.

As we move along with testing we will automatically discover the need for other object oriented design principles and apply them in the VFP world, including:

Single-Responsibility Principle

Open Closed Principle

Liskov-Substitution Principle

Inversion of Control

Don't Repeat Yourself

These principles are one possible way to achieve a solid design and implementation.

There's always more than one way to skin a cat, though. Sometimes you have to violate the principles above on purpose. We will cover situations where either the technology (that is, VFP) doesn't support them, or other limiting factors in the real world prevent us from doing so.

At the end we will apply these principles to some well-established techniques in the VFP community such as the global application object, meta-data driven applications, and other VFP specific solutions. 15 years after their introduction some of them might better be replaced by more current approaches.

One of the coolest projects in VFPX is ThemedControls by Emerson Santon Reed (the 2009 Southwest Fox Ceil Silver Ambassador). The ThemedControls project consists of eight controls—ThemedButton, ThemedContainer, ThemedExplorerBar, ThemedForm, ThemedOutlookNavBar, ThemedTitlePageFrame, ThemedToolbox, and ThemedZoomNavBar—that allow you to provide the modern interface users expect in today's applications. This session looks at these controls in detail and shows how to use them in your own applications.

With the release of SP2, creating reports in VFP 9 became much more powerful. We now have the ability to create custom features that can be used over and over again on numerous reports. For example, would you like the ability to easily add a watermark to reports? How about the ability to dynamically reduce the font on long text so it fits within a narrow column? The possibilities are endless and no one developer can create them all. My new reporting framework and set of utilities allows each of us to create our own custom features as well as share them with the world and lets us all tap into the wealth of ability the FoxPro Community has to offer. This new project will become part of the FoxPro Community effort on VFPX (CodePlex). In this session, we'll walk through the entire concept from both sides. You'll learn how to use features developed by other developers, you'll learn how to create your own features, and you'll also learn how to share those features with other developers.

Windows 7 is arguably the best looking version of Windows ever! Although Microsoft's new OS offers many improvements such as improved stability, speed, power management, and support for the latest hardware technologies, most people will notice the User Interface more than anything else. Windows 7's newly designed Taskbar and its many cool features are no doubt the most obvious, and perhaps most praised improvements to the UI. As VFP developers, we have no built-in support to enable us to access most of this great new functionality. In this session we will begin by reviewing all the new functionality offered by the Windows 7 Taskbar such as Jump Lists, Taskbar Toolbars, Custom & Live Thumbnail Previews, Taskbar Progress Meters, and more. We will then explore how to use my recently accepted new VFPX project, the Windows 7 Taskbar Library (Win7TLib), to allow full integration of these features into your VFP applications with minimal effort. By taking advantage of this functionality, you can really enhance your users' experience in Windows 7.

You will learn:

What are the many cool new features of the Windows 7 Taskbar

How to use the Win7TLib VFPx project to easily integrate these new features and enhance your applications

How to make your VFP apps "designed for Windows 7" by incorporating Jump Lists, Taskbar Toolbars, and much more

The PEM Editor, available for free on VFPX, is a utility created by the collaborative efforts of several VFP Community members. Its early roots were started by Doug Hennig and Marcia Akins as a replacement for a few VFP dialogs. Jim Nelson, along with help from Doug Hennig, Matt Slay, Rick Schummer, and many others, has since taken the project over and evolved this utility into a complete replacement for the Edit Property/Method dialog, the New Property dialog, the New Method dialog, the Properties window, and the Document View. Jim suffers from "Scope Creep" and continues to enhance this tool with mind-blowing features on an ongoing basis. Once you start using this utility, you'll find it invaluable. It's become one of my absolute MUST HAVES for my development toolbox.

In this session I'll start by showing you the basics of installing, using, and customizing the PEM Editor. Then we'll get into the cool stuff like copying properties and methods (including code) from one class into another. We'll look at a bunch of cool IDE tools such as Enhanced Beautify, MRUs, and Go To Definition. We'll also explore one of my favorite features; the new design-time event handlers and builders. With this feature you can put code in your classes and the PEM Editor can automatically fire that code at various times. For example, resize a container at design-time and objects inside the container can automatically resize too! Think of the possibilities! Drop a container on a form, resize it, and everything inside resizes without any additional design work!

Come see why I'm so passionate about this development tool. And knowing how many new features Jim keeps adding, I'm sure they'll be even more new features added between now and the start of Southwest Fox. Don't miss this session. Come see what all the buzz is about!

You will learn:

How to install and customize the PEM Editor to your preferences

How to use the basic features of the PEM Editor

How to use the bells and whistles in the PEM Editor

How to use the PEM Editor to implement design-time features in your classes

Direct2D is the latest graphics API for Windows and is designed to offer high-quality and high performance rendering of 2-D graphics. The Direct2D API was designed to interoperate with GDI and GDI+, but because it uses hardware-acceleration, it offers a much faster rendering engine. This makes it ideal for creating controls and libraries for other developers as well as server-side rendering of 2-D graphics. Users have been demanding a richer visual experience from their applications; Direct2D was created to answer this demand as well as provide a scalable API for developers to take advantage of newer, graphics hardware-accelerated computers. Sample code will be provided to help kick-start your Direct2D development experience.

You will learn:

The advantages of using Direct2D instead of GDI and GDI+

How to implement Direct2D graphics using the updated GDIPlusX library

The system requirements for Direct2D and how to install it

Prerequisites: Should have some detailed knowledge and experiece using GDI and/or GDI+ to create 2-D graphics. Works with Windows Vista and later.

Agile and Lean Development practices are gaining a lot of traction in the development world at large, but are largely misunderstood and frowned upon by VFP developers. Dismissing these practices is a huge mistake. Agile and Lean practices can be fit into any organization and can boost the productivity and job satisfaction of any developer. In this session we'll discuss the underlying principles of both of these approaches. Many advocates of these approaches take an all-or-nothing approach that smacks of elitism and zealotry. That will not be the case with this session. Instead, we'll look at each of the individual pieces and principles of these approaches from the standpoint of what makes sense for you and your organization - which is the original intent behind all of them.

You will learn:

The basics behind Agile Approach to Development

The basics behind Lean Development

How to apply Agile and Lean concepts to new VFP Development

How to apply Agile and Lean concepts to VFP systems currently under development and/or in maintenance mode

Code reviews have serious benefits and competitive advantages for those software shops that use them. They uncover bugs, ensure coding standards are enforced, lead to more understandable and maintainable code, mentor teammates on techniques and approaches, and cross-train staff so the company supports their software more efficiently. They provide a competitive advantage. Yet developers shy away from code reviews and often work towards the elimination of them where they work. Why is it that many developers fear code reviews? I believe the reason most developers avoid them is the fear of failure or showing they make mistakes in front of their peers. Other developers will claim there is no time in the project timeline for code reviews. Management will claim this is unbillable time. This session will show you this fear is unnecessary, and when properly approached, code reviews can be a natural part of the development process.

This session should be highly interactive. I will bring lots of ideas and experience as to how code reviews are conducted and how you can derive additional benefits from them, and even make them fun for the development staff. The key should be to understand how code reviews make the software you create better, and over time improve the quality from each developer on the team.

There are many great tools to extend the power of Visual FoxPro, but at the same time Visual FoxPro is a great tool to extend the power of web applications. By taking advantage of a web application's programming interface (API), you can bend and shape these web applications to do your bidding. In this session we'll use VFP, in combination with LibCurl and the VFP2C32 library, to access the FreshBooks API. Along the way there'll be many interesting side discussions about the possibilities this power gives us as VFP developers.

You will learn:

What are some of the different styles of web APIs (SOAP, REST)

Alternative ways to access those APIs from Visual FoxPro

What the LibCurl.vcx library can do

How to work with XML and JSON within VFP

How to use the FreshBooks API to manipulate your data however you want

In the past I have found that customers like to change their mind about what they want. This normally happens once they see the implementation of what they asked for during the first round of requirements discussion. Developers work hard to put together the user interface using the designers, but it is relatively expensive to the customer base if it gets thrown away. Sure there are times when we hit the nail on the head, but normally I find the real solution does not shine until the customer "spits on it."

Balsamiq Mockups is a designer that lets developers and non-developers alike build wireframes/mockups. These are blueprints for how the application user interface can look or work. Developers and users can sit down and flow through the application before hours of development are completed. Balsamiq Mockups facilitates the creation of the wireframes with lots of controls developers are using from the toolboxes provided in the native application designers.

You will learn:

What the benefits are when you wireframe with your users

How you can leverage customers and designers/artists to create mockups

How easy it is to create mockups

That wireframing actually leads to more business, and doesn't take away revenues from development

The different ways Balsamiq Mockups makes you a more agile developer/team

Most VFP developers wear a number of hats. On many days it feels like we spend more time changing hats than we do getting any real work done. It is often difficult to stay focused on a single task for any amount of time because of both internal and external interruptions. The Pomodoro Technique is a great way to begin: center your energy in 25 minute segments, focus on the task at hand and be more productive. But, the technique is far more than just the timer. It is also a great way to learn to break projects into manageable tasks, sharpen your estimation skills, be more productive and make work more rewarding.

FoxBase and FoxPro applications have been around for well over 20 years, and many are still in use that contain important business information in FoxPro tables. Visual FoxPro is an excellent tool for accessing and manipulating this data on Windows. Are there options to read, write, update and delete this information using tools that will run natively on the Mac OS X and Linux platforms? We'll be looking at the options that gain you access to the riches of this business information, extending their life if additional and alternative platforms are in your business future.

You will learn:

How to read, write and query data contained in FoxPro tables natively from the Mac OSX and Linux operating systems

What the performance numbers are when compared to running from within Visual FoxPro itself, in both local and network environments

About configuration issues and other "gotchas" when accessing data from Mac and Linux

About licensing issues when using these technologies in your applications

Ruby is a powerful, object-oriented, open-source language with a clean and easily understandable syntax. Originally released to the public in 1995, widespread interest in the Ruby language really began to take off in 2003 with the release of the Ruby on Rails® framework. Also known as "RoR" or simply "Rails", Ruby on Rails is an open-source Web framework that makes it possible to quickly and easily create data-based Web applications. Together, the Ruby language and the Ruby on Rails framework can become an exciting and powerful addition to any developer's toolbox. This session introduces both the Ruby language and the Rails framework, focusing on their installation and use on a Windows® platform with a perspective geared toward experienced Visual FoxPro developers.

You will learn:

How to install Ruby and the Rails framework on Windows

Ruby language essentials

How Ruby is similar to VFP

How Ruby differs from VFP

How Ruby on Rails implements the MVC pattern

How to build a Web application in Rails

Prerequisites: Some experience developing web applications and a basic understanding of HTML would be helpful but is not required.

Enhancing the user experience has become a necessity for new development. Users are demanding easier ways to navigate and view their data. There is a figurative "world" of GUI elements and libraries out there for enhancing the user experience via the web browser. Why not incorporate some of these into your Windows form applications using the Web Browser control? This session will show you how you can significantly enhance the look and feel of your application by creating custom controls based on the Web Browser control. Learn how to seamlessly display data, accept user input, and respond to events and how to hook into a world of cool visual libraries and services using the Web Browser control. Practical examples will demonstrate the benefits the Web Browser control can offer.

You will learn:

How to maximize the potential of the Web Browser control

How to accept user input from the Web browser control

How to repond to events and call backs to and from the Web Browser control

In this session I'll introduce the concepts behind calling .NET components via COM Interop from Visual FoxPro and demonstrate how to create those components and publish their functionality so they can be accessed by VFP.
In addition I'll talk about some helper tools that allow you to access not only COM registered components, but almost all .NET components both in the framework and those from third parties, static members, enumerations, arrays and other types that aren't directly accessible through COM Interop. These tools make it much easier to take advantage of the wealth of functionality of .NET in your FoxPro application. I'll demonstrate several useful examples, including calling Web Services through a .NET Web Service proxy, automating a WinForm application and implementing a multi-threaded application controlled by VFP by using .NET as a thread controller.

You will learn:

How to call .NET components via COM Interop from Visual FoxPro

The limitations of plain COM interop

How to host the .NET runtime inside of Visual FoxPro

How to work around some of the limitations of FoxPro to .NET COM interop

Prerequisites: Some familiarity with COM object usage and the .NET type system

There are many great tools to extend the power of Visual FoxPro, but at the same time Visual FoxPro is a great tool to extend the power of web applications. By taking advantage of a web application's programming interface (API), you can bend and shape these web applications to do your bidding. In this session we'll use VFP, in combination with LibCurl and the VFP2C32 library, to access the FreshBooks API. Along the way there'll be many interesting side discussions about the possibilities this power gives us as VFP developers.

You will learn:

What are some of the different styles of web APIs (SOAP, REST)

Alternative ways to access those APIs from Visual FoxPro

What the LibCurl.vcx library can do

How to work with XML and JSON within VFP

How to use the FreshBooks API to manipulate your data however you want

This session will be a fast-paced overview of web development from the perspective of a VFP developer.

Need to get all or part of your VFP application on the web but don't know where to start? In this pre-con session we'll talk about the basics of web development for a VFP developer. Web development has a number of common stumbling blocks for desktop developers so we'll spend some time discussing the differences, see where developers normally go wrong, and cover some of the do's and don'ts. This pre-con session will also cover the basic web development model, then take a look at a few different web development frameworks that can be used to get your app on the web.

The second half of the session will go into more detail about using ASP.NET as your framework of choice. We'll do a quick tour of the Visual Studio IDE, talk about the .NET language (C# in particular), discuss server side controls and then create a simple reporting application that shares data with a VFP app. The goal of this pre-con session isn't to turn you into a web or ASP.NET developer in a few hours (sorry, it's going to take more time than that!), but to show you where to begin.

NOTE: This session will only cover "Classic" ASP.NET, not ASP.NET MVC.

You will learn:

Basics of web development

Common stumbling blocks

How to choose a framework

Why ASP.NET?

ASP.NET architecture

How easy (and how hard) web development can be

Prerequisites: Basic HTML familiarity is essential. Familiarity with C# will be helpful.

jQuery is an open source Javascript library that can be used in your web applications and in desktop applications if you are using the Internet Explorer web control. It greatly simplifies multi-browser web development and provides a simple but powerful interface for client-side scripting.

jQuery currently seems to be all the rage in the web development realm. Wondering what all the fuss is about, or just want to learn the basics so you can get started with it? This is the session for you - we'll talk about what problems jQuery solves, how jQuery can help you enhance your web applications, and the basics of what you need to know to take advantage of it.

While this session isn't intended to be an introduction to Javascript, we'll cover some of the basic syntax as it applies to jQuery so even novice web/Javascript developers should be able to follow along. If you're doing (or thinking about doing) any web development and aren't currently using jQuery, you'll benefit from this session.

How can existing VFP controls or even forms be redesigned in Silverlight? Which properties are available in Silverlight? How do Silverlight controls behave? We will show ways how to create Silverlight user interfaces that are similar to existing VFP user interfaces, including MDI forms. This session is part of the VFP to Silverlight post-conference workshop.

Attendees of this session, which is part of the VFP to Silverlight post-conference workshop, will create a Silverlight desktop application that communicates with a VFP COM server. The COM server will implement the data access as well as the business logic. We will discuss the settings that are required to enable a Silverlight application to run out of the browser. New in Silverlight 4 is the print engine. Attendees will create a XAML report which runs in a Silverlight application.

This session, part of the VFP to Silverlight post-conference workshop, gives a short introduction into Silverlight and Visual Studio 2010. What is Silverlight? What can we do with it? Why do we need it? During this session we will develop a Silverlight business application without any programming. A data model and a domain service will be generated. A Silverlight client will be created with base functionality. Then, at the server site, a VFP COM server will be used to access VFP and SQL Server databases. This VFP COM server will also contain business logic. The application will run over the Internet or in Intranets.

Silverlight business applications should communicate with a WCF web service. The web service can connect to a SQL Server database. All needed code can be generated by Visual Studio as long as no business logic is needed. However, the web service can also communicate with a COM server written in VFP. Data access and business logic can be provided by the VFP COM server. Silverlight applications designed in this way can be used over the Internet, or as Intranet applications.

Web development is slipping more heavily into client side development and the jQuery JavaScript library is one of the most popular tools that is used to provide that functionality. In this session I'll demonstrate how jQuery can be used effectively to build client-centric Ajax applications that connect to a Visual FoxPro Web Server application using Web Connection, highlighting both the Ajax features of jQuery as well as some of the helpful tools in the Web Connection framework that greatly facilitate making server callbacks and retrieving data into the client and updating the user interface dynamically.

You will learn:

How to use jQuery's AJAX features

How to build a reusable service proxy to simplify callbacks

How to create server callback handler methods with Web Connection

How to use tools to create and consume JSON data from FoxPro types and cursors

The next version of Visual Extend will come with a wizard that allows the migration of forms and reports from existing VFX and VFP applications to Silverlight. Code parts will be moved to a VFP COM server. A prepared VFX application will be migrated to Silverlight. At the end attendees will have a running Silverlight application which accesses a database simultaneously with a VFX application. This session is part of the VFP to Silverlight post-conference workshop.

Have you ever wondered what goes on behind the scenes of your website? Cascading Style Sheets is one of the ways web developers create consistency and a positive user experience for those who visit. Jody will walk you through the basics of Cascading Style Sheets (CSS). Here you can define how your default attributes for your website should behave and look. She will show you how to link the HTML with CSS and create beautiful consistency throughout the website. Understanding the basics of website development and design will help you to be more productive and savvy for future enhancements.

You will learn:

What is XHTML/HTML and how to create a basic web page: basic HTML tags, creating tables, lists, formatting texts

What is CSS and how to create a CSS file and how it works with XHTML/HTML

How to use CSS and XHTML/HTML together so you can have one source for the content and one source for how the content is displayed

How can existing VFP controls or even forms be redesigned in Silverlight? Which properties are available in Silverlight? How do Silverlight controls behave? We will show ways how to create Silverlight user interfaces that are similar to existing VFP user interfaces, including MDI forms. This session is part of the VFP to Silverlight post-conference workshop.

Attendees of this session, which is part of the VFP to Silverlight post-conference workshop, will create a Silverlight desktop application that communicates with a VFP COM server. The COM server will implement the data access as well as the business logic. We will discuss the settings that are required to enable a Silverlight application to run out of the browser. New in Silverlight 4 is the print engine. Attendees will create a XAML report which runs in a Silverlight application.

This session, part of the VFP to Silverlight post-conference workshop, gives a short introduction into Silverlight and Visual Studio 2010. What is Silverlight? What can we do with it? Why do we need it? During this session we will develop a Silverlight business application without any programming. A data model and a domain service will be generated. A Silverlight client will be created with base functionality. Then, at the server site, a VFP COM server will be used to access VFP and SQL Server databases. This VFP COM server will also contain business logic. The application will run over the Internet or in Intranets.

The next version of Visual Extend will come with a wizard that allows the migration of forms and reports from existing VFX and VFP applications to Silverlight. Code parts will be moved to a VFP COM server. A prepared VFX application will be migrated to Silverlight. At the end attendees will have a running Silverlight application which accesses a database simultaneously with a VFX application. This session is part of the VFP to Silverlight post-conference workshop.