Page Last Revised:  November 26, 2002

Microsoft Visual FoxPro as an Enterprise Development Tool

Executive Summary
Visual FoxPro Capabilities and Limitations
The Future of Visual FoxPro
Other Assessments and References

New! Visual FoxPro 8 -- Early Assessment

Cycla Corporation has installed and tested the beta release of Version 8 of Visual FoxPro. We are very excited about this new release, which includes several enhancements that strengthen its position as a tool for developing robust, object-oriented web-based applications. These include:

  • The "CursorAdapter" base class provides an easy and seamless approach for supporting multiple back-end data sources in an object-oriented manner. Any developer that has wanted to migrate their data to Microsoft SQL Server, Oracle, or MySQL, but has resisted due to lack of time or technical capability, this new base class with the associated builder that accompanies the product, will greatly ease the cost and complexity of making that transition.
  • Version 8 introduces structured error handling using the same TRY/CATCH syntax that is a cornerstone of C#, VB.NET and other languages. As VFP developers learn this new construct, many old error handling techniques will quickly be replaced with this robust new approach.
  • Collections, long available in Visual Basic and some other object-oriented languages, are added as a new base class in Visual FoxPro. This is a huge gain for framework designers. Expect to see many VFP8-specific features making use of this new base class.
  • Version 8 now provides the ability to raise events, and improves on the ability to bind to these events. This has long been a limitation to the language, and the developer community will welcome the ability to simplify many challenging problems by utilizing this new capability.

Executive Summary

This paper presents Cycla Corporation's analysis of using Microsoft® Visual FoxPro as a development tool for current and future Web-oriented enterprise applications. Cycla has determined that Visual FoxPro is an excellent tool for such development, based on the following reasons:

  • Visual FoxPro uses modern object-oriented technology with a robust environment for development.
  • Visual FoxPro applications can be designed to utilize: (1) local databases using its own database engine; (2) any back-end ODBC data source (e.g.,Oracle® or Microsoft SQL Server); or (3) a combination of the two.
  • It has the ability to interact with other products, both as a client (by hosting ActiveX and COM components), and as a server.
  • Many features of the product combine to support rapid application development (RAD) techniques.
  • Microsoft is committed to the future of Visual FoxPro, as evidenced by its continued development and enhancement, and its inclusion in the MCSD certification track.
  • Limitations of the product that could affect the suitability of Visual FoxPro for some file-server applications do not affect its suitability for Web-based applications.

Visual FoxPro Capabilities and Limitations

The important features of Microsoft Visual FoxPro for Web-based application development include:

  • Visual FoxPro has a robust object-oriented development environment, that includes visual tools, a data-centric, object-oriented programming language, and an integrated debugger.
  • The language supports full object inheritance, thus allowing for maximum code re-use and development of complex application frameworks.
  • Visual FoxPro has a local database engine that allows for rapid application development (RAD) without the need for developers to have constant access to expensive back-end database servers. Applications can be developed using local data and later upsized to a different database. Local databases can be substantial in size without upsizing (255 fields per record, 1 billion records per table, 2GB maximum file size per table).
  • Visual FoxPro applications can connect to any back-end ODBC data source (e.g.,Oracle® or Microsoft SQL Server).
  • Upsizing wizards are provided for both Oracle and SQL Server to allow porting a local Visual FoxPro database, including view definitions, to either of these back-end database servers.
  • Visual FoxPro can interact with other products and components both as a client and a server using component object model (COM) technology. ActiveX controls and COM/DCOM servers can be hosted and used directly from Visual FoxPro. ActiveX controls developed in other languages, such as Visual Basic), can even be sub-classed in Visual FoxPro for further customization.
  • Visual FoxPro applications can be compiled as COM/DCOM servers that use apartment model threading. This allows them to be used as scalable middle-tier components in a 3-tier architecture. Due to their threading, they can be managed as components of a transaction by Microsoft Transaction Server (MTS).
  • The Visual FoxPro language allows for easily connecting to other databases using ODBC. Databases can be queried either using visual query design tools or by direct SQL pass-through commands. The latter allow for applications to take advantage of specific features of a database server beyond standard ODBC syntax.

Depending on the size of an application and the method of deployment, there can be some limitations to how Visual FoxPro is used:

Limitation Implications on Suitability for Use
In a traditional file-based network, using Visual FoxPro client applications can have limitations. Visual FoxPro 5.0 and later is strictly a 32-bit product. Thus applications will not run on Windows 3.1 machines. Similarly, a Macintosh version has not been produced since version 3.0. These limitations do not apply to Web-based applications, where Visual FoxPro operates as a server with all clients using basic Web browsers.
Applications with large amounts of data can encounter limitations, if using Visual FoxPro's local database tables. Although the system capacities are fairly high, there are clearly decision points well below the maximums where moving the data to Oracle or SQL Server becomes indicated. These limits should be used for planning to decide when/if to port the database to a back-end database server. The use of Visual FoxPro as an application development tool is not limited by this consideration, because of its capability to interface with these database servers.
Older, file-server based applications written in Visual FoxPro can reach limits in the number of simultaneous users, due to the high network traffic that results from this kind of architecture (the processing all transpires on client machines). This limitation can sometimes be significantly mitigated by using Visual FoxPro in a client-server application, thus moving some of the processing to the server. Web applications use a multi-tier architecture with Visual FoxPro acting as an application server in the middle tier. No database processing is performed on the client, and the network traffic is limited to the size of HTML result pages.

The Future of Visual FoxPro

Starting in the 1995-1997 time frame, several rumors circulated that using Visual FoxPro was a dead-end strategy, and that Microsoft would eventually kill off this product. These rumors were primarily sparked by a failure by Microsoft to take an active role in marketing Visual FoxPro, following its merger with Fox Software. More recent events confirm that there is a clear future for Visual FoxPro as a high-end development tool. Some evidence of this includes:

  • Since version 5, Visual FoxPro has been included as part of the Microsoft Developer Network (MSDN) subscription, which includes Microsoft's core suite of software development tools.
  • Microsoft is creating materials aimed at providing .NET developers with an insight into the capabilities of Visual FoxPro, and vice versa, so that all of these developers will know how to use a combination of the right tools to develop effective, robust solutions.
  • Microsoft is already planning the next version of Visual FoxPro, even several months prior to the release of Version 8.
  • Significant reference material has been created by Microsoft showing their support for Visual FoxPro. Some of these are listed in the reference section below.
  • There continues to be significant attendance at various international, national, and regional Visual FoxPro developers' conferences. The focus of these conferences has clearly shifted toward FoxPro's role as a central player in larger-scale multi-tier applications and systems.

Based on this evidence, Cycla remains committed to the use of Visual FoxPro as a principal development tool for Web-based data-centric applications. Cycla's future direction is to allow any application to function based either on a local FoxPro database or as a middle tier with an Oracle or SQL Server back end.

Other Assessments and References

The following is a short list of other references that either assess the use of Visual FoxPro or provide more technical information about the product.

Microsoft References

  1. Microsoft's principle Web address for Visual FoxPro information is
  2. Information about integrating Visual FoxPro with .NET is provided at
  3. Microsoft provides a Product Evaluation, which is intended as a guide for those evaluating the potential use of Visual FoxPro as a development tool.

Books and Articles

  1. "WebRAD: Building Database Applications on the Web with Visual FoxPro and Web Connection" by Harold Chattaway, Randy Pearson and Whil Hentzen; Hentzenwerke Publishing; ISBN 1-930919-07-7.
  2. "Advanced Object oriented Programming with Visual Foxpro 6.0" by Markus Egger, Hentzenwerke Publishing, ISBN: 0-96550-938-9, is an outstanding presentation of the object technology in Visual FoxPro. Required reading for any serious developer.
  3. "Internet Applications with Visual Foxpro 6.0" by Rick Strahl, Hentzenwerke Publishing, ISBN: 0-96550-939-7, presents a broad range of different ways in which Visual FoxPro can participate in building distributed Internet applications. A great wealth of general Internet development knowledge is also contained in this excellent book.
  4. "Create Webtastic Data Apps with Visual FoxPro" by Tom Spitzer and John Glendening, February 1999 Microsoft Internet Developer Magazine. This article presents a detailed evaluation of using Visual FoxPro to build applications, including connections to back-end database servers and Web integration using ISAPI.
  5. West Wind Technologies uses Visual FoxPro in conjunction with their Web Connection product to create large scale Web-based applications. Their Web site includes a wealth of articles on Web-based application development, including:
  6. "Visual Foxpro 6 Enterprise Development" by Rod Paddock, John V. Petersen, Ron Talmage, and Eric Ranft, Prima Publishing, ISBN: 0761513817.
  7. Approximately 20 books on Visual FoxPro development have been produced by Hentzenwerke Publishing

[Articles]   [Software Top Page]   [Cycla Corporation Home Page]

© 1996-2002 by Cycla Corporation Comments: