Visual FoxPro Capabilities and Limitations
The Future of Visual FoxPro
Other Assessments and References
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
- 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
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:
||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
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's principle Web address for Visual FoxPro information is
- Information about integrating Visual FoxPro with .NET is provided at
- 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
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.
"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.
"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.
- "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.
- 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,
"Visual Foxpro 6 Enterprise Development" by Rod Paddock, John V. Petersen, Ron Talmage,
and Eric Ranft, Prima Publishing, ISBN: 0761513817.
- Approximately 20
books on Visual FoxPro development have been produced by