[Lazarus] The future of desktop

Martin Schreiber mse00000 at gmail.com
Sat Nov 30 09:08:21 CET 2013

On Friday 29 November 2013 13:55:10 Michael Schnell wrote:
> MSEgui has a (supposedly not yet finished) extension called "ifi". Same
> is supposed to provide a remote GUI via a Byte-pipe. Both the server and
> the "user" end is a pascal program.
MSEifi-remote is still experimental because nobody made real applications up 
to now. Local inprocess MSEifi is used in production to separate user 
interface and business logic in MSEgui applications since years. IIRC I even 
made a MSEifi-remote demo-binary especially for you so that you could show 
the principle to your co-workers some years ago. ;-)

How MSEifi-remote works:

- Client is an application independent Free Pascal program with MSEgui/MSEifi- 
library. The client could be realized as browser plug-in (not done up to 
- Server is a Free Pascal program with the necessary MSEifi connection 
components. The server needs no GUI library elements.
- The client joins the server by a byte stream connection, currently 
implemented are pipes and sockets.
- The server sends *.mfm data (the MSEgui equivalent of Lazarus form files) to 
the client. The form data can contain Pascal Script snippets if necessary.
- The client instantiates the forms/datamodules exactly the same as a normal 
MSEgui application would do -> look, feel and performance of the components 
are the same.
- Client and server use MSEifi data- and event-components which are linked by 
the MSEifi-remote protocol.


A user button click triggers firing of an event in a taction component by the 
tbutton.action property, the event is transported over the wire, triggers 
tnoguiaction.onexecute in the server, the server sends a modal form to the 
client, the client shows the modal form, the user enters data which will be 
sent to the data components in the server, the user closes the modal entry 
form, the modalresult will be sent to the server.

So for development of server, client or standalone applications the same 
MSEide+MSEgui RAD-approach can be used. While developping and debugging it is 
possible to run client and server in the same process with 
a "shortcut-connection".


More information about the Lazarus mailing list