inset
FoxPro Gets Another Update
Mar. 20, 2006

A preview release of the next version of Visual FoxPro (VFP), code-named Sedna, focuses on improving interoperability between the FoxPro environment and the .NET Framework. Microsoft has repeatedly said that it will not be moving the FoxPro language to the .NET Framework nor will it be integrating the FoxPro development environment with Visual Studio. Nevertheless, it continues to produce minor improvements even as it strongly encourages VFP developers to migrate to Visual Basic (VB) or C#.

Sedna Focuses on Interoperability

Visual FoxPro is an integrated database engine and development environment built around a dBase-like programming language and designed primarily for creating desktop applications. It resembles Access in terms of its basic functions, although it uses a completely different database engine and programming language.

The Sedna preview, released in Mar. 2006, has two new features designed to better integrate code written using the .NET Framework.

NET4COM is a set of APIs designed to make the functions of the .NET Framework more accessible to FoxPro developers. Similar to VB 2005's "My" classes, which provide .NET functions in a more VB-friendly manner, NET4COM functions can handle several different .NET functions in a single line of code. NET4COM includes functions to encrypt and decrypt text, start and stop Windows applications and services, play audio, determine a computer's battery status, access the Windows clipboard and Registry, and perform network tasks, such as downloading files or sending email. Many of these functions are either missing from the built-in VFP libraries or are difficult to use. However, NET4COM covers only a tiny sliver of the .NET Framework.

DDEX is an API that connects Visual Studio's data tools with various database engines. Sedna will include a DDEX provider for FoxPro data, enabling developers to use tools such as the Visual Studio Database Explorer to access tables, views, and stored procedures in a FoxPro database and to create applications that access data stored in a VFP database. It does not, however, allow developers to use Visual Studio to create VFP applications, and the VFP programming language and tools are not integrated into Visual Studio. The new support appears instead to be designed to help customers who want to reuse existing VFP data and procedures, but with new user interfaces created with VB or C#.

Reporting extensibility makes it easier for developers to extend VFP's reporting system. VFP 9.0, the current version, introduced a completely new reporting system, and with Sedna Microsoft hopes to round out some missing features and enable developers and third parties to extend the system. For example, Sedna will allow developers to change the format of text in a report based on the contents of the report, and third parties can build add-ons that create custom graphics based on report data.

Why Continue Development?

FoxPro was acquired by Microsoft in 1992, but the product itself dates back to 1984 when it was developed as a work-alike to Ashton-Tate's popular dBase product. Microsoft acquired the company for technical, competitive, and personnel reasons: it wanted to incorporate FoxPro's query optimizer into the Jet database engine used by VB and Access, it needed a response to the 1991 acquisition of dBase by Borland, and it wanted the help of FoxPro's creator, Dave Fulton.

However, from the outset, FoxPro was a minor player in Microsoft's developer strategy, and once Access and VB incorporated FoxPro's query optimizer, the company encouraged VFP developers to migrate to other Microsoft products. Although most VFP developers have heeded that advice, a small group of developers has been steadfastly loyal to VFP, primarily because of FoxPro's tight integration of database engine, forms environment, and programming language. Many of these customers are consultants building applications for small to midsize business, many of whom are resistant to change and have found that sticking with FoxPro is easier and more cost-effective than rewriting their applications.

Rather than moving VFP to .NET and integrating it into Visual Studio, Microsoft is working to better integrate database access capabilities with languages such as VB and C# through its Language Integrated Query (LINQ) project. Meanwhile, Microsoft continues to decrease the effort it puts into staffing VFP. Much of the work on Sedna, in fact, is being done by contractors whose work is managed by a few Microsoft employees. VFP's future roadmap thus looks very much like its past: a series of minor releases that are designed to serve a small but loyal community of developers but that don't require significant development efforts on Microsoft's part.

Resources

The preview of Sedna is available at www.microsoft.com/downloads/details.aspx?FamilyId=84E1ABAE-623C-4F63-AEB4-81C5053B5007.

The specifications for NET4COM and other Sedna documents can be downloaded from www.microsoft.com/downloads/details.aspx?FamilyId=2E8F1DEB-2972-4CEC-A7CA-E0991362A4FC.

The LINQ Project is described in "Integrated Query Next on VB, C# Roadmaps" on page 19 of the Dec. 2005 Update.