2012-04-25 7 views
1

私は、Windowsプログラミングから来るasp.netの世界に新しいです。セッション、認証、ページのライフサイクルは、やはり私にとってはやや複雑な概念です。ビジネスロジックを備えた単純なasp.netアプリケーションのデザインパターン?

私は現在asp.netを学ぶために単純なウェブサイトを設計しています。 (非常に単純なディスカッションボードw /タグ、stackoverflowのようなものだが100xシンプル)

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

  • バックエンドコンポーネント:正規化データ、複雑な計算などバックエンドには2つのクラスしかなく、おそらく15〜20のメンバーしかありません。
  • フロントエンドクラスがアクセスするためのコントローラ静的クラス。

私の質問は以下のとおりです。

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

答えて

1
  1. このASP.NET Webフォーム、つまりMVCですか? MVCはコントローラに依存してリクエストを処理しますが、Webフォーム用のコントローラクラスを作成した場合は、コントローラの目的と目的に大きく依存します。
  2. ASP.NETは、ページ上のセッションプロパティまたはhttpcontext(HttpContext.Current.Sessionのように)を使用してセッションをネイティブに処理します。これはいくつかの意味を持つことができるので、あなたが "セッション"と考えるものによって異なります。認証は、メンバーシップAPIによって非常に簡単に処理できます(オンラインで詳しく読む)。
  3. 理論上の悪い習慣ではありませんが、その設計方法に応じて実装される可能性があります。特定のオブジェクトは、すべての要求ごとに一度存在することが意図されている場合は、静的レベルで保存することもできます。
+0

応答ありがとうございます!私はMVCを使用するように誘惑されましたが、MVCはウェブサービスとどのくらいうまく連携していますか?アプリのビルドは主にAjaxに依存していますが、MVCが静的ページで最も効果的であるという印象を受けます。 – Bonk

+0

実際、Webサービスの代わりにMVCコントローラを非常に簡単に使用できます。コントローラーに要求を行い、そのコントローラーからJQuery AJAX呼び出しにコンテンツまたはJSONを戻すことができます。それは非常に簡単です。 JQueryを使用してWebサービスコールを作成することはできますが、MVCにはクライアントサイドプロキシ生成機能は存在しません。それでも、私はMVCを使い、愛しています。 –

+0

また、ASP.NET Web APIは、RESTベースの次世代Webサービス(Microsoftの立場から)であり、MVCフレームワークを使用しています。 –

関連する問題