1

最近、データアクセス層、ビジネスロジック層、プレゼンテーション層について学びましたが、まだはっきりしていないことがいくつかあります。

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

しかし、aspコントロールイベントと、それらをどのように実装するかについても考えました。

たとえば、ボタンクリックイベントをBLLに入れようとする必要がありますか、それともaspxコードビハインドファイルに残す必要がありますか?

そして、それらをBLLに入れる必要がある場合、これをどのように実行しますか?

BLLにあるメソッドをイベント呼び出しする方法がわからないので、アドバイスをいただければ幸いです。

4

3 に答える 3

3

このアーキテクチャを考えると:

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

すべてのレイヤーは、そのすぐ右側のレイヤーについてのみ認識し、想定する必要があります。つまり、プレゼンテーション層はビジネス層と通信してそのAPIを使用できますが、データ層と直接通信することはできません。ビジネス層はデータ層のAPIを使用できますが、それを使用するプレゼンテーション層について認識したり、想定したりすることはできません。そして明らかに、データ層は他の層について何も知らないはずです。

この一般的な原則に従うと、アプリケーションがよりシンプルで保守しやすくなることがわかります。

ただし、質問に答えるために、ボタンクリックイベントはプレゼンテーション層に属します。ボタンクリックイベントをビジネスロジックに配置すると、2つの層の間の境界線がぼやけ、不要な結合が作成されます。

于 2010-11-27T13:57:46.093 に答える
2

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

于 2010-11-27T14:00:10.647 に答える
1

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

于 2010-11-27T13:58:08.560 に答える