最近、別の開発者と別のフォーラムでディスカッションを行いましたが、トピックは ASP.NET でのコードの再利用でした。述べられたシナリオは、サーバーのアップタイム中に運用サーバーでコードを頻繁に更新する必要があり、その結果、すべてのユーザーのセッションがリセットされるというものでした。彼は、共有コードまたはクラスを App_Code フォルダーに配置したり、プリコンパイル済み DLL を Bin フォルダーに配置したりすることを避けています。これは、更新によってセッションも更新されるためです。
彼が思いついた解決策は、共有コードを UserControls に配置し、必要に応じてそれらを参照することです。これにより、セッションの再起動を強制することなく、次の要求で動的に再コンパイルされる UserControl ファイルのみを更新できます。Usercontrols は UI を持つことを意図していないことに注意してください。おそらく、いくつかのビジネス ロジックを格納するだけです。
本質的に間違っていると感じたので、彼を説得しようとしましたが、これが非常に悪いやり方であるという私の主張を裏付ける確固たる事実を提供することはできませんでした. 私が考えることができる唯一のことは、UI からビジネス ロジックを分離するという原則に違反していることです。私はひどく間違っていますか、それともこれを行うべきではない具体的な理由がありますか? リンクや例は役に立ちます。
注:プロセス外のセッション状態を使用することは、現時点ではオプションではなく、スケジュールされたダウンタイムを決定することもできませんでした。また、これは活発に開発中のサイトであるため、まだ専門的な展開モデルを使用していないようです。
前もって感謝します。
編集:さらに、上記のケースでセッションが再起動する理由を誰かが正確に明確にできると助かります。