Session E-TIER

Converting Single Tier Applications to Multi Tier Applications

Rod Paddock
Dash Point Software, Inc.


You have probably heard a lot about multi-tier development over the last few years. Multi-tier development is here to stay. This session will provide you with a blue print for converting your current single tier applications into a modern flexible multi tier design.

In this session you will learn:

What is Multi Tier Development

The concept of multi tier development has been around longer than you think. Many years ago developers came up with the concept of modular design. The concept of modular design breaks applications into small, understandable and reusable pieces that are combined to form an application. If you are using a library of functions you are practicing a form of multi tier development, albeit a simple one.

Today’s multi tier development takes this concept further. Instead of just breaking your applications down into function libraries you partition your applications into multiple independent different layers. One of the most common multi tier architectures is the 3-tier design.

This design breaks applications into three layers:

In the client sever applications we build we add another layer.

Other layers may include:

To put it simply your work divides your applications into different layers. So why would you want to do this? Read on…

Why Build Multi-Tier Applications?

There are many good reasons for developing your applications using a three-tier architecture.

This list is excerpted from "Building Components with Microsoft Visual FoxPro 6.0" from Application Developers Training Company (

The Process

The process of converting a single tier application into a multi-tier application is not much different than any other development process. The only major difference is that you are looking for information than can be placed in three major subject areas: User Interface, Business Rules, and Data.

The steps to moving an application into multi-tier development are as follows:

Taking Inventory

The first step in this process is to take an inventory of your current application. You should be looking for the following:

User Interface Standards

How does your application look and feel now?

What interface standards do you need to support?

Does your UI need to support data in any special data formats?

Business Rules

What rules are contained in your database ?

What rules are contained in your forms ?

What rules are contained in your programs ?

What new rules do you need to support ?

Data Sources

What existing FoxPro data do you need to support ?

What SQL Databases do you need to support ?

What Legacy systems do you need to support ?

How are you going to access these databases: ADO, Remote Views, SPT

TIP: Take a look at GENDBC to extract data structures and rules from a DBC.

Looking for Documentation

The next step is to look for documentation of the current system. Look for:

This documentation will insure that you are not overlooking any business rules that must be supported by your application.

Building a Development Plan

Now for the big step, building the development plan. When converting a single tier application into a multi tier one you will follow the normal process of building a development plan. This plan will include a schedule, testing plan, implementation plan and other normal development issues. However, in this conversion process you must make a critical decision: Rewrite or Evolve.

When you move into the multi-tier development world you must make the decision whether or not you will rewrite your application or evolve your application. Each of these approaches has its own set of advantages and disadvantages. Items to consider for each one are:

The Dilemma of Rewriting


New Code: You get a new and presumably better code base.

New Tools: You get to choose what tools to use.

New Architecture: You get to fully architect the application from the beginning.


Lengthy Development Time: This may take longer to complete.

The Dilemma of Evolution


Add New Features with new Tools: You can use new tools on the new modules.

New Architecture: Less time to implement.



Now that you have made the rewrite vs. evolve decision you can proceed to build your application. This is where VFP fits in. VFP is one of the best suited tools for moving into the multi-tier world for the following reasons:


As you can see there are a number of good reasons for building multi-tier applications. In this session you learned:

For updated versions of this paper and sample code go to:

Rod Paddock is president and founder of Dash Point Software, Inc. DPSI is an award winning software development company based in Seattle, WA, specializing in application development and software training. DPSI specializes in Visual FoxPro, Visual Basic, Cold Fusion, Visual Interdev SQL Server. DPSI's clients include: ADTC, SBT Accounting, The US Coast Guard, The US Navy, Pinnacle Publishing, Intel and Azalea Software. Dash Point Software, Inc. was a finalist in the 1998 Visual FoxPro Excellence Awards and 1996 Windows World Open. Rod has been a featured speaker at the 1996-1998 German FoxPro DevCons, the 1995 and 1998,1999 FoxPro Developers Conferences, and the 1995-1997 FoxTeach conferences. Rod writes for several database publications including: Data Based Advisor, Foxtalk and Dbase Advisor. Rod's books include: Visual FoxPro 6.0 Enterprise Development, and VB6 for Web Development.