1. A method for delivering applications over a network in which the business logic of the application is running on the backend server, the user interface of the application is rendered on a client-device who is connected to the backend server via a network. The Graphics User Interface API and event processing API of the application is implemented to be network-aware instead of being local machine centric as traditional GUI APIs: running an application on the backend server. The application in turn invokes GUI API to present its user interface. However, the network-aware GUI API is invoked; translating the application's presentation layer information into a pre-determined format based messages which describes the Graphical User Interface, event processing registries and other related information. Such information describes the presentation layer of the application in a high level, object level, which minimizes network traffic; sending such messages to the client device via a network; processing the messages and rendering the user interface by a client-side program, which delivers the best possible user experience for that device according to the capability of the specific client device. transmitting necessary user input and client-side events back to the server by the client-side program via a predetermined protocol; processing the user input and client-side events on the backend server, translating such events and inputs as if they were locally generated, and sending such translated events and inputs to the application for processing; encoding and routing the output of the application to the client device using the predetermined messaging format; and, further processing the output by the client-side program to refresh the Graphical User Interface thereat.