In April 1997, the Microsoft® Visual FoxPro™ database shipped in the Visual Studio™ development system box, putting rumors of its discontinuation to rest. Today Microsoft Corp. is laying out the strategy for its future and addressing the following regularly asked questions:
· What are Microsoft’s plans for future versions of Visual FoxPro?
· What is the role of Visual FoxPro in Visual Studio, and why does it ship in the box with Visual Studio?
· What is Microsoft’s commitment to developers using Visual FoxPro and FoxPro®?
Visual FoxPro is an important part of Visual Studio and fully supports Windows® Distributed interNet Application (Windows DNA) architecture for creating modern, scalable, multitier business applications that can be delivered over any network. The Visual FoxPro design tools and its object-oriented datacentric language, fast data engine and component creation capabilities make it an extremely powerful way for developers to participate in Windows DNA application development.
There are hundreds of thousands of developers worldwide using FoxPro who have an enormous investment in code and existing applications. Visual FoxPro is the best way for these developers to move to the 32-bit Windows operating system and to take advantage of their existing investments. Visual Studio is the best way for developers to build applications using the Windows DNA framework. That is why Visual FoxPro ships in the Visual Studio box.
Microsoft is working on the next version of Visual FoxPro, code-named “Tahoe.” Tahoe will provide better tools for developers to use in building scalable multitier applications that integrate Internet technologies and client/server solutions.
Microsoft is fully committed to Visual FoxPro and to providing developers with a clear path forward for using it within the Visual Studio family.
For over 13 years, FoxPro has provided developers with first-class tools for building database applications. FoxPro innovations include the following:
· The first graphical interface for xBASE, complete with windows and pull-down menus
· query technology, providing blazingly fast querying performance
· A graphical Screen Builder and Report Builder
· Integrated SQL support
· Complete cross-platform support (Windows, DOS, Mac, UNIX)
Inexpensive distribution optionsFoxPro provided easy access to relational features for users and raw power for developers. It was quite simply the fastest relational database management system on the desktop, and its combination of easy-to-use, powerful tools and award-winning performance helped thousands of developers build powerful database applications that managed large amounts of data. A FoxPro-based application is currently used to manage and query 128 GB of data for the Euro Tunnel, the organization that manages the "Chunnel" connecting England and France. The system runs seven days a week, 24 hours a day, 365 days a year.
With the introduction of Visual FoxPro, FoxPro evolved from a procedural language to an object-oriented language. Visual FoxPro features include the following:
· Forms and form controls are objects with properties, methods and events. ActiveX Controls are supported. The database container provides persistent relationships between tables, field and record level validations, triggers and stored procedures. Using Remote Views, ODBC data can be queried and modified as easily as local data, thereby making Visual FoxPro a great tool to build client/server applications. Full object-oriented class design capabilities support inheritance, subclassing, encapsulation and polymorphism. Reusable class libraries of both visual and nonvisual (code) classes can be built, dramatically reducing development time.
Visual FoxPro 5.0 is the latest version of Visual FoxPro and features the following:
· Improved ActiveX support The ability to subclass ActiveX Controls and extend their functionality An all new debugger, modeled on the Visual C++® development system debugger Visual SourceSafe version control system integration A significant performance boost Offline views for remote and disconnected user support
Visual FoxPro 5.0 also adds the ability to create COM components. Visual FoxPro COM components are typically data intensive and can talk to both FoxPro data and to any SQL back end via ODBC. The ability to create components makes Visual FoxPro an important part of Visual Studio.
Visual FoxPro 5.0 ships with the FoxPro Internet Server API (FoxISAPI) library, which enables Internet Information Server to talk to Visual FoxPro COM components. These components can retrieve data and combine it with HTML files to produce pages that users read. The FoxISAPI library allows for pooling of multiple Visual FoxPro COM components, providing impressive scalability. Surplus Direct, the No.1 computer hardware and software reseller on the Web, uses this architecture to process an average of 30,000 visitors and 150,000 database hits a day, with peaks of up to 80,000 visitors and 250,000 database hits a day.
At the Microsoft Professional Developers Conference in September 1997, Microsoft formally unveiled the Windows Distributed interNet Application architecture. Windows DNA is designed to create a framework for building applications based on the Microsoft Windows operating system that unifies and integrates the personal computer and the Internet.
Windows DNA applications are component-based systems consisting of multiple tiers, each providing a service. Front ends provide the user interface, which can be traditional forms built with any of the Visual Tools or browser-based forms. Middle tiers provide business services and handle tasks such as enforcing business rules and retrieving data. Web servers also reside in the middle tier. The final tier is where the data resides.
The component architecture provides total deployment flexibility, scalability and centralization of business processes. Front ends can run on desktops, laptops or handheld devices running Windows CE. Data is accessed via ODBC or via OLE DB and can be located in desktop databases, SQL databases, mainframes and countless other stores.
Visual Studio is Microsoft’s tool set for building solutions that can scale to thousands of users and can be deployed from the desktop to the enterprise, thus enabling the delivery of information in ways previously unimaginable. Visual Studio integrates client/server and the Web, and enables component-based development and distributed application deployment.
COM plays a key role in the Windows DNA architecture. COM enables objects to talk to each other, and Distributed COM (DCOM) enables them to talk to each other over the network (and over HTTP, in the near future). COM components are the middle-tier pieces that link the front ends to the back ends and provide business services that include data retrieval, manipulation, validation, etc. These COM components can be written in virtually any language.
COM reduces language dependence because any front end can talk to any COM component, which can talk to any data source. Visual Studio provides all the tools users need to build component-based distributed applications; at each stage of the project, users can choose the tool or data store that makes the most sense for users and their company.
Visual FoxPro and Windows DNA
Where does Visual FoxPro fit into all this? Visual FoxPro can be used at any level of a distributed multitier application. Visual FoxPro can supply the user interface. Forms and form controls are objects, with a full range of properties, methods and events. ActiveX Controls can be used on forms and can even be subclassed to extend their features.
Visual FoxPro can be used to write middle-tier components. Data retrieval and manipulation, querying, and reporting have long been strengths of FoxPro. Visual FoxPro can be used to make data-intensive COM components, which can be called from any front end or Internet server. The components can talk to FoxPro databases and SQL databases via ODBC. Visual FoxPro Remote Views, which enable easy integration of remote data, combined with an object-oriented datacentric language, make Visual FoxPro an ideal tool for building COM components that manipulate data.
FoxPro can be used to store data. Visual FoxPro has a blazingly fast database engine and can handle huge amounts of data, as demonstrated by the Euro Tunnel application. In addition, Visual FoxPro and a SQL database make a great combination, with the SQL engine handling transaction processing and Visual FoxPro handling offloaded querying or batch processing.
Scalability is an important consideration in applications. Multiple users calling on the services of a COM component necessitates multiple instances of the component. This can be managed by writing a lot of code or by using Microsoft Transaction Server to manage components. Transaction Server will set up a pool of components and match each request from a front end with an available instance of the component. This is done automatically, with no coding required. In addition, Transaction Server allows the COM components to participate in transactions.
COM components need to support apartment model threading for Transaction Server to be able to launch multiple instances. Visual FoxPro 5.0 COM components do not have this type of threading; however, the next version of Visual FoxPro, code-named Tahoe, will support apartment model threading and therefore will fully support Transaction Server. This means that developers can build middle-tier COM components with Visual FoxPro and scale them to hundreds of users and more. This clearly demonstrates Microsoft’s commitment to Visual FoxPro and to users of Visual FoxPro, who can use their language of choice to fully participate in Windows DNA application development.
Tahoe is scheduled to ship at the same time as the next version of Visual Studio. In addition to providing Transaction Server support, Tahoe will also support the creation of Active Documents, enabling Visual FoxPro forms to be run in a browser. This provides an easy path for migrating existing applications to the Web.
Visual FoxPro is an important part of Visual Studio and fully supports the Visual Studio vision of building multitier client/server and Web-based applications. Future versions of Visual Studio will take advantage of enhancements to Windows DNA provided by the Windows NT® operating system version 5.0 and COM+, a significant enhancement to the Component Object Model.
Types of Applications Users Can Build Today With Visual FoxPro and Visual Studio
Scenario: Migrate a DOS Application to the Windows DNA Architecture
A dentist has a FoxPro for DOS-based application that handles patient scheduling and billing. The dentist buys a new computer and wants to update his or her system to take advantage of Windows 95 and the Internet. The data stays in FoxPro tables. The code that schedules and bills is moved into a Visual FoxPro COM component and runs unchanged. The COM component can be called from Internet Information Server. Patients can dial into the dentist’s Web site and schedule their own appointments and view their records. The dentist can run reports at the office and from home. The COM components can produce both standard FoxPro reports and HTML pages. Because all of the existing code runs as is, development time is kept to a minimum. The Visual InterDev™ Web development system can be used to build the Web pages, and the Visual Basic® programming system or Visual FoxPro can be used to create the interface that is used in the dentist’s office.
Benefit: The dentist can provide better service to customers, while at the same time improving his or her ability to run reports whenever they are wanted.
Scenario: Combine the FoxPro Local Engine With a SQL Engine
A large company has a Microsoft SQL Server™-based order-entry system written using Visual Basic or Visual C++. Millions of orders are placed each year. The server is kept busy with order entry, but managers want to run a series of reports daily. Data is offloaded to FoxPro tables, either nightly in a batch process or throughout the day using SQL Server’s replication capabilities. Managers now run as many reports and queries as they want using Visual FoxPro, which is legendary for fast querying and data manipulation.
Benefit: SQL Server use is optimized as decision support functions are offloaded to Visual FoxPro. Reports and queries are fast and more widely available.
Case Study: Custom Accounting Software
Visual AccountMate, by Accountmate Software Corp., was designed from the ground up using Visual FoxPro technology and possesses the powerful features customers need in a Windows 95-and Windows NT-based accounting program:
· Transaction Rollback prevents incomplete entries, even during a power failure. Drill Down provides quick access into multiple levels of extremely detailed information without having to leave the current process. Express Icons enable users to jump back and forth quickly between their most commonly used functions without exiting the current module.
Visual AccountMate SQL is a Windows NT-based client/server financial management system for small to mid-sized businesses. This version’s front end is written in Visual FoxPro 5.0, with the back end engine supplied by Microsoft SQL Server 6.5. It provides enhanced data integrity and security and better performance for larger databases.
In 1996 Microsoft presented AccountMate with the Top Performance Award, which goes to the Solution Developer that has created an outstanding software application using Microsoft’s latest technologies. Steve Ballmer, executive vice president of sales and marketing at Microsoft, said, “The Visual AccountMate product written in Visual FoxPro using SQL Server, Microsoft Exchange and other important BackOffice® components is really a fantastic product.”
Case Study: Internet Commerce Application
Surplus Software Inc. sells refurbished computer hardware and previous-version software. Its Web site (http://www.surplusdirect.com/), built with Visual FoxPro and other Microsoft Visual Tools, is the busiest hardware and software reseller on the Web, and the sixth busiest consumer shopping Web site, right behind Amazon.com.
The site features tight integration between Visual FoxPro and the Microsoft Internet Information Server (IIS). ISAPI is used to create an integration layer for Web pages to interact with Visual FoxPro. Through ISAPI (written using Visual C++), the Web pages, which are built with Visual InterDev, talk to Visual FoxPro COM components.
These components retrieve data — such as information about a particular product — and combine it with HTML files to produce pages that the users read. Incoming requests in HTML become Visual FoxPro database commands, and custom Visual FoxPro classes turn FoxPro data into HTML. The site serves a daily average of about 30,000 unique visitors, with recorded peaks of over 80,000. The site generates an average of 150,000 Visual FoxPro back-end hits, with peaks of over 250,000.
Microsoft, Visual FoxPro, Visual Studio, FoxPro, Windows, Rushmore, ActiveX, Visual C++, Visual SourceSafe, Windows NT, Visual InterDev, Visual Basic and BackOffice are either registered trademarks or trademarks of Microsoft Corp. in the United States and/or other countries.
Other product and company names herein may be trademarks of their respective owners.