ホームページ  >  記事  >  バックエンド開発  >  ASP.NET のマルチレイヤー アーキテクチャを理解する

ASP.NET のマルチレイヤー アーキテクチャを理解する

巴扎黑
巴扎黑オリジナル
2017-08-03 13:13:372753ブラウズ

Asp.net の多層アーキテクチャは主に、データ層、ロジック層、プレゼンテーション層などの間の関係を解決することを目的としています。その方法は次のとおりです。 まず、DataCore 基本クラスを作成します。基本クラスは、データベース接続、ストアド プロシージャの呼び出しなど、低レベル データベースのいくつかの基本操作をカプセル化します。

多くの人は、多層アプリケーションの開発が難しいと感じています。例を見てみましょう。従業員が 1 人か 2 人だけの小規模な会社の場合、1 人が上司、レジ係、会計士、マーケティング、販売、開発などの複数のタスクを同時に実行することがあります。大企業の場合、厳密な分業が行われ、各人は業務の一部のみを完了し、正常な業務を確保するために相互に協力する必要があります。以前の開発プログラムは、ユーザー インターフェイスからデータベース アクセスまですべての機能が 1 つのページで完了するようなものでした。

1. 開発が難しく、複数人での共同作業を実現するのが難しい。開発

2. データベースやルールが変更されると、ページ全体の再修正が必要になる可能性があり、メンテナンスコストが増加します

3. すべての機能が混在しているため、プログラムの再利用性が低いです。新しいプロジェクトを開発する場合、ほとんどコードを書き直す必要があります

この問題を解決するために、人々は「多層アプリケーション」という概念を提案しました。その本質は、明確な権限を持つ大企業の概念と似ています。ページを分割してデータアクセスを分割し、ビジネスルールなどの機能を専用ファイルに配置します。より一般的なものは、2 層アーキテクチャ、3 層アーキテクチャ、MVC です。

1. 2 層アーキテクチャ

2 層アーキテクチャは、プログラムをユーザー インターフェイス層とデータ アクセス層に分割します。その本質は、データベースにアクセスするコードをデータ アクセス層に置き、ユーザー インターフェイス層がデータ アクセス層を通じてデータベースを操作することです。 相互作用の関係は次のとおりです: (「<--->」は双方向矢印を表します)

ユーザー インターフェース<---> データ アクセス<---> 3-層アーキテクチャ

, 3層アーキテクチャでは、2層アーキテクチャのビジネスロジックがデータアクセス層から分離され、別個のビジネスロジック層になります。プログラムを3層に分け、データアクセス層はデータベースの操作のみを行い、ビジネスロジック層はデータの各種処理を担当します。 主に、最上位から DAL (データ処理層)、BLL (ビジネス ロジック層)、UI (ユーザー インターフェイス層)、Model (エンティティ モデル) の 4 つのコンポーネントで構成されます。最初の 3 つは、人々がよく 3 層構造と呼ぶものです。
1) データ アクセス層 (データベース アクセス層、DAL): 永続層とも呼ばれるその機能は、主にデータベース アクセスを担当します。簡単に言うと、データ テーブルに対して選択、挿入、更新、削除の操作を実装することです。 ORM 要素を追加する場合は、オブジェクトとデータ テーブルの間のマッピング、およびオブジェクト エンティティの永続化が含まれます。
2) ビジネス ロジック層 (BLL): システム全体の中核であり、以下に関連します。これはシステムのビジネス (フィールド) に関連します。

3) プレゼンテーション層 (ユーザー インターフェイス層、UIA): システムの UI 部分であり、ユーザーとシステム全体の間の対話を担当します。この層には、システムのビジネスロジックが含まれないことが理想的です。プレゼンテーション層の論理コードはインターフェイス要素にのみ関連します。

4) エンティティ モデル層 (モデル): さまざまなエンティティ インスタンスの形式で存在するすべてのデータ情報が含まれます。これはシステム全体の基本レベルです。




完璧な 3 層構造は、ロジック層を変更せずにプレゼンテーション層を変更し、データ アクセス層を変更せずに 2 番目の論理層を変更する必要があります。ある程度のデカップリングを達成します。

3 層アーキテクチャにより、主にプロジェクトの構造がより明確になり、分業がより明確になり、後のメンテナンスやアップグレードに役立ちます。これにより、アプリケーション全体の各ビジネス オペレーション プロセスのさまざまな段階でのコードのカプセル化の問題が解決され、プログラマは特定の段階のビジネス ロジックの処理により集中できるようになります。ただし、サブプログラム モジュールが完了していない場合、メイン プログラム モジュールは待機状態になるだけであるため、パフォーマンスが向上しない可能性があります。これは、アプリケーションをレイヤーに分割すると、実行速度がある程度低下することを示しています。しかし、チーム開発効率の観点から見ると、まったく異なる効果を感じることができます。

3 層アーキテクチャには多くの利点がありますが、プログラムが非常に単純である場合、または将来的に再利用されることが確実にない場合、または 2 層アーキテクチャを採用する必要がない場合は、おそらく採用す​​る必要があることに注意してください。 2 層または通常のプログラムの開発速度は速くなります。実際の状況に応じてケースバイケースで対処する必要があります。

Three.MVC

(M はモデル (モデル層) で、主にビジネス ロジックとデータベースの対話を担当します。

V はビュー (ビュー層) で、主にデータの表示とデータの送信に使用されます。リクエストのキャプチャとリクエストの転送の制御に使用されます。

MVCアプリケーションのビュー層 (BS 構造) に分割された、さまざまな機能を持つ複数のモジュールです。主に、アプリケーションのユーザー インターフェイスのスタイル置換の問題を解決し、データを表示する HTML ページをビジネス コードから分離するために使用されます。できるだけ。

4. 3 層構造と MVC の違い


違いを知りたい場合は、次の図を見てください:

図 2. MVC と MVC の違い3 層アーキテクチャ

3 層アーキテクチャは、インターフェイス層 (UI)、ビジネス ロジック層 (BLL)、データ アクセス層 (DAL) であり、MVC はモデル層 (M) インターフェイス層 (ビュー) とコントロールで構成されます。レイヤー(コントローラー)と対応していません。 cused上部層から渡されたデータと、MVCのコントローラーを処理するために使用されます。


5. 3 層アーキテクチャの参照関係

モデル層: プロジェクトを参照しません。
DAL 層: モデルを参照し、web.config 内のアセンブリを読み取ってクラスのインスタンスを読み込みます。使用する BLL に;

BLL レイヤー: 参照モデル、DAL;

UI レイヤー: 参照モデル、BLL; 方法は、リソース マネージャーでプロジェクト ファイルを右クリックし、参照を追加することです。ポップアップ ダイアログ ボックスでプロジェクト タグを選択し、適切なクラス ライブラリを選択して、[OK] をクリックします。次に、プロジェクトファイルに「参照クラス名前空間」を使用して追加します。 classクラスライブラリが公開されているかどうかにかかわらず、クラスライブラリが使用されるときの方法。

以上がASP.NET のマルチレイヤー アーキテクチャを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。