Wednesday, May 26, 2010

Why Foxpro ?

Why are you still developing applications in FoxPro?", I get this question a lot. There is a misconception that FoxPro is old technology, is going to be phased out, or has been replaced by Access. The question of FoxPro versus Access has been around since Microsoft purchased FoxPro from Fox Software.

It is difficult to compare these two programs. The simple answer is FoxPro and Access is two distinct products designed for two distinct markets. Access is an end-user product designed to be easy for the end-user to capture, process and report on small amounts of data (under 100,000 records). FoxPro is a development tool, fully object oriented, designed to process millions of records and functions very well either as the back-end of a moderately complex solution or as the middle tier of a very complex one. Each has it's own place in the software world, but there really is no direct comparison. It's like saying "Which is better, Notepad or Word"? The answer is of course "It depends on the job you are trying to do!"

As a software developer I would never consider using Access it just does not have the flexibility and power need to develop robust multi-user applications. If you are working on a short-term in-house project that is going away in 6 months use Access. But if you are building something that is going to be around for the next 5 years use FoxPro.

Ask an Access developer for customer references from customers who have had their applications running for 5 or more years, you will not find many. Do the same for FoxPro developers I personally have 5 applications running 5 or more years and 3 of those are mission critical.






VISUAL FOXPRO SOFTWARE DEVELOPMENT The Visual FoxPro software development system is used in designing sophisticated database applications. Visual FoxPro is an optimal software development platform for many situations and work environments. The following are the advantages and disadvantages of using Visual FoxPro for your software development:

Visual FoxPro Advantage - Programming tools
With Visual FoxPro, procedural Xbase and object-oriented (OOP) programming can be combined to create this planet's most powerful and sophisticated software applications. Xbase and OOP provide the developer with tools to manipulate data, non-visual program objects, and GUI objects with pinpoint control. This allows the design and development of user-friendly applications that can manage highly complex information and business processes. Visual FoxPro is by far the best tool for software development projects and database applications that are central to an organization's information management.

Visual FoxPro Advantage - Flexibility
Visual FoxPro exposes an extremely large quantity of properties, events and methods (PEMs), which can be accessed and manipulated with VFP programming code. By combining Xbase and OOP with PEMs, developers can create applications which provide maximum ease of use and high levels of sophistication at the same time. This type of software development gives Visual FoxPro an unparalleled advantage over most, if not all, competing software development products.

Visual FoxPro Advantage - Data driven applications
Due to it's ability to concurrently open and manipulate an almost unlimited quantity of tables and cursors, Visual FoxPro has become an indispensable software development tool for creating data driven software applications. This kind of flexibility extends data functionality and the types of data that can be utilized within a software application. Data driven functionality can be used to automatically configure an application to individual preferences and configure interfaces according to changing conditional data. In a properly designed Visual FoxPro application, the interaction between "data" and "Interface" is continuous and dynamic.

Visual FoxPro Advantage - Data processing and analysis
Visual FoxPro is a highly efficient and flexible tool for creating data processing routines and analyses for large and dispersed volumes of data records. Visual FoxPro provides the ability to create the same types of standard SQL queries, which are included with most other database development products.

However, the Xbase language allows data processing to go above and beyond the standard SQL query. Xbase is able to process data in ways that traditional SQL statements simply cannot handle. During software development, a programmer can create programs which use only Xbase, or use Xbase and SQL in mutually serving combinations. Regardless of which method is used, the ability to use both Xbase and SQL has made Visual FoxPro the leading software development tool for processing and analyzing large complex volumes of data.

Visual FoxPro Advantage - Supports high volumes of data
Visual FoxPro is the perfect solution for organizations with moderate to high levels of data transactions. Each data table within a Visual FoxPro database can support up to 2 Gigabytes of data or 1 billion records. Keep in mind that this capacity is for "each" table within a database, not the entire database. If software development is done properly, this provides you with an almost unlimited database capacity . With proper database management, Visual FoxPro will easily and efficiently handle "most" user environments and situations.

Visual FoxPro is by far the most cost effective and efficient software development solution for the medium to large size company.

Visual FoxPro Advantage - Web application development
Visual FoxPro is the ultimate software development tool for building Internet applications. VFP is a powerful software development tool for building the next generation of web applications, including web services and desktop software applications that efficiently send and receive data across the Internet. The future of the Web is about using the Internet as a global network, where we can connect our desktop and web site applications to remote database servers/services, which reside on the Internet. Visual FoxPro, along with the new ".Net" technologies, will be a leader in this second wave of the Internet.

Visual FoxPro Advantage - Third party technologies
FoxPro has been around for a very long time. During the past 10+ years, many third party software development companies have created add-on products for FoxPro and Visual FoxPro. This has resulted in Visual FoxPro having access to an extremely wide variety of "add-on" components. This gives software development professionals the tools to build applications which extend beyond the native functionality of Visual FoxPro. When you combine the native power/flexibility of Visual FoxPro with the wide availability of compatible third party components, there is not much that cannot be built using Visual FoxPro.

Visual FoxPro Advantage - Maturity and Stability
After 10+ years of continuous improvements, FoxPro has become the most stable and bug free software development system on the market. The stability of the Xbase foundation has been with FoxPro from the start, with cutting edge technologies being added to this foundation over the years. Each new version of Visual FoxPro has proven it's stability and reliability, with many thousands of high level software development companies and end-user organizations to confirm this reliability.

Visual FoxPro Advantage - A complete development tool
Visual FoxPro is a unique system, in that it combines tight native data integration with high level software development technologies. This takes Visual FoxPro far beyond other products, which are either focused on database management or software development technologies. Visual FoxPro has the best of both worlds, combining both powerful database management capabilities and sophisticated software development technologies.

Disadvantages
As with any software development product, there are environments where Visual FoxPro should not be used as a "complete" solution. However, Visual FoxPro is very often the best tool for creating and managing small databases, moderate size databases, large databases, and highly complex software applications for the desktop and Web.

We would recommend a different product in the following situations

1. Your organization processes "extremely" large quantities of records per hour. A high end database server such as "SQL Server" or "Oracle" would be recommended in this instance. Although, Visual FoxPro software development could be used to build a Front-end to these database servers.
2. Your application will require "extremely" high levels of concurrent usage. A high end database server such as "SQL Server" or "Oracle" would be recommended in this instance. Although, Visual FoxPro software development could be used to build a Front-end to these database servers.
3. High levels of administrative security are required. We would recommend "SQL Server" in this instance. Although, Visual FoxPro could be used as it's Front-end.
4. Your organization requires a software development tool that can be easily used by non-programmers to make modifications. Depending on other circumstances, we may recommend Microsoft Access in this situation. The development and upgrades of a Visual FoxPro application requires the expertise of an experienced software developer. Visual FoxPro is not recommended as a database programming tool or software development tool for users or programmers with little or no programming experience. Microsoft Access provides use-friendly tools for users with little or no database management/programming expertise.
5. The entire database application needs to be extremely portable. Depending on other circumstances, we may recommend Microsoft Access in this situation. The one file system of Microsoft Access facilitates easy migration of data and complete applications between computers.

No comments:

Post a Comment