A recent post by Karl on the page_load event again mentioned how hard it is to fully understand the life cycle of an asp.net page. In a comment Fregas even mentions switching to PHP (or RoR) to get a better grip on it. IMHO this is running away from the core of the problem which is (still imho) the web itself. Every web page is by definition an individual request; every sense of state is an illusion. Even when the platform or the developer using it is good; it's no problem for an average user to ruin every experience.
Ways to ruin I daily have to observe at home:
- Use the back button of the browser. Smartnavigation or no smartnavigation it's very hard for a web app to handle this right.
- Open the page in a new window.
- Re-open the page via the favorites.
As a result:
- Forms filled in are blanked again
- Shopping baskets are emptied
- Shopping baskets containing all items twice (or more)
I guess you will recognize this. Trying to help and explain I find there is only one satisfying answer: understand the life cycle of a web-page. Which is beyond the level of any non-technical user.