I have a dream of being able to work with applications on one computer, shutting down my current session, and being able to reopen that session on another computer. Primarily due to native resources specific to a certain machine, etc, it is not as far as I know possible to just serialize a process in .Net and move it to another machine. There's just too many reasons that wouldn't work. Probably the closest thing to this right now is a VM, but that's not what I'm looking for.
My specific question is this: Is there a framework built on .Net that helps enable this type of application? And if not in .Net, is there a framework not built on .Net that perhaps I could gain architectural insights from?
I imagine that such a framework would have to push access to native resources to the periphery of the application, abstract the common native resources (file I/O, graphics context), and build "hibernatable" subsystem building blocks to be able to start/stop the application. This probably would not leave much of the framework part of .Net still usable because it wouldn't use the abstractions, but I'm ok with that.