Receive a Cost-Free Initial Estimate for a FoxPro Conversion

In order to provide an initial estimate, we need a working copy of the program along with data and the latest source code. If you’d like us to sign a non-disclosure agreement, email us at info@erwcp.com. If you know how, zip up everything and go to our Send File tab. If you need help, here’s a brief video with step-by-step instructions:

What We Evaluate In Your Visual FoxPro Program and Data

1. findallclasses.prg  – find all classes and classlocs and put the code in one easy to search table.

2. frxfields.prg – finds all constants, functions, fields for all FRX files (report files) and lists them along with the FRX name.  Some very complicated code can be embedded in an FRX file.  We need to know this before estimating.  Below are a few examples from a recent project.  We found 12,118 expressions in the FRX files for this client.  Most, but not all, are very easy to auto-convert.

ACTIVESTUDENTS.FRX                      DATEtime()                                                                      

ACTIVESTUDENTS.FRX                      STUDNUMBER                                                                      

ACTIVESTUDENTS.FRX                      alltr(FIRSTNAME) +” “+alltr(lastname)                                           

ACTIVESTUDENTS.FRX                      alltr(CITY)+” “+alltr(state) + ” “+ alltr(zip)                                  

ACTIVESTUDENTS.FRX                      alltr(PHONE1)+” / “+ alltr(phone2)                                              

AGCYEDIT.FRX                                     getcompnm()                                                                     

AGCYEDIT.FRX                                     “Page: “+alltrim(str(_pageno))                                                  

AGCYEDIT.FRX                                     padr(iif(empty(agyplac.NAMEPREFIX),””,alltrim(agyplac.NAMEPREFIX)+” “)+alltrim(a

3. alllinesofcode.prg  – finds all lines of code in all forms, programs, libraries.  We use the output from this program continuously.  Also, knowing the number of lines of code is one of the most important variables in estimating the scope of a  project.

4. findallsubfolders.prg  – finds all sub-folders and files contained therein.

5. allaliases.prg – finds all aliases that are not the same as the dbf name.

6. findallMasksAndFormats.prg  – lists filenames, inputmasks, and format. 

7. getallvartypes.prg  – finds all vars and try to determine their types.  Visual FoxPro allows a variable to be any type at any time.  So “x” might be a string in one line of code but be converted to an integer in the next.   This creates some serious issues that must be handled when converting to .NET.   We use C# and it will not let the var type change.

8. menuprompts.prg – documents menu calls to a text file. Below is a partial example:

SET SYSMENU TO

SET SYSMENU AUTOMATIC

DEFINE PAD _4y116zk0p OF _MSYSMENU PROMPT “\<Stucco” KEY ALT+S, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0q OF _MSYSMENU PROMPT “\<Payroll” KEY ALT+P, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0r OF _MSYSMENU PROMPT “\<Admin” KEY ALT+A, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0s OF _MSYSMENU PROMPT “Sa\<les” KEY ALT+L, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0t OF _MSYSMENU PROMPT “S\<etup” KEY ALT+E, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0u OF _MSYSMENU PROMPT “Ma\<terials” KEY ALT+T, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0v OF _MSYSMENU PROMPT “\<Reports” KEY ALT+R, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0w OF _MSYSMENU PROMPT “\<Utilities” KEY ALT+U, “” COLOR SCHEME 3

DEFINE PAD _4y116zk0x OF _MSYSMENU PROMPT “E\<xit” KEY ALT+X, “” COLOR SCHEME 3

ON PAD _4y116zk0p OF _MSYSMENU ACTIVATE POPUP stucco

ON PAD _4y116zk0q OF _MSYSMENU ACTIVATE POPUP payroll

ON PAD _4y116zk0r OF _MSYSMENU ACTIVATE POPUP admin

ON PAD _4y116zk0s OF _MSYSMENU ACTIVATE POPUP sales

ON PAD _4y116zk0t OF _MSYSMENU ACTIVATE POPUP setup

ON PAD _4y116zk0u OF _MSYSMENU ACTIVATE POPUP materials

ON PAD _4y116zk0v OF _MSYSMENU ACTIVATE POPUP reports

ON PAD _4y116zk0w OF _MSYSMENU ACTIVATE POPUP utilities

9. vfpfindallfieldsalldbfs.prg –  lists all fields for all DBFs along with the type, length, and number of decimals.

 

10. findmacros.prg – finds and lists all macros.

We will run the above 10 programs against your programs and data. In addition, we look at a sampling of your programs to get a sense of the complexity.  After doing all of that, we can give you a ballpark estimate.

We have dozens more programs that we use to speed up the conversion of Visual FoxPro to C#.NET but the above are some of the more important ones.  

Question & Answer

If we don’t have our Visual FoxPro source code, how long is the process of re-writing the program in a new, modern language (C#, Visual Basic, etc.)?
 
This depends on the scope of the work. We’ll need very detailed specifications about your program requirements before we can answer that question.
 
How will the new program affect our current configuration? SQL vs local db
 
Your new program will function exactly as your old program but its data will be SQL Server (or MySQL).
 
Will we be the owners of the code?
 
In our contract you will be designated as the owners of the source code.  In addition, as the project develops, at all times you will be in possession of the latest source code.  
 
Will the new program be able to run alongside the existing program to ensure we have a stable system during transition?
 
Yes.
 
How is the program tested?
 
On a system completely separate from your current system. We will test our work first and then you can test it. We expect our clients to do continuous testing as we complete converting screens and reports and special processes. Also, we insist on tracking the work online in Smartsheet, allowing transparency and participation for all of the program stakeholders. Progress on each screen, report, and other tasks are easily tracked. This short video gives a good overview of how Smartsheet works: 

"We have very powerful auto-convert programs that automatically convert most, if not all, of your forms (screens), reports (.FRX files), DBFs to SQL Server and a significant percentage of the actual code found in your PRG, FRX, SCX, and VCX. This makes us extremely competitive." - Wes Wilson

Ask Us Anything About FoxPro Support or the Conversion Process