Jaime Rodriguez On Windows Phone, Windows Presentation Foundation, Silverlight and Windows 7
bear w/ some early (and wishful) thinking ...
I have a great RIA, with navigation inside of it (i.e. its own menus and scene transitions in the RIA).
My challenge is that I took advantage of the RIA's stateful model to optimize the experience; in other words, I avoided request-response; I do load new scenes, but of course it is all inside the RIA ...
The problem is that I often find myself clicking "Back" button... and there fore losing the state in the RIA... AAARGHHHH!!
What are the best practices for this type of app? I would love to see an app that handles this gracefully... If you wrote one, please feel free to email me or leave a URL in the comments..
My best answer so far is save state often so I can come back to it.. but I have a lot of challenges (like trying to differentiate between new requests, desired reloads, etc. quite messy )
-- --------------- ----------------
In the mean time, here is a quick (not thoroughly fleshed) wish list for all browsers...
1) Can browsers expose a "Confirm back/forward" event for user to confirm this is what they wanted to do...
What I want is when my HTML page is loaded, and before it loads my plug-in, the browser gets told, please ask user to Confirm if they click (go back/ go forward)..
I am not saying 'ignore the users command, but allow the plug-in to let the browser know it is a RIA and ask user to Confirm when mixing navigation.. The browser can handle the confirmation, to prevent annoying session hi-jacking, which btw I see on plain standards-based sites, so I assume is doable regardless of a Confirm. Yes, I know some people will find it confirmation annoying, but I think it would be up to the application provider to decide.. The user or consumer is still in control - when I go to a website that annoys me, I just don't go back-. Confirm is an 'opt-in' behavior.
2) While I am dreaming, could the browser allow "Trusted sites" to manipulate the history? Maybe an extra journal and Back button for within the RIA? This way I can enter entries into the Journal and users follow their known paradigm ... but with in the context of the app they are running.. {which I believe is what customers would want a large % of the time}
[ I am not saying replace Back button, I am saying offer more options; user still in control, we have this w/ active documents merging menus with their hosts ]
Thoughts?? I am sure lots a people will laugh and think I am naive about browser session hijacking, etc.. I am cool with that.. I leave it to smarter people ( e.g. IE team or w3c ) to figure how to nail the details; I still think the functionality is a nice to have and I am thinking the problem is solvable elegantly if the browsers or w3 define a standard approach..
Does what I need exist already?? I know smart client gets around this.. but I am trying to stay web (plus a small plug-in like Silverlight ) so bear with me...
Thanks & sorry for rambling or rant... it was in my head today and I did not seem to crack it..
PingBack from http://msdnrss.thecoderblogs.com/2008/01/04/browser-navigation-and-rias/
Adobe Flex has this thru deep linking and history management
Hey Jaime, this library targets Flash, but I think it would work well with Silverlight too: http://www.asual.com/swfaddress/
Thanks Marcelo, Deepu, and all else that replied.. Very much appreciated!
For those wanting non-flash links,
NikhilK had an AJAX implementation at
http://www.nikhilk.net/UpdateControls.aspx
www.asual.com has also a SL deeplinking called netaddress
Cheers,