Estimate migration from FoxPro to .Net

Software Conversion Estimation Tool

You can use VFPtoNET.SCX, our code analysis tool, to make preliminary and very aproximate estimation of migration your project from VFP to Dot-Net. Price and man-months will be counted and shown on last page of form.

But we recommend to provide us with the information we need to give you a quote. It won’t send any of your code or data to us – just metrics to help us gain an appreciation of the complexity of your application. Here’s how to use it:

We'll send you a quote, a draft proposal and a non-disclosure agreement.


  1. Vfp_To_Net_Estimation.scx

    Download and unzip Feel free to examine the code in our estimating form. We absolutely won't make any changes to your files, folders or data. The form opens your files with NOMODIFY so that nothing is changed. And, of course, the form doesn't send us any code or data across the Internet.

    Everything we need to assess your requirement - counts of lines of code, tables, keys, functions etc - will be stored into one XML file, which you can also inspect before you send it to us.

    If you plan several stages of migration then clone this form into several directories and estimate each stage with individual copy of this form.

    The form consists of four tabpages. On the first page you select the target technologies (WPF, WinForms, Entity-Framework, etc) to be used, the VFP project(s) to be migrated, the target data provider, whether or not to use pre-conversion, your data migration requirements, and a few additional options:

    Pre-conversion is only available for WPF and Silverlight. You can specify additional requirements in the "Details" area if the options on the first page don't define them adequately.

    If your data is stored in DBFs (which is almost always the case) and you haven't got a formal data model that specifies all primary keys, foreign keys and relations, then we can add ID keys of type UniqueIdentifier to each table. Such keys will have unique values even when created in disconnected mode. This is the most effective way manage your data. This is the default technology for ADO.NET Entity Framework and other client-server frameworks. We also regenerate all relations based on the new keys.

    The second page is used to list all of your source code files. You can add a FoxPro project that includes references to all needed source code files, or you can point to the project root directory. The form will scan all of the files listed in the project file, or all files located in the root directory and its subfolders.

    The project and other files can be any version of FoxPro. The program will enumerate all SCX,VCX,PRG,MPR,FRX files, counting controls, lines of code, and number of macro substitutions. We pay special attention to macro substitution because it’s a feature unique to FoxPro and can complicate the understanding of the structure of your application. (Wherever possible we replace macro substitutions with explicit calls in order to increase program speed, since macro substitutions in .NET requires compiling code.)

    You can select two additional target platforms or change the base target platform. You can also exclude any file or directory from the estimate.

    Comments can be attached to any object (PRG, SCX, FRX or MNX files, or even directories).

    The third page (Data Model) is used to locate and describe the data used by your application.

    First, you identify the data sources so that the app can scan the structures of all of your tables. Data sources can be:

    - A directory containing DBFs (subdirectory will also be scanned); or,
    - A DBC (Database Container).

    The app scans the data sources and collects the information needed to create the data model. This is needed to make a (very approximate) estimate of what will be required to create the SQL database and migrate the data.

    We need to understand the complete data model, and it’s often the case that the information from a DBC or a set of DBFs is not sufficient. So, we allow manual specification of things like primary keys, as well as foreign keys linking related tables, and the precise nature of relationships between tables.

    The fourth page, "Summary", is where we analyze the data extracted in the preceding pages, and compute the statistics that we need to make an estimate.

  2. Data to send us

    Finally, click "Generate XML file to send us." As you scroll down through the generated XML file, you will see that we have not included any confidential information. The XML that you see is exactly what will be sent to us.

    When the XML preview window closes, the form will offer to send it to us. If you consent, Outlook will open and prepare an email with the generated XML file as an attachment. If you prefer, you can just send the generated file (Vfp_To_Net_Extimation.xml) to us at .

  3. NDA and first draft of contract

    We will analyze the data in the XML file that describes your project, taking your comments into account, and then prepare and send you

    - NDA;
    - An initial estimate; and
    - sample contract.

    Write us ...