Platinum Sponsors

White Light Computing

Stonefield Query

Tomorrow's Solutions, LLC

Gold Sponsors

FoxRockX

Servoy

DBI Technologies

Sessions by Speaker

There are 4 pre-conference sessions, 24 conference sessions, and 4 post-conference sessions. "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 Sessions

Pre-ConferenceWeb Development

An Introduction to Ruby and Rails

Presenter: Rick Borup
Level: Beginner, Intermediate

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.

Pre-ConferenceTechnology for VFP Developers

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

Prerequisites: None

Pre-ConferenceWeb Development

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.

Pre-ConferenceSolidifying VFP Development

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.

You will learn:

  • How to use "clean code development" practices
  • How to recognize good and bad design
  • The concepts and reasons behind the principles

Prerequisites: Fundamental OOP and VFP knowledge

Conference Sessions

Solidifying VFP Development

Design Patterns in Visual FoxPro

Presenter: Rick Borup
Level: Intermediate, Advanced

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
  • How common design patterns can be implemented in Visual FoxPro

Prerequisites: Experience developing object-oriented applications in Visual FoxPro

Web DevelopmentTechnology for VFP Developers

Open Data Protocol

Presenter: Craig Boyd
Level: Advanced

Open Data Protocol (OData) is a web protocol that was built by coupling or extending technologies such as HTTP, XML (AtomPub) and JSON. OData is specifically designed for querying and updating data over the web. Microsoft released OData as a set of open extensions/conventions to AtomPub under the Open Specification Promise which allows all third parties (including open source initiatives) to freely build OData clients and services. Given this, OData could quickly become the de facto standard for working with data across the web, so let's take a look at OData and see how Visual FoxPro can be used to consume and produce it.

"Progress is a tide. If we stand still we will surely be drowned. To stay on the crest, we have to keep moving." - Harold Mayfield

You will learn:

  • What OData is, why it's important, and where it is already being used
  • How OData combines query strings, AtomPub, JSON and more to provide a robust set of data features
  • OData vs GData - which is better and if they are compatible
  • How to produce/consume OData from VFP

Prerequisites: Experience with VFP

Professional Windows 7 Development with VFP 9

Presenter: Craig Boyd
Level: Intermediate, Advanced

Don't have the time to wade through the online sales-speak, posing as documentation, regarding desktop applications for Windows 7? Need someone to give you pertinent Windows 7 development information from a VFP 9.0 perspective in plain English? Want some VFP classes, code, and FLLs specifically written to handle Windows 7 issues and take advantage of its new features? Like ice cream?

If you answered YES to any of the preceding questions, you should definitely attend this session.

You will learn:

  • What you should consider when installing and using VFP 9.0 on a developer machine (MSXML2, SP2, hotfix, permissions, FLL development issues)
  • What you need to know if you're developing VFP 9.0 applications that will be deployed on Windows 7 (UAC and Gotchas)
  • How your VFP 9.0 applications can make the most of Windows 7 (New and Improved APIs, Platforms, interface design, Win7 Software Logo Program)
  • How many of the concepts and considerations discussed in this session apply to Windows Vista as well

Prerequisites: None

Web DevelopmentExtending VFP

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

Prerequisites: Knowledge of FoxPro and database concepts.

Solidifying VFP DevelopmentExtending VFP

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.

Web DevelopmentExtending VFP

Extending VFP using the Web Browser Control

Presenter: Bo Durban
Level: Intermediate, Advanced

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

Prerequisites: None

Extending VFPTaking Advantage of VFPX

Using Direct2D with Visual FoxPro

Presenter: Bo Durban
Level: Intermediate, Advanced

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.

Solidifying VFP Development

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

Extending VFPTaking Advantage of VFPX

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 a new project (recently submitted for inclusion in VFPX), 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:

  • The new features available to developers in the Windows 7 Taskbar
  • How to integrate these features into your VFP applications using the Win7TLib project
  • How the Win7TLib project works under the hood
  • How to deploy the Win7TLib project with your VFP applications

Prerequisites: None

Technology for VFP Developers

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.

You will learn:

  • What the Pomodoro Technique is all about
  • What the objectives are for this technique
  • How to use the technique
  • How to fine tune the task list
  • How to build better estimations from historical Pomodoro data
  • How to better manage interruptions

Prerequisites: None

Solidifying VFP Development

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.

You will learn:

  • What collections are and how to work with them
  • Why they're easier to use than arrays in VFP
  • How they fit naturally into object hierarchies
  • How to debug collections

Prerequisites: Some familiarity with OOP

Extending VFP

Office Automation Tips, Tricks and Traps

Presenter: Tamar E Granor
Level: Intermediate, Advanced

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
  • How to make your application respond to Office events
  • How to work around the Outlook "hell patch"

Prerequisites: None

Web Development

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.

You will learn:

  • How to build Silverlight business applications
  • How to build a VFP COM server
  • How to access databases from COM servers
  • How to make a Silverlight frontend and a VFP COM server interact

Prerequisites: None

Taking Advantage of VFPX

A Deep Dive into the VFPX ThemedControls

Presenter: Doug Hennig
Level: Beginner, Intermediate

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.

You will learn:

  • What themed controls are
  • How the ThemesManager provides consistent theming to all controls
  • How the various themed controls work
  • How to add these controls to your own applications

Prerequisites: Understanding OOP in VFP

Extending VFP

Cool Controls for Your Applications

Presenter: Doug Hennig
Level: Beginner, Intermediate

This session examines some controls you can add to your applications to provide a cleaner or fresher user interface or to provide features it's otherwise difficult to implement in pure VFP code. Controls include a splitter, a combobox that drops down to a TreeView control, and file selection controls. We will also cover FLLs written by Craig Boyd that provide encryption, compression, emailing, and file upload/download.

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
  • How the file selection control gives you control over file dialogs you only wish GETFILE() and PUTFILE() had
  • How to encrypt text and files in VFP
  • How to zip and unzip files
  • How to email from VFP applications

Prerequisites: Understanding OOP in VFP

Extending VFP

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 moden 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

Prerequisites: None

Web Development

jQuery for VFP Developers

Presenter: Paul C Mrozowski
Level: Beginner

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.

You will learn:

  • What jQuery is
  • The basics of the API
  • Enough to be dangerous

Prerequisites: Basic HTML and Javascript is helpful

Solidifying VFP DevelopmentTaking Advantage of VFPX

fxReports - Sharing Custom Report Features

Presenter: Cathy Pountney
Level: Intermediate, Advanced

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.

You will learn:

  • About the fxReports project on VFPX (CodePlex)
  • How to implement custom report features created by other developers
  • How to develop your own custom report features
  • How to share your custom report features with other developers

Prerequisites: Familiar with VFP Reports

Solidifying VFP DevelopmentTaking Advantage of VFPX

The PEM Editor, available for free on VFPX, is a utility created by the collaborative efforts of several VFP Community members. Its early roots come from Doug Hennig and Marcia Akins as a replacement for a few VFP dialogs. Jim Nelson, 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 all the listings available (code, parentage, and PEM descriptions.) We'll explore the Document TreeView feature which can run as part of the PEM Editor or as a stand-alone utility as well as the many plug-ins available. 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! We'll also spend some time looking at the code behind the scenes to see how all of this magic was created.

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
  • How the PEM Editor works under the hood

Prerequisites: None

Technology for VFP Developers

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.

You will learn:

  • The benefits are of doing code reviews
  • How single developer shops can implement code reviews
  • What code should be reviewed
  • The Code Review Rules
  • What you need to prepare for a code review
  • How to conduct a code review
  • What is on the code review "can do" and the "don't do" list

Prerequisites: None

Technology for VFP Developers

Mocking Your Customer

Presenter: Rick Schummer
Level: All levels

In the past I have found that customers like to change their mind about what they want. This normally happens once they see the implemention 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

Prerequisites: None

Web DevelopmentExtending VFP

Extending Visual FoxPro by Calling .NET Components

Presenter: Rick Strahl
Level: Beginner, Intermediate

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

Web DevelopmentExtending VFP

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

Prerequisites: Some familiarity with HTML and JavaScript

Extending VFP

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 projects 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

Prerequisites: None

Post-Conference Sessions

Web DevelopmentPost-Conference

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.

Web DevelopmentPost-Conference

VFX - Silverlight Wizard

Presenter: Uwe Habermann
Level: Advanced

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.

Web DevelopmentPost-Conference

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.

Web DevelopmentPost-Conference

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.