[Lazarus] Quick Video: A Web Application

Michael Schnell mschnell at lumino.de
Wed Nov 8 12:08:13 CET 2017

On 08.11.2017 11:14, Mattias Gaertner via Lazarus wrote:
> A server is not needed. You can write standalone browser applications that work offline too.
OK. Great !  Stand alone browser based applications might be one 
desirable type of application, but AFAIK, the more commonly required 
type of application would be server based.

> Sigh. Michael, sometimes I got the impression you are stuck in a loop. 
> Use TFPTimer and TThread. 
You might be right :-)
But it's not just me, but it's based on the Lazarus claim "write once, 
compile everywhere" which means that I can design and test an 
application in - say - Windows (using the "RAD"-way that once has been 
introduced by (Borland-) Delphi, and then tell Lazarus to create a 
server application with a browser GUI by just compiling  my code. In a 
perfect world this should simply work, in a less perfect world, some 
tweaks might be necessary to optimize the thing for either platform to 
run on.

>>    - Communication between the Server application and the part running on the brower via a 3rd party web server.
> There are various ways since years.
I do know. Some are depreciated, I feel at the moment WebSocktes is the 
way to go.
But see above: the Lazarus user should not even see this, but the 
infrastructure would organize the communication in a (as good as 
possible) compatible way, by just telling Lazarus to compile the 
application as a server based application with a browser based GUI 
accessible via a web-server.

>>    - allowing for decent Debugging in Lazarus (e.g. via an optional built-in web server, which AFAIK already is in place) .
> Server debugging is already possible. But I agree, it could be easier.
> Client side debugging is working. You can use the browser's debugger to set breakpoints in the Pascal code and step through.
I suppose you are talking about pas2js, running in a Browser, which is 
perfectly viable, of course.

What I meant was debugging the server based part of the application 
(which accesses an attached GUI part done in pas2js. Here (AFAIK) a 
webserver unit that allows for attaching to a browser to display the GUI 
while the application (i.e. the "business code") runs under Lazarus, 
already is provided. so I don't assume any problems here. (While in 
Delphi AFAIK, this is  a major problem).

>>    - Lazarus providing a GUI builder for the browser based GUI.
> That's a big topic. Some parts already work.
As I already did some research om that (some time ago) I do know that is 
is a big topic :) . That is why I ask. Great to hear that it is worked 
on and something already is functional.
>> Moreover IMHO a migration path from Java script in the Browser (pas2js)
>> to using WebAssembly in the Browser should be considered.
> It has been started in FPC, but no one is working on that.

So same state as since quite a while. Regarding that most decent 
browsers nowadays provide the WebAssembly framework, it seems viable to 
ask, but of course developing time is limited.


More information about the Lazarus mailing list