1

私は、Windowsプログラミングから生まれたasp.netの世界に不慣れです。セッション、認証、ページのライフサイクルは、私にはまだやや紛らわしい概念です。

私は現在、asp.netを学ぶためだけに簡単なWebサイトを設計しています。(タグ付きの非常にシンプルなディスカッション掲示板、stackoverflowのようなものですが、100倍シンプルです)

データアクセス層を設計し、次にビジネスロジックを設計しました。私のビジネスロジックは次のようになります。

  • バックエンドコンポーネント:データの正規化、複雑な計算など。私のバックエンドには2つのクラスしかなく、合計で15〜20人のメンバーがいる可能性があります。
  • フロントエンドクラスがアクセスするためのController静的クラス。

私の質問は:

  • コントローラクラスは必須ですか?各バックエンドコンポーネントをasp.netページで直接インスタンス化する必要がありますか?
  • 誰が一般的にセッションと認証を処理しますか?バックエンドがそれを処理する必要がありますか、それともフロントエンドのマネージャークラス がすべてのユーザーセッション/認証を担当する必要がありますか?
  • Webページオブジェクトが再インスタンス化されるページにアクセスするたびに理解しますが、フロントエンドがバックエンドを制御する場合、それは本当に悪い習慣ですか?
4

1 に答える 1

1
  1. これは ASP.NET Web フォームですか、それとも MVC ですか? MVC は要求を処理するためにコントローラーに依存していますが、Web フォーム用のコントローラー クラスを作成した場合、実際にはコントローラーの動作とその目的に依存します。
  2. ASP.NET は、ページの Session プロパティ、または httpcontext (HttpContext.Current.Session など) を使用してセッションをネイティブに処理します。これにはいくつかの意味があるため、「セッション」と見なすものによって異なります。認証は、Membership API によって非常に簡単に処理できます (詳しくは、オンラインで参照してください)。
  3. 理論的には悪い習慣ではありませんが、設計方法によっては実装される可能性があります。特定のオブジェクトは、すべてのリクエストごとに 1 回存在することを意図している場合、静的レベルでも保存できます。
于 2012-04-26T00:12:21.697 に答える