JavaScript Seralizer enables Clemens summer project
A bit more than a week ago my colleague Anders Norås published an article on a JavaScript XmlSerializer that he has been working on for quite a while. The article got quite an amount of attention after Dare Osabanjo referenced Anders on the MSDN feed. Internally we've been discussing the applicability of Anders solution.
My first immediate reaction was that this is simply redoing the thick (smart) client, hosted in the browser. Because I'd like to see the world move out of the browser I sort of disliked the whole thing. Why use a "fragile" platform like JavaScript when what you really want, can be easily accomplished with smart windows forms clients? Well, portability, but complex html UI's seldom support all browsers anyways.
When we discussed the technology yesterday I saw the possibility of using this for the stuff Clemens is spending his summer on doing. Because I'm working a lot with Sharepoint these days the issue on delayed loading of portlets/webparts is very interesting to me.
What I suggested to Anders was to try to implement an ASP.NET server control called DelayLoadPanel. The implementation would somehow emit the panel to the browser and then the panel would perform a callback using something like Anders XmlSerializer. When the server is done processing the controls are returned async to the client side panel and displayed in the browser.
One of the main challenges is to implement the solution so regular ASP.NET controls can be used in the panel and coping with the ASP.NET viewstate model might also prove tricky. Having this feature availible in the next generation of webparts would be very convenient.