I have been spending most of my time lately working on coding the DNNMenu, which explains the lack of time spent blogging, among other things. However, I did want to post on some research I recently did regarding the use of Atlas inside DotNetNuke. Now that Atlas has a go live license I considered a few options for integrating it into the DotNetNuke core. Namely, the idea of enabling our modules to take part in partial rendering. If you are unfamiliar with what partial rendering does, let me briefly explain.
Partial rendering is a cool idea that Microsoft came up with to enable an area of your page to perform an asynchronous (AJAX) call to the server, posting the entire page and having the server handle the post as if it was a normal postback. Due to a custom header posted to the server, the Atlas runtime intercepts this post and adds event handlers to deal with it in a special manner. Before the request's content is rendered back to the client the Atlas runtime steps in and strips out all HTML not needed for the panel to successfully update itself. Note, that this includes some of the header info and ViewState. Once finished, the Atlas client-side script receives the html and inserts it into your panel and also automagically updates the changed ViewState.
I figured this functionality could be incorporated into DotNetNuke to allow for modules that rely on postbacks to become AJAX enabled and therefore provide a better overall user experience. Please don't misinterpret what I am saying. I do NOT think that partial rendering is the best solution. Using it still requires the entire page to post back to the server and also causes the webserver to process the entire page. It is only in the response from the server that payload is minimized. In addition to the decrease in payload, the user does not see the flicker of the page, since only part of the page is updated. A better solution would be to change the modules to do their own highly specific AJAX calls to retrieve only the necessary data.
So, why bother with partial rendering at all?
The amount of time and effort involved in recoding all the modules is not practical. If we can offer a solution that offers some of the benefits of AJAX without great cost it is worth considering.
Are there any concerns?
1)