Where is WebAppBuilder.app?

Topics: Developer Forum
May 17, 2011 at 3:10 PM


I'm trying to understand how ActiveVFP works, after more than 15 years of developing in all versions of (Visual) FoxPro.

As far as I can see I followed the installation instructions an I can see the sample HTML page at http://localhost/activevfp/

In the documentation the webAppBuilder.app is mentioned to get started with my own project, but I cannot find this file on my system. Where should it be located? How should it have been installed?

Regards, Gerrit

May 17, 2011 at 4:04 PM

WebAppBuilder.app was in AVFP vers. 4.  ActiveVFP 5 versions don't really need it since it's XCOPY and supports copying to a shared Web Host like goDaddy.

Check out the latest documentation here:


There is no mention of WebAppBuilder in the latest docs and shouldn't have been in what you downloaded but I may have overlooked it.  Are you working from the latest AVFP 5.5 download??

May 17, 2011 at 7:06 PM

Hi Claude,

I installed 5.5 today.
When I click the documentation on http://localhost/activevfp and go to .../html/docs.htm it is still there (above the GoDaddy image).
I still don't understand how to get started. On http://localhost/activevfp/ I see the sample page. I don't see where it comes from, I guess it should be main.prg from "C:\inetpub\wwwroot\activevfp\prg", but the contents don't match.

Where should I add my project and start coding? I guess I need a manual instead of a collection of commands.

Regards, Gerrit

May 17, 2011 at 7:27 PM
Edited May 17, 2011 at 7:29 PM

Ok, so the demo worked for you, I'm assuming.

Your new application will consist of main.prg and associated HTML files.  Just start coding in the demo files or create another directory and install there.  As long as the demo application is working you're good to go.  Use the existing examples as templates for your own code.  Either start coding in those routines or copy them.  The example vfp code will primarily be in the html but could also reside in main.prg if it doesn't already.

The only thing WebAppBuilder did for you was automate creation of Virtual Directories and copy files, nothing more.  You now have to create the Web Application(virtual directory) in IIS yourself in the IIS Manager and also copy the files in (see instructions).  You would do the same thing when you want to install at GoDaddy or any other shared web host.  So to make it easy, there's just one way to do it now.  BTW, this is also the same way WordPress installation works as well as many other popular open source programs..

May 17, 2011 at 7:46 PM

Hi Claude,

The demo page works fine. For a start I want to create a login page (according to the demo, with DBF authentication).
In main.prg however I cannot find any reference to this or to protectedlist.htm.

How the demo page is created is complete magic to me. Where is the code? It's apparently not in main.prg, so what should I change?
Could I uploade main.prg to you or am I looking in the wrong place?

Regards, Gerrit

May 17, 2011 at 8:07 PM

For ActiveVFP 5.5,  http://thetechconsult.com/demo/default.aspx?action=login  indicates  that the code is in login.htm .  The "action" on the URL will point to and indicate which .htm the code is coming from.


In ActiveVFP 5, that code was probably in main.prg.  It can be in either place.

May 17, 2011 at 8:17 PM

Well to clarify, the demo login is trying to access a list that is protected "protectedlist.htm".  In that file you'll find the following

* Use this code in each page you want to protect  (CookieLogin and TableAuth routines are in main.prg)
CookieLogin()  && checks for cookie to authenticate
IF !(oSession.VALUE("authenticated"))               && check dbf authentication if no cookie or cookie fails
     TableAuth(ALLTRIM(oRequest.FORM("Login")),ALLTRIM(oRequest.FORM("Password")),oRequest.FORM("C1"))    &&values from form
IF !(oSession.VALUE("authenticated"))
    oSession.VALUE("previous",oProp.Action)  && save target
    oResponse.Redirect(oProp.ScriptPath+[?action=login])  && if still not authenticated goto login

that uses the TableAuth routine in main.prg which does the actual check against the DBF