I would like to find out about running FoxWeb (FW) and FoxInCloud at the same time.
The only reason I think there might be a problem is session management. FW has session management including session variables that persist from page call to page call. I assume that FIC has its own session management as well. I think this means that you would need to keep each set of pages distinct, or always pass variables between FIC and FW in the URL itself rather than depending on session variables.
Having coded in FW, I understand its idea of session management well. I don’t know how FIC does it. My guess is the FIC does more behind the scenes so that you can use for Fox style variable assignment and querying. In FW you must use the session management functions Session.SetVar and Session.GetVar. FIC I imagine does more of this without the coder having to worry about these details. So, the issue becomes how to manage sessions for each.
Also, FW takes over script management for IIS. I’m not sure what FIC does. I suppose we could run two different web servers so that each program can manage its own sessions. As we move applications to FIC, we will always move entire modules so FIC will never need FW session information and the other way around. FW will simply need call an FIC page and pass in the client as a parameter. When FIC is done, it will link back to FW. One of our biggest complaints is the menu so FIC might become the main page quickly.
So briefly, our biggest issues are session management and making sure both applications can control scripting on the browser. Our servers are all VM’s. If this is going to work best by putting FIC on a different server, we can always create a new server.
Hi Jeff
FIC has its own session management as well
Like any West-Wind Web Connect (WWWC) application, FiC manages sessions through a dedicated class (awSession as wwSession) and a dedicated table (wwSession.dbf).
However FoxInCloud has extended the base WWWC logic:
- Support for typed variables (instead of string-only), supporting all VFP types,
- Recycle session variables when the same user opens a new session.
always pass variables between FIC and FW in the URL itself rather than depending on session variables
Another solution is to 'replicate' the session variables across FiC and FW; eg.
define class xxxSession as awSession
…
procedure setSessionVariable
lparameters cVariable, uValue
if dodefault(m.cVariable, m.uValue)
local oHTTP as wwHTTP of wwHTTP.prg
oHTTP = createObject ('wwHTTP') && West-Wind HTTP class -- https://client-tools.west-wind.com
oHTTP.httpGetAsync(textmerge('http://domain.com/FW/setSessionVariable.fw?cVariable=<<m.cVariable>>&cType=<<vartype(m.uValue)>>&uValue=<<transform(m.uValue)>>'))
endif
FIC does more behind the scenes
FIC I imagine does more of this without the coder having to worry about these details.
Yes, FIC manages the user state automatically, you have no session variables to care about.
FW takes over script management for IIS
WWWC does that and FiC helps you choose an extension that is also your application and source code files prefix (code name 'xxx' in this forum).
FoxInCloud uses script mapping as a way to map user events in browser into the matching user event methods in application's forms (and subsequently run the adapted application code). As these request go through AJAX, the user does not even see this mapping and URL extensions.
pass in the client as a parameter
Yes, and you need to consider privacy and possible hacking attempts… this parameter should be as cryptic as possible, and encrypted in the users table.
One of our biggest complaints is the menu
Have you seen the responsive FoxinCloud Live Tutorial?
The menu is generated from a mnx and is responsive: becomes a hamburger when screen size shrinks…
If this is going to work best by putting FIC on a different server
Frankly no, I think the transition will be easier to handle on the same server, especially to share the same database.
does FIC only support projects or can I create a form and run it in FIC without it being part of a project?
It's easier with a project that you feed into the free FoxInCloud Adaptation Assistant and let it guide you until publication on localhost; you can create a project with a very simple startup program and a single form.