2010-11-27 6 views
1

私は最近、データアクセスレイヤー、ビジネスロジックレイヤー、プレゼンテーションレイヤーについて学んでいますが、まだ明確ではないいくつかのことがあります。BLLにasp制御イベントを入れるべきですか?

プレゼンテーションレイヤーでDALとBLLを使用して、データベース内の情報を取得または設定できます。

しかし、私はまた、ASPの制御イベントについて考え、どのようにそれらを実装する必要があります。

たとえば、BLLにボタンのクリックイベントを入れようとしますか、それともaspxコードの背後にファイルを残しておくべきですか?

もし私がBLLに入れなければならないのなら、どうすればこのことをやりますか?

BLLにあるメソッドを呼び出す方法がわからないので、アドバイスをいただければ幸いです。このアーキテクチャを考えると

+0

私は複数の回答を受け入れることができたらいいですね。私はTom Bの答えを選択しました。なぜなら、N-Tieredアプローチについてもっと理解している間に、わかりやすく使いやすいガイドラインを私に与えてくれたからです。 –

+0

問題ありません。私たちは基本的には同じことを言っていますが、Andrewが適切なアーキテクチャについて高度な説明をしたこと、インターフェイスを使って一般的な実装例を追加したこと、Tomがより具体的な例を挙げたことを除きます。全体的にみて、あなたが理解するのに役立つものは何でも=) – bitxwise

答えて

2

イベントがビジネスモデルと関係する場合、BLLにメソッドを作成する必要があります。 UIタイプのイベントの場合は、コードの背後で処理します。たとえば、ユーザーがボタンをクリックして配送を計算する場合、ボタンのクリックイベントハンドラ(コードビハインド)でBLLオブジェクトのCalculateShipping()メソッドを呼び出します。しかし、ページの背景色を変更するボタンがある場合(より良い例は考えられませんでした)、そのコードの中で完全にそのことを処理します。

3

プレゼンテーション - >ビジネス - >データ

どれ層のみが知っているし、そのすぐ右の層についての仮定を行う必要があります。つまり、プレゼンテーションレイヤーはビジネスレイヤーと話し合い、そのAPIを使用できますが、データレイヤーに直接話すべきではありません。ビジネスレイヤーはデータレイヤーのAPIを使用できますが、それを消費するプレゼンテーションレイヤーについては、決して知りません。もちろん、データレイヤーは他のレイヤーについては何も知らないはずです。

この一般的なプリンシプルに従うと、アプリケーションの管理が簡単になり、簡単になります。

ボタンクリックイベントはプレゼンテーションレイヤーに属しています。ボタンクリックイベントをビジネスロジックに入力すると、2つのレイヤー間の線がぼやけて不要な結合が作成されます。

1

あなたのASPXコードビハインドファイル(プレゼンテーションレイヤー)は、あなたのBLLへの直接参照(結合の結果)を持つか、よりサービス指向のアプローチを使用できます。これには、プレゼンテーションレイヤで参照され、ビジネスレイヤで実装されたインターフェイスを作成する必要があります。アプリケーションの初期化中(つまり、Global.asaxファイル内)には、依存関係注入などの方法を使用してBLLをプレゼンテーションレイヤーに接続できます。

関連する問題