私が働いている場所では、いくつかの Web アプリケーション (WebForm および MVC) を Web ファームに移行しています。セッションは SQL Server によって管理されます。
問題はこれまでレガシーです!
これらのケースでは、セッションの使用、文字列の保存、戻り値などがより簡単になり、コードはそのまま残ります。この問題は、いくつかの特定の状況で、List<typed>
シリアライズできないオブジェクトなどがセッションに保存されたときに発生します。
私は、このすべてを DRY スタイルでリファクタリングする方法を考えています。
セッションに保存されているほとんどのリストは、Entity Framework クエリの結果のコレクションです。正直なところ、近道があるかどうかはわかりませんでした。すぐに思いつく唯一の解決策は、レガシーシステムのデータベースにテーブルを作成してそれらのオブジェクトを保存し、非アクティブな行を散発的に削除するメカニズムを作成することです。
したがって、以下を利用する場所ならどこでも:Session["mList"] = myList;
私は以下と交換します:CustomSession.AddsInDatabase("mList", myList);
ログインユーザー、挿入時間などを適切に管理します。
それは良い代替案ですか、それとも他にありますか?
:)