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
On Saturday 04 October 2008 09:22:17 am Ed Leafe wrote:
> 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
Hurry, hurry, hurry - I'm really jazzed. Man this sounds so cooooool!!!! I
want to see the code for the contollers, I want to see everything....
--
John Fabiani
Ed, congratulations on this first commit! I can't wait to try this out
and see it in action. Ever since you called 3 weeks ago or so and told
me about it I've been anticipating this.
Kudos! Beer glasses raised!
Paul
On Oct 4, 2008, at 11:22 AM, Ed Leafe wrote:
> 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.
I've just posted the server side of things. It took me a while
because there are all sorts of unicode encoding/decoding issues
involved in passing non-ASCII data back and forth over the http
connection. It still needs some work, but I'm able to work with it.
If you're familiar with Pylons, when you create an app named 'foo',
the directory structure is an outer 'foo' directory, containing
distutils-type stuff and an inner 'foo' directory that contains your
app. I named my app 'daboserver', and since the outer directory is
boilerplate, I've only committed the inner 'daboserver' directory.
In that directory is an 'appSource' directory that contains a folder
for each web app you are hosting. I created a simple datanav app based
on the 'orders' table in the public dabodev.com database. I chose that
table because it contains non-ASCII values, making it easier to find
encoding issues.
There is also a 'controllers' directory; in an MVC framework, the
controller is analogous to our bizobj, so that's where you put the
RemoteBizobj files. The file 'bizservers.py' is the main controller,
and it is what you would customize for your bizobj classes. It also
contains the file updating functions, which should properly be in
their own controller, but hey, this is just a start.
-- Ed Leafe
On 06/10/2008 00:59, Ed Leafe wrote:
> On Oct 4, 2008, at 11:22 AM, Ed Leafe wrote:
>
...
Is there any update on this?
I see it mentioned in the current download page but I can't find any
tutorial or documentation?
Werner
_______________________________________________
Post Messages to: Dabo-dev@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/4C03D2EA.8040601@free.fr
On May 31, 2010, at 11:16 AM, Werner F. Bruhin wrote:
> Is there any update on this?
>
> I see it mentioned in the current download page but I can't find any
> tutorial or documentation?
I wrote a tutorial on using the web application framework, but never listed it on the documentation page. I'll fix that, but for now, you can read about it here:
-- Ed Leafe
_______________________________________________
Post Messages to: Dabo-dev@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/E31DC3AA-B15F-46E7-A520-CDBD2E3DB908@leafe.com
Ed,
On 31/05/2010 17:53, Ed Leafe wrote:
> On May 31, 2010, at 11:16 AM, Werner F. Bruhin wrote:
>
>
>> Is there any update on this?
>>
>> I see it mentioned in the current download page but I can't find any
>> tutorial or documentation?
>>
>
> I wrote a tutorial on using the web application framework, but never listed it on the documentation page. I'll fix that, but for now, you can read about it here:
>
>
Thanks for the quick reply.
Looked at the above and also at the PyCon 2009 presentation you did.
A few questions:
- how large is the distribution package/installer for Springboard for
Windows?
- could one define the "defineConnection" method in e.g. a mixin and use
that within each remote Bizobjs?
- is this all compatible with the very recently released Pylons 1.0?
- to further get into Dabo what would you recommend, using the most
recent release or getting it from SVN?
Best regards
Werner
_______________________________________________
Post Messages to: Dabo-dev@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/4C04DA1D.8070308@free.fr
On Jun 1, 2010, at 5:59 AM, Werner F. Bruhin wrote:
> - how large is the distribution package/installer for Springboard for
> Windows?
No idea, since I've never been able to spend enough time on this to get to making the Windows client. If you're familiar with py2exe, you can try for yourself. The code is available via SVN at:
http://svn.dabodev.com/dabo/trunk/springboard
> - could one define the "defineConnection" method in e.g. a mixin and use
> that within each remote Bizobjs?
Sure, I guess that's possible. Just make sure that the mixin is inherited before the RemoteBizobj, so that its version of that method is used.
> - is this all compatible with the very recently released Pylons 1.0?
Not tested, but from the little bit of reading I've done, it should be.
> - to further get into Dabo what would you recommend, using the most
> recent release or getting it from SVN?
Generally the recent release with Web Update is the way to go unless you are working on the framework itself, or don't mind living on the bleeding edge.
-- Ed Leafe
_______________________________________________
Post Messages to: Dabo-dev@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/2B1AF8B3-3988-4814-BD97-3DD1D76243D5@leafe.com
Ed,
On 01/06/2010 15:29, Ed Leafe wrote:
> On Jun 1, 2010, at 5:59 AM, Werner F. Bruhin wrote:
>
>
>> - how large is the distribution package/installer for Springboard for
>> Windows?
>>
> No idea, since I've never been able to spend enough time on this to get to making the Windows client. If you're familiar with py2exe, you can try for yourself. The code is available via SVN at:
>
> http://svn.dabodev.com/dabo/trunk/springboard
>
I'll give it a go.
Installed dabo, demo, ide and springboard from SVN and created a
dabo.pth. I can import dabo and run the demo without problem.
Is there still a server available with some test apps for springboard?
I tried daboserver.com:7777 but when I click connect nothing is
happening, no exception no error.
I am on Windows 7 with Python 2.6.5 and wxPython 2.8.11.0 (msw-unicode).
Werner
_______________________________________________
Post Messages to: Dabo-dev@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/4C053A83.7070102@free.fr
On Jun 1, 2010, at 12:51 PM, Werner F. Bruhin wrote:
> Is there still a server available with some test apps for springboard?
> I tried daboserver.com:7777 but when I click connect nothing is
> happening, no exception no error.
No, there is no publicly-accessible server available; you need to have shell access in oder to manage the webserver code. daboserver.com is a personal server of mine
<shameless_plug>
You might look into creating a cloud server; this is an ideal use case for it. Spin up a server, install the packages you need, run your tests, and delete the server when you're done. At a penny and half per hour for the basic server, it's dirt cheap, especially when you consider your own time.
http://www.rackspacecloud.com/cloud_hosting_products/servers
</shameless_plug>
(disclaimer: I work for Rackspace Cloud Servers)
-- Ed Leafe
_______________________________________________
Post Messages to: Dabo-dev@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/90E87D4C-88BA-4874-A63D-95AD36252282@leafe.com