[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
now).
- 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.
Example:
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".
Martin
More information about the Lazarus
mailing list