Application Planning

Careful planning saves time, effort, money, and sanity. The more you involve your end users in the planning process, the better. No matter how carefully you plan, though, you'll probably end up refining the specifications as you progress through the project and your end users provide feedback.

Some of the design decisions you make will impact how you create elements of the application. Who will be using the application? What is the center of user activity? How large a data set will you conceivably be working with? Will back-end data servers be used or will the data be exclusively local to a single user or multiple users over a network? Consider these factors before getting too far into the project.

Common User Activities

Even if your end users are working with customers, orders, and parts, how they are working with this information will determine how your application should deal with the data. An order entry form, like the one in Tastraded.app (in the Visual FoxPro \Samples\Tastrade directory), might be necessary for some applications, but wouldn't be a good tool for managing inventory or tracking sales, for example.

Database Size

You'll want to think more about performance if you are dealing with large sets of data. Optimizing Applications explains methods of optimizing performance. You may also want to adjust the way you allow users to move through the data. If you have twenty or thirty records in a table, it's okay to let users move the record pointer in a table one record at a time. If you have twenty or thirty thousand records, you'll have to provide other ways of getting to the desired data: adding search lists or dialogs, filters, custom queries, and so on. Using Controls, explains how to use a list to select specific table records. Creating Views, discusses creating parameterized queries.

Single User vs. Multiple Users

It's a good idea to create your application with the assumption that multiple users will be accessing the database at the same time. Visual FoxPro makes it easy to program for shared access. Programming for Shared Access describes techniques for allowing multiple users to simultaneously access your database.

International Considerations

If you know your application will be used only in a single-language environment, you don't have to worry about internationalization. If, on the other hand, you want to expand your market, or if your users could be dealing with international data or environment settings, you'll want to take these factors into account as you create the application. Developing International Applications discusses the issues you'll need to deal with as you develop applications for international use.

Local vs. Remote Data

If your application deals with remote data, you'll manage it differently than you would manage native Visual FoxPro data. Creating Views explains how to create views to local or remote data. Creating Client/Server Solutions discusses how to design applications that work seamlessly with remote data.

Backing up Your Source Code

In all application development, it's a good practice to make complete backup copies of your original program files before you build an application. Store the backup copies separately from your compiled applications.

Note   Be sure to maintain separate copies of your original source programs for future use. You cannot re-create your source programs from their compiled code.

See Also

Application Development | Developing International Applications | Programming for Shared Access | Optimizing Applications