Thursday, February 17, 2011

Converting Your Existing Applications to Visual FoxPro 3.0

Converting Your Existing Applications to Visual FoxPro 3.0


--------------------------------------------------------------------------------

Joe Homnick

Homnick Systems.

Introduction

Visual FoxPro 3.0 has opened up a wealth of new developer tools that can only be considered as revolutionary for the FoxPro programmer. From object orientation to visual form and class tools, the whole application scheme has been revamped. Even though Visual FoxPro’s new environment provides a whole new way of doing things, your existing FoxPro 2.6 application can be almost seamlessly integrated into this brave new developer environment. The expansiveness of the new FoxPro features can be daunting, but this is mitigated by the conversion utilities built into VFP. This paper will look at how you go about converting your existing 2.6 application in Visual FoxPro. With this conversion you can start using these wonderful new features while still leveraging your existing development investment.

Successful conversion of an application requires planning of how the components of the application will be converted. The decision process is two fold. First, it must be decided if you want to take the default Functional conversion, that completely converts the 2.6 screen to a backwardly compatible Visual FoxPro form set, or Visually converting the form, which entails running the 2.6 coded SPR and manually implementing the converted form set. Secondly, decisions have be made on how you wish to incorporate the new extensions found in Visual FoxPro. The second question directly affects the first of Visually or Functionally converting your screens. However, no matter what conversion route you choose, the conversion will run your existing application AS IS, in the new Visual FoxPro environment.

The areas affected by conversion include projects, forms, reports, labels and code. The most intensive area is what used to be known as screens in FoxPro 2.6 and are now known as forms in Visual FoxPro. However, we will take a top down approach by looking at converting a project first and then working our way through the other components.

Converting Projects:

Conversion of a project from 2.6 to Visual FoxPro starts by opening the 2.6 project in Visual FoxPro. Visual FoxPro will recognize the file is a 2.6 PJX file and process it through the convert.app application. This convert.app application is installed by default in the Visual FoxPro home directory. Upon starting the conversion utility, a dialog, as depicted below, is presented to the developer.


This conversion dialog is very much like the dialog that is presented to you when you open a non converted 2.6 SCX screen file.

The first option of the dialog relates to if and where back up copies of pre-converted 2.6 screen sets are copied to. Before converting the 2.6 screen to a Visual FoxPro form, convert.app will create a directory OLD, off of the designated one.

The second option allows the specification of a log file. This is a text file with the suffix .LOG and contains a recap of the conversion process. The information includes, if conversion took place, elapsed time of the conversion, whether the conversion was successful or not, and error messages related to unsuccessful conversion. If problems occur during conversion, this log will be the source of detail for those errors.

Selecting Functional or Visual conversion is the area of most concern for the developer in converting their applications. Both conversion methods allow you to simply convert your application, build it and the run the resulting APP or EXE, the differences between the methods come into play when you start implementing and extending the converted form.

The Functional conversion creates the most hands off type of conversion, but can cause more work when extending your existing application with the new features built into Visual FoxPro. With Visual conversion, the forms in the application are better prepared to take advantage of Visual FoxPro’s new features, but require manual placement of the code behind the forms. The project implements these two methods in two very distinct ways. We’ll first look at the differences in the conversion methods as they relate to the project and then follow up with a detailed look at how forms are converted differently under the two methods.

When Functional conversion takes place, the forms are converted and the converted forms are called within the application. Under Visual FoxPro the code to call a form is DO FORM , in FoxPro 2.6 the syntax is DO .SPR. The converter does not modify the original calls to the forms, but creates a corresponding SPR file that executes a DO FORM . Here’s what the customer.spr program looks like after Functional conversion takes place, this would be executed with a DO CUSTOMER.SPR:

*- CUSTOMER.SPR
*- [CONVERTER] Declare variables for record pointers
PUBLIC _iconvCustomerGoToPlaceHolder

DO FORM "CUSTOMER.SCX" NAME _R2716LSBP LINKED

*- [CONVERTER] Begin CLEANUP and other procedures from 2.x Form

PROC CLEANUPSAMP
WAIT WIND 'nada'

*- [CONVERTER] End CLEANUP and other procedures from 2.x Form

Note that a public variable is initialized. This variable is filled with the current record number during the unload event of the form, to be used to reset the record pointer when reentering the form. Additionally, any procedures or functions that existed in the 2.6 clean up code are placed into this SPR. Unlike a standard Visual FoxPro form, this form emulates a 2.6 read and creates a wait state while the form is running. The program does not finish executing until after the form is released, thereby giving the form access to procedures and functions contained within the calling SPR program.

A Visual conversion differs in that although the screen is converted, the SPR is not overwritten with the code demonstrated above. The SPR remains the same as it was in 2.6 and is simply recompiled. The converter doesn’t make assumptions about where to place code snippets in the new Visual FoxPro form set, but rather writes them out to a program file. The new Visual FoxPro form will not run if it is dependent on these disembodied snippets. To make the form functional, there needs to be some interaction by the developer. First in calling the form with a DO FORM and placing the code snippets in their correct events of the form.

Converting from the project level is the most desirable way to convert an application. Not only does it convert all components of an application, it is the only method that will convert multiple screen sets into a Visual FoxPro form set.

Form Conversion

Form conversion can be invoked by opening a 2.6 screen or electing to convert a project that contains screens. Either method presents the developer with the election of executing the default Functional or optional Visual conversion. The resulting forms from each conversion method differ in several ways. The resulting forms from a Functional conversion result in a complete working form that respects all facets of the previous 2.6 environment. The Visually converted forms require the developer to manually place code snippets where appropriate.

Functional Form Conversion

Functional conversion creates a form set and places all the controls from the 2.6 screen onto a Visual FoxPro form within a page frame container. Each page frame relates to an individual read in the predecessor 2.6 screen, so if the screen was created in 2.6 with multiple reads they would each correspond to a page frame in the converted Visual FoxPro form. Even though multiple reads in a single screen were not a common implementation method in 2.6, the Functional conversion takes their possible implementation into consideration and can be considered one of the major draw backs of this method.

The most important setting in the Functionally converted form is the form set WindowType property. If the value of this property is 2 or 3 then the form set takes on the read qualities of a 2.6 screen set. Execution stops when a DO FORM or SHOW command calls the form. The WindowType value of 2 is a normal form set which can be deactivated, a value of 3 makes the form modal so that it must be released before execution can start again. This WindowType properties relating to 2.6 screen compatibility are only available with Functionally converted 2.6 screens. When screens are converted Visually or are created in Visual FoxPro, this WindowType property only relates to standard Visual FoxPro modeless and modal behavior and does not allow the backwardly compatible settings of 2 and 3. The only time you will see form set WindowType properties with READ capabilities is in a Functionally converted form set.

Code is moved from the 2.6 events to Visual FoxPro events in a specific pattern. The following is a table of the conversion of 2.6 events to Visual FoxPro events.

FoxPro 2.6 Screen Event Converted Visual FoxPro 3.0 Event
Setup - #Section 1 FormSet.Load
Setup - #Section 2 Form.Load
Activate Form.Activate & FomSet.Activate
Deactivate FormSet.Deactivate
Show FormSet.ReadShow
When FormSet.ReadWhen
Valid FormSet.ReadValid
Cleanup FormSet.Unload & SPR for procs/functions

The READ key words CYCLE, LOCK, MOUSE, SAVE, and TIMEOUT are moved to form set properties with the names ReadCycle, ReadLock, ReadMouse, ReadSave, and ReadTimeout.

Abehavior unique to this backwardly compatible screen relate to variable scoping. Variables that are defined in the load event are scoped to the life of the form. This is for backward reasons only and does not conform with standard Visual FoxPro variable scoping

It should be noted that there are environmental settings are automatically defined in the FormSet.Load event and the current record pointers are saved in public variables during the FormSet.Unload event. The Data Environment of the form is updated with all appropriate 2.6 View Environment objects such as the table alias’s, index orders, relationships. The 2.6 generator directives for automatically opening and closing the tables are moved to the properties AutoOpenTables and AutoCloseTables in the DataEnvironment object.

Extending a Functionally-Converted Form

The following is a twelve step program for extending functionally converted forms into a Visual FoxPro format. By definition, the functional conversion creates a backwardly compatible form set. By applying these twelve steps to the situations that apply to the particular form, you can change the backwardly compatible form set into a standard Visual FoxPro form set. This conversion process is an excellent learning tool for the 2.6 programmer moving to Visual FoxPro.

Move parameter code from load event to init event


Change form level variables to user defined form properties


Create form methods for form specific procedures and functions (those moved to the SPR)


Change CLEAR READ to RELEASE ThisFormSet or RELEASE ThisForm


Change SHOW GET to .Refresh


Change SHOW GETS to ThisForm.Refresh or ThisFormset.Refresh


Change SHOW GET for List and Combo boxes to .Requery


READSHOW, READWHEN, should be moved to the Formset Load event


READACTIVATE, READDEACTIVATE, should be moved to the Formset Activate and Deactivate events


READVALID should be moved to the QueryUnload event


Foundation reads should be converted to READ EVENTS and CLEAR EVENTS


Change the WindowType property to 0 or 1
Visual Form Conversion

Visual conversion approaches form conversion in a Visual FoxPro related paradigm, as opposed to the backwardly compatible one in Functional conversion. The resulting form set and forms mimic a standard Visual FoxPro form set arrangement, while the Functional conversion mimics 2.6 behavior. There are no page frame containers in the Visually converted form and the form set WindowType property is set to 0 for modeless or 1 for modal. Unlike the Functionally converted form, execution does not stop when the form is called with a DO FORM or SHOW command.

The most significant difference between the two conversion methods, at least as it relates to developer interaction, is that Visual conversion does not place any code snippets into form events. When conversion takes place the code snippets are separated into a PRG file so they can be implemented visually by the developer into the converted form. An example of this PRG file shows a converted 2.6 push button valid snippet that calls a search screen.

*----------------------------------------------
*- Code from C:\jfhapp\screens\JCONT1.SCX
*----------------------------------------------

*----- cmgOption1
PROCEDURE Valid
DO search.spr
ENDPROC

After code is placed from the conversion PRG into the form, the developer needs to integrate the form into the application. To implement the converted form into a project, the call to the screen needs to be changed from DO .SPR to DO FORM or the SPR needs to be changed to explicitly call the form with a DO FORM command. Remember that miscellaneous procedures/functions from the 2.6 screen cannot be put into the SPR since launching the form does not stop execution under standard Visual FoxPro behavior. These items need to be added to a PROCEDURE file or implemented within the form as methods. Note that if procedures are implemented as form methods, the calls to the procedures must change also.
Deciding Between Visual or Functional Conversion

When executed through the project manager, both Visual and Functional form conversion end up with a FoxPro 2.6 application running in Visual FoxPro 3.0. The difference is that with Functional conversion, the forms that run in the application, are the actual converted forms. With Visual conversion, the original 2.6 SPR is running in the application. Since the initial result is the same, the question of which method to select comes down to how extensive the maintenance to forms is expected in the future. If expected future maintenance can be expected to be minor and cosmetic in nature, then Functional conversion would be a logical choice. If larger scale changes to the forms can be foreseen, then the developer might opt for a Visual conversion that will allow a complete implementation of the new Visual FoxPro model. A very important point to remember is that the Visually converted form do not contain the page frame controls that the Functionally converted one does.

Through project conversion you cannot selectively convert some screens Visually and others Functionally. Project conversion is an all or nothing proposition. This can be somewhat mitigated by being able to selectively convert forms, after the fact, from the backup OLD directory. Of course, screen set properties, such as multiple screens, are only available through the project manager. If a hybrid method of converting forms is required, consideration of doing two separate project conversions and mixing/matching the results should be considered.

No matter which method is selected. It should be noted that the extension of a Functionally converted form to a Visual FoxPro format is an excellent learning tool and should be investigated if only for that reason.

What Can Cause Conversion Problems

Be careful with macro substitution in properties. For example a 2.6 push button prompt of &buttonprompt will be converted to =”&buttonprompt” in the Visual FoxPro caption property of the converted command button. This needs to be changed to =buttonprompt in the property sheet.

It is possible to have a conflict in the Visual FoxPro naming convention by having a long variable name with 10 common characters, not very likely, but a definite gotcha.

There are new reserved words in Visual FoxPro, if you run into an unexplainable problem with certain code, check it against the reserved word list found in the help file.

Overlaying of controls is handled differently. If the resulting appearance is not as desired, consider reordering the objects and implementing the Zorder method.

Reports and Labels

The only significant modifications to 2.6 FRX and LBX files are the addition of additional rows to contain information related to the Data Environment object.. If the report/label was saved with an environment in 2.6 the AutoOpenTables and AutoCloseTables in the DataEnvironment object are set to .T. and table alias’s, index orders, relationships objects are added to the Data Environment.

Extending Existing Code

The grid control has taken over as an objectified browse, so that future browse type implementations will be grid based. However, your existing browse code can be objectified through the use of the NAME keyword. You can define the browse NAME object and then manipulate the browse in a PEM (Property, Event, Method) Visual FoxPro fashion. Here is an example of objectifying a browse using the name property and then changing the BackColor property of the objectified browse to turn the background color of the browse red.

USE customer
BROWSE NAME oBrowseGrid
oBrowseGrid.BackColor=RGB(255,0,0)

This new named object can be manipulated just like a grid object. Your existing browses can easily be extended to include dynamic colors, combo box or spinner column controls, etc. All capabilities of the new grid control can be added to your existing browse, with very little coding.
This same NAME keyword is available for all the @...GET commands so existing code for the objects on forms can be objectified just like the browse command.

dBASE and FoxPro for MS-DOS

The conversion utilities work the same with Dbase forms and reports. If you are converting from a FoxPro platform that would require conversion to FoxPro for Windows, such as FoxPro DOS, the FoxPro for Windows transport utility will first transport to windows objects and then convert to Visual FoxPro.

Conclusion

The conversion capabilities built into Visual FoxPro allow the 2.6 developer to easily move their existing application into the new visual and object oriented Visual FoxPro development environment. Whether the conversion is functional or visual, the existing 2.6 application will run virtually untouched in Visual FoxPro. Using the visual tools, class libraries and code extensions, the developer can learn how to add Visual FoxPro functionality to their already running application. Thereby, learning this brave new world while still leveraging their existing investment.

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.

Sunday, April 18, 2010

Foxpro Support - Future of Foxpro

Why should I invest in converting to Visual FoxPro when Microsoft will no longer support foxpro after 2015?
Visual FoxPro with its integrated Database, Object-Oriented Development Environment, SQL Engine and Report Writer delivers more capability, and more real Rapid Application Development potential, in a single, (relatively) lightweight, royalty-free distributable form than any other product on the market.
One of the main reasons for Microsoft stopping foxpro support is that Visual FoxPro does not fit into the Microsoft "vision" for software development where everything generates revenue for Microsoft.
Migrating to .Net with a SQL Server requires an investment in hardware and support capabilities and that is more expensive in both the short term (initial acquisition), and the long term (maintenance and support)
.NET/SQL Server combination falls short as a replacement environment for the type of LAN-Based, Desktop PC, application that is the traditional home of the VFP Application.
The vast majority of small/medium sized businesses run applications that are LAN-based on desktop PCs and have neither the infrastructure, nor the capability (let alone the money) to re-architect their environments to maximize compatibility for .net.
As there will be no new versions, VFP will not be able to take advantage of new operating systems, or hardware, that may come along. But, as long as operating systems continue to support 32-bit applications (all OS existing today support 32 bit) then VFP will continue to work and applications and investment in VFP will continue to be viable.
The increasing reliability and capability of virtual servers that allow different operating systems to run concurrently on the same physical hardware, opens up a whole new future for VFP
Running a VFP application on a virtual server that has Windows XP or other 32-bit OS means that existing foxpro applications continue to work, as they do now, but it is also possible to still take advantage of new hardware and new software for other functions.
Even without the virtual server there are plenty of FoxPro for Dos and FoxPro 2.6 for Windows applications still running today. These were designed for 16 bit environments yet they still work adequately many years after the product in which they were created passed out of existence. So it will be with Visual FoxPro.




Is FoxPro or Visual FoxPro dead? Should I convert my FoxPro / Visual FoxPro application to something else?
Microsoft’s announcement about stopping support to Visual FoxPro just means that Microsoft will not make any more changes to Visual FoxPro. But they do not need to as VFP programs runs fine on today’s computers. As long as a computer with a 32 bit operating system is provided, Visual FoxPro applications can be run on that computer.
Microsoft has not supported FoxPro for DOS for since the late 90s but there are still thousands of such programs in use today.
According to Alan Griver, head of Visual Studio data team at Microsoft, there are more applications running in FoxPro 2.6 than there are in Visual FoxPro and FoxPro 2.6 hasn't been supported since the 90’s. Visual FoxPro 9 will be supported by Microsoft through 2015.
Once the time does come to convert Visual FoxPro applications, which will not be at least until the end of the next decade, there will be technologies available that are vastly superior to the alternatives available today. So, if you go to the enormous expense of converting to say .NET with a SQL backend, you may find yourself converting again in 10 years.
Concerns about the future of Visual Foxpro are not sustainable atleast until the end of the next decade or even further. An investment in either upgrading or enhancing your current Foxpro program now will be secure for the future and until a time when a better technology can be found that would provide the same robustness, effectiveness and cost economy a Foxpro program would. There will be programmers and developers who will keep providing Foxpro support for applications in the forseeable future.

Tuesday, April 13, 2010

Advantages of Visual Foxpro

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 toolsWith 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.

Sunday, April 11, 2010

Foxpro today & Tomorrow

Welcome To Expert-Foxpro-Advisor

Your Resource For Foxpro Development, Foxpro Programmers And Business Software Development And Implementation


Since you have come to this site, most likely you are either a business owner or business manager, or a software development company that works with Foxpro. And most likely, you have identified a need in your company for a person or persons with skills in Microsoft's Foxpro.

For Business Owners and Managers

For business owners or managers without a technical background in software development and software technologies, a short primer is in order:

History of Foxpro

Microsoft Visual Foxpro is a programming language and database management system. In the early 1980's a company called Ashton Tate developed the original 'Dbase'. Dbase was the first database management system/programming language that was easy to use and reasonably priced. For the first time, 'the masses' were able to harness the power of a database and easily build powerful applications for business purposes. By the mid 1980's use of Dbase had grown in leaps and bounds. Starting around the mid 80's as well, several serious competitors to Dbase came onto the scene. The most significant of these were Foxbase by Fox Software, which was released in 1984, and Clipper by Nantucket Corporation, released in 1985. In 1989 Fox Software released Foxpro, the successor to Foxbase. In 1992, recognizing the powerful technology platform in the Foxpro product, Microsoft aquired Fox Software.


By the early 90's Foxpro had achieved a dominant position in the marketplace for desktop/PC based databases. All the other competitors in the market had become, at best, minor players. It is estimated that at that time there were well over 200,000 Foxpro applications in use worldwide. In 1994 Microsoft released Visual Foxpro 3.0. Although Visual Foxpro 3.0 retained 'backwards compatibility' with even the earliest versions of the original Foxpro/Dbase language, it was radically more powerful; Foxpro had reinvented itself to become and extremely powerful, modern and thoroughly capable tool for modern software development. In subsequent years, Visual Foxpro 5, 6, 7, 8 and 9 were released. These releases added even more power and capabilities to an already powerful software and database platform.

Usage Of Foxpro - Declined Starting in The Late 90's, But Still Going Strong...

Although Visual Foxpro had become an extremely powerful software tool, and although it had (and still has) legions of developers who were absolute fanatics about it, starting in approximately the late 1990's, usage of Foxpro began to decline. At about this time, Microsoft began to heavily market the use of the other software development tools in its arsenal. These tools included Microsoft SQL Server, Microsoft Access and Visual Basic. Beginning in around 2001, Microsoft launched the '.net framework'. The .net platform was Microsoft's response to the ubiquity of the Internet; it signalled the beginning of Microsoft's effort to put Web application development and Web application development strategies at the core of their software development strategy.

Foxpro Today - Still A Superior Platform For Software Development For Business Software Applications

For Foxpro Developers and Programmers, Microsoft's push to have companies use other software tools was very disheartening. Foxpro developers understood that Visual Foxpro was an extremely powerful tool; it was easy to use, yet incorporated the most powerful concepts in modern software development - use of 'Object Orientation', a powerful Visual Forms interface, and, most important of all, true to its origins and history, it was still, by far, the fastest database platform available. Although Microsoft SQL Server had come a long way, Foxpro's underlying database technology made it the platform of choice for applications on a Local Area Network where speed and performance were of the utmost concern. Even today, in many environments, Foxpro's 'local database engine' often outperforms Microsoft SQL Server.

Foxpro's Place In The Software Development World And Business Software

In the past several years, usage of Foxpro has continued to diminish. This is especially true in the larger 'corporate arena', where the software must be 'interoperable' with other web development initiatives. Even more importantly, in the large corporate arena, Microsoft aggressively pushes companies to use it's other tools; the .net framework and others.

However, that said, there are still hundreds of thousands of Foxpro applications in use, worldwide, ranging from very old Foxbase applications to the most modern VFP 9 applications which are being actively developed. And, because the 'Foxpro Community' is still extremely active, and extremely committed to the continued use, and improvement, of Visual Foxpro, new extensions and improvements to the language and system are being aggressively developed. In recent years, due to the activities of numerous committed individuals and companies, extensions and improvements have been made to the Foxpro language that are extending its interoperability with Microsoft's other tools, and expanding it's abilities to be integrated with web applications. In fact, in the past year, usage of Foxpro (Visual Foxpro) has once again seen a resurgence. Microsoft itself has committed to support Visual Foxpro until 2014.

Rewriting or Replacing Existing Foxpro Applications Is Often Unwarranted

Although Microsoft may be aggressively pursuing the use and implementation of it's 'newer tools', many, especially those who are savvy about Microsoft's tactics, recognize that, in many cases, just as the push to get the 'latest operating system upgrade' is often driven by marketing hype, not 'real business need', so too, the need to adopt the latest software development tool or platform is often driven by marketing hype as well. For the thousands upon thousands of businesses, large and small, that have existing Foxpro applications in place, humming away, admirably serving the business purpose for which they were developed; the question becomes, 'what purpose would be served by converting this application? What would the return on investment be for converting such an application? As a business manager, or technology manager, it will be up to you to sort through the marketing hype, the vendor hype, and the functional requirements for your software applications, to make a reasoned decision about whether an application needs to be rewritten, or replaced, by a newer application based upon a different technology platform. In many cases, after a clear and reasoned evaluation of the business requirements, the answer becomes clear: rewriting or converting the application would be time consuming, costly, and, most likely, provide very little, if any, return on investment. In these cases, usually the best solution will be to continue with the existing software infrastructure. In these cases, an existing solution can be enhanced, either with the current Foxpro version, or by upgrading to the latest Foxpro release. In other cases, it may turn out that continued use of Foxpro may not be the right choice for an organization. In this case, other software tools and techniques may be necessary. Please realize, however, that we are also well equipped to help you in making this assessment as well, and further, we are also extremely proficient with other technology tools and platforms, ranging from web development technologies, to Microsoft's .net platform, to Java and others.

We are commited for Long Term Commitment To Provide Quality Foxpro Applications To Business Software Users


we are committed to the continued use of Visual Foxpro as an ideal choice for Business Software Solutions; especially for small to medium sized companies who already have an extensive investment in the Foxpro based solutions. We can help you evaluate your existing software applications, and evaluate your new software development efforts.

We are committed to the idea that Foxpro applications, and Foxpro Development will continue to play a vital role in the software initiatives undertaken by small and medium sized companies around the world. With this idea in mind, to staffing and managing Foxpro Programming and Development projects with top-notch, highly skilled programmers and analysts, with a committment to excellence; a committment to delivering best of breed business software solutions that provide a measurable return on investment for the companies that implement them, and deliver the functionality that a company requires for the solution in question.

Govind Mori
Rajkot

Thursday, April 8, 2010

Foxpro Consultant

We are providing foxpro dos as well as visual custimsed application solutions