Thursday, August 9, 2007

MVCs in RIA

The birth of MVC

MVC was conceived in 1978 as the design solution to a particular problem by Trygve Reenskaug during his visit to XEROX Parc. The top level goal was to support the user's mental model of the relevant information space and to enable the user to inspect and edit this information. Originally MVC was designed to handle the complexity of stateful GUI with rich controls.The ideal MVC solution is intended to support the user to visualize and manipulate the domain information directly. This model is useful the user need to see the same model simultaneously in different context.

Then came the Browsers.

With the advent of the browsers which were stateless, the complexity of MVC could not be handled. So the programming community proposed that the MVC be moved to the server, which became Model 2. Model 2 manages parts of web application like navigation, calls to back end services to perform business functionality, data validation and many others.

Enter RIA.

RIA applications are the web applications that run on the browser with rich functionality of traditional desktop application.RIAs are either 'Zero' or 'Low' 'Foot print applications', meaning they do not require any software installation or require a small plug-in to the browser. They are cross browser and cross platform applications.

MVCs in RIA.

MVC comes as a second nature to RIA, here is how that it employs MVC.

RIA primarily uses XML data structure to store the data of different kinds, it could be the actual data that user is interacting with, the data the RIA app maintains to remain in sync the service tier, and the data about the user as session data.

The client side browser brokers several calls to service layers. As response to its calls, it receives commands as to when and which application need to be rendered with what data. So here browsers does control the data and commands between the client and service (or and) back end.


DHTML/HTML is made use by the browser in case of "Zero-footprint" apps to render the data, where as "Low-footprint" apps like Flex and Silverlight render the browser with their own mechanism.

The advantages of having MVC at the client end are:-

1)Just-in-time delivery of application from server to the client.

2)Helps in optimizing the calls to the server, by allowing the client to access only required portions.

3)Client side validation gives the user a responsive experience.

No comments: