[dabo-dev] Dabo and the Web

Author: Ed Leafe

Posted: 2008-10-04 at 12:22:17

OK, I've just committed the changes to the framework that enable the

creation of something I've been thinking about for a very long time,

and working on for the last few months: Dabo applications that work

like web apps.

First off, in anticipation of worries by some, this does not require

*any* changes by anyone using the existing framework. None. It will

not open up any communication over the internet that did not already

occur. The only way this comes into play is if you create a connection

with the new property 'RemoteHost'. Unless you do that, everything

works *exactly* the same as before.

Now that we've gotten that out of the way, let me explain what I mean

by 'web-enabled'. First, you need client and server applications, just

like any other web app. In this case, though, Dabo is the client

instead of a web browser. Everything happens locally as in normal Dabo

apps, with two differences: many of the bizobj data functions

(requery, save, delete, etc.) are now sent to the server instead of

carried out locally. On the server will be a new bizobj subclass,

RemoteBizobj, that will handle these requests and return the

appropriate response. This means that there is no need for the client

to have database adapters installed, as there is no direct access to

data by the client, just as in a web browser.

Another major aspect of a web application is that updates are

transparent: you go to a site, and if they've changed it, you see the

changes, not the old page. Dabo will work the same; changes to the

source files on the server are automatically passed on to the client

app, just as in a web browser. And since the business logic now lives

on the server, there is no need to expose that on the client side,

making updates to business logic instant.

Of course, this requires a web server in order to work. I'm almost

ready to post the one I've developed. It's a Pylons app; I chose

Pylons since that's the framework with which I'm most familar. There

is absolutely no reason why the this wouldn't work equally well with

any other Python web server, as the only thing it needs to be able to

do is route URLs to the correct methods in the controller, and return

standard response objects and codes.

-- Ed Leafe

©2008 Ed Leafe