Showing posts with label GWT. Show all posts
Showing posts with label GWT. Show all posts

Saturday, May 24, 2008

MVC in the browser

MVC in sever side is awesome and is provided by default in Rails but having an MVC at the client side (browser) is something I was looking for some time. It seems that GWT takes the pain out of client side software development and provides mechanims to do MVC for rich user interfaces.
There is a chapter on MVC in GWT in chapter 2 (). I was able to host the calculator app on my google app engine site at Max. I copied the code examples from http://www.manning-source.com/books/cooper/gwtip_code.zip and then fired/built/tested on eclipse with pure Java development cycle and copied over the generated javascript/html/gis/css on to google app engine. The product was instant hit to me

Sunday, May 11, 2008

GWT + GAE

Web applications are generally modeled through client-server software architecture and consists of two components

  • Server side: This is were all the business layer resides and infrastructure code resides
  • Client side: This is where all the client user interface resides
There has been lots of frameworks available for the server side but when it comes to client side you are left with javascript and html. Working with javascript and html is like coding in assembly language for the browser and is generally considered as black art (considering that you need to make them work on different browser flavors). Google web toolkit (aka gwit) comes to rescue here with all the best practices of large scale software development cylce.

Of course it demands that you have some basic understanding of java language and some knowledge of writing GUI code, but the payoffs are tremendous for large web applications. And with the power tools like eclipse and netbeans with which you can develop/test/debug your user interface code just like typical GUI development process. There are plugins (cypal-studio and gwt4nb) available for both these IDEs which automates most of the gwit work for you. Another benefit of gwit is that you would get all most all the google api (like google maps, google search) binding available for gwit

Lets see what Google App Engine (a.k.a gae) has to offer. It is google infrastructure similar to what is provided by Amazone EC2 (a.k.a ec2) but for free (with some limitations since it is early days). As with gwit, with gae you need to know python to some extent. Learning new languages is always a fascinating experience and ones understanding of things become better and in an heterogeneous environment its is definitely a plus. With gae (once you have your account alloted), you can write web applications without worry about scalability and data infrastructure layer. Google answer to database is found in Bigtable. The same infrastructure is now available for you. Some of the limitations of gae are as follows:
  • No persistent server side processes (i.e. no crob facility yet)
  • SQL like but not SQL (could be a "blessing in disguise")

Google web toolkit and Google App Engine combination is a killer. Till now there wasn't any library which could make both of them talk to each other natively. The work done by python-gwt-rpc is of great value here. With this combination one can start writing great web applications for free. All this would require is knowledge of python and java.

I would personally like to use ruby on the server side since it has better code aesthetics which suits my taste