Wednesday, November 08, 2006

More reasons why a Web Application is a fundamentally unnatrual act.

Yes, more railing about the evils of browser-based "applications".

Follow the link for an MSDN article about how you can put a progress bar on your web page when the server is going to take a long time to process your request.

The rub lies in the fact that the operation runs on the server and there's no way for a server-side environment to push information to a page displayed in a browser (unless the server holds the connection open to the client, rendered to the unfinished page, but that's not recommended). Basically, when a classic postback is taking place the client page is virtually frozen and no other client activity can occur.

The advice in the article is actually pretty good. A perfect job for AJAX. ("A sufficiently advanced technology is indistinguishable from a rigged demo.")

But let's just not forget how much simpler it would be to accomplish the same goal in a thick client. Spin up a separate thread, and point it to a callback method that updates the progress bar. To be fair, it's a fundamentally difficult problem. You generally get fake progress bars when you'd have to pay a high cost for real progress information.

But the mechanics to accomplish all of that is much harder in a web client environment. AJAX does at least bring some sanity to the situation.