IPageManager, IPageStore and IDataStore are riddled with complicated and error-prone code aiming to do one simple thing: keeping pages around.
There are multiple problems with the current implementation:
- PageStoreManger does too much
- it handles request and session storage
- it contains workarounds for DiskDataStore, when the sessionId changes
- has no access to IPageManagerContext
- juggles with byte, serialization and conversion
- IDataStore introduces an unncecessary third layer into the API
Additional or specialized stores are difficult to implement.
We should rework that.