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 -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus