[Lazarus] Converting Pascal Client/Server application into Web Client?

Joshua Lim joshua__lim at hotmail.com
Fri Oct 1 10:44:12 CEST 2010


Hi,

I've been searching on this topic for couples of months but found no good solution yet so I thought you guys might have some ideas.

What I am now having is a Delphi client-server SQLite application that uses socket communications (which i'm porting file by file to FPC/Lazarus so as to be able to run on Linux).  The client (single client currently) sends commands to the socket server to retrieve information from SQLite, to update records, and to interface with devices on the PC.  This is done at high speeds so thousands of records can be retrieved at one go in a second.

Now, my customer needs me to provide a multi-user web interface (with login session for every user).  The most obvious way will be to rewrite the whole client in pure PHP but this will not be easy as I'll need to:

1. Convert sqlite into Postgresql or firebird so that multiple clients can connect to the database at the same time.
2. Get my Delphi programmer to learn PHP.

Obviously, this is not the most desirable way, so I went about searching and found out that AJAX might be able to work with FPC.  From what I've read, I reckon that I'll need to create an AJAX client and a server coded in FPC (which I'll need to somehow convert from my existing server).  A couple months back, I've also experimented with ExtPascal but it couldn't work.

For AJAX/RIA, there seem to be three market leaders.  Here a summary of Internet posted comments for them which I have gathered (Note: i've not tried them myself, at least directly).

1. Qooxdoo.org - this seems to be a popular open source framework, free for commercial use, but is less popular than Extjs (which Extpascal use) and seems to have got less features.  It provides an AJAX to RPC Server option but there's no pascal example for RPC Server.  There are comments made by people on the Internet that Qooxdoo is tied to Python, but i don't know if Python has to be installed on the deployment server itself.  Qooxdoo also comes in the form of VCL (for use in RADPHP or Delphi4PHP) - I don't know if they are based on the latest version or if they work with RPC Server.

2. ExtJS - this looks like the market leader judging from the size of the community and the Alex rank for sencha.com.  It is only free for GNU deployments.  The developer license is priced around US$500, and distribution is royalty free i think.  I also came across another commercial framework (can't remember the name) that charges couple hundreds per distribution so this sounds cheap in comparison!  Like Qooxdoo, it also comes with RPC framework, which they call ExtDirect, and like Qooxdoo, there's no pascal example.  I've tested ExtJS indirectly when using Extpascal, the interface generated by ExtJS seems to be quite slow - I've not really done an equivalent comparison with Qooxdoo, but Qooxdoo seems to be a little quicker.

3. JQuery - this seems to be a basic JS framework as compared to the previous two.  Can't meet my requirement.

I am curious to know if any of you have used any of the RIA tools using FPC and their suitability.  Please share if you have found a better way.  Thanks.

Rgds,
Joshua





More information about the Lazarus mailing list