Bill has a nice posting on Thin Ajax Clients - Model-View-Controller. I think he makes some very good points:
The answer lies in one guiding principle: Keep as much data and logic on the server as possible and access it just in time.
We are strong believers in the software design pattern called Model-View-Controller. Essentially keep the model (data, business logic, domain objects) separate from the View (presentation, page, screen, forms) and let the Controller (events, submits, requests, interactions) drive pulling information (Model) to be presented (View) only as needed.
This results in a very thin client with little logic to maintain (read: avoid duplication on the client) and a smaller memory footprint on the client as well as avoiding having JavaScript do heavy lifting.
We believe that it is important to have the client represent the View portion of the MVC (in fact, in web applications it is only part of the view). Our emphasis in the LiveGrid is to enable applications that have truly large amount of content to be displayed to the user in an easy to use manner.
Most of the time this large amount of data is contained in a database or is efficiently managed on the server. These server platforms for managing data are much faster to do sorting, filtering and other such operations (databases have been optimized for these operations). This server management really brings value and simplicity to the client. This is a great way to get scalable operations as your content gets very large.
I think we really need to build applications that keep our good solid design ideas/patterns like MVC in place. We also need to make sure that any software components/libraries/frameworks we use will help us maintain the integrity of our architecture.
Comments