7

C# の 3 層アーキテクチャに関する多くの記事を読みましたが、次のことがわかります。

  • データベース内の対応するテーブルをマッピングするオブジェクトとして、Business Logic Layer (BLL) をほとんど使用します。この BLL オブジェクトには、次のようなメソッドがいくつかあります。

    + GetData(): これを返します。

    + Update(this);

    + Insert(this);

    + Delete(this);

  • この BLL オブジェクトは、対応する DAL(Data Access Layer) を呼び出して、データベースの対応するテーブルに対して実行します。

  • 上記の方法で、レコードを取得して更新することしかできないと思います。しかし、多くのレコードがあり、それをデータセットに入れたい場合、変更されたすべてのレコードを更新するにはどうすればよいでしょうか? それを行うには、すべてのレコードに対してループを使用する必要がありますか?
  • さらに、データベースには互いに関連する多くのテーブルがあるので、それらをデータセットに入れ、リレーションを作成BindingSourceし、 aComboboxと aを使用してレコードを追加、更新、削除するにはどうすればよいDataGridViewでしょうか? そして、この状況でコードを分離するにはどうすればよいでしょうか?
4

2 に答える 2

12

ここに画像の説明を入力してください

上記は、3層モデルの非常に単純なアーキテクチャについて説明しています。

  1. DAL(データアクセス層)はデータベースと直接対話するため、すべてのSQL操作はDAL内でのみ実行されます。
  2. BLL(Business Logic Layer)は、DALとプレゼンテーションタイヤの間の仲介役のように機能します。
  3. DALとプレゼンテーション層の間の直接通信は許可されていません。
  4. エンティティレイヤーは物理的に存在しませんが、エンティティはすべての情報/データをカプセル化し、それを1つのレイヤーから別のレイヤーに渡します。
  5. そのため、すべてのデータベースオブジェクト名とデータベーススキーマはDAL内で制限されており、アプリケーションに追加のセキュリティレイヤーを提供します。
  6. ビジネスルール/ロジックはBLL内で定義されているため、ビジネスロジックを更新しても、DALとプレゼンテーション層に影響はありません。

ここに画像の説明を入力してください

この図は、3層モデルの実際の実装を示しています。

  1. データアクセスサービスとデータベースサーバーは、単一のサーバーでホストできます。
  2. ほとんどの場合、SQLServer2000/2005/2008またはOracleはWindows2000/2003Serverでホストできます。
  3. Business Serverは、Webサービス/ Remoting/WCFを介してすべての操作を公開します。
  4. Windows 2000/2003で高度に構成されたサーバーを使用して、ビジネスサービスをホストできます。または、MicrosoftBizTalkServerを使用してこれを行うこともできます。
  5. プレゼンテーション層またはクライアントは、http://パイプラインを介してプロキシを使用することにより、BusinessServerで公開されているサービスを消費します。
  6. クライアントは、デスクトップアプリケーション(Win-Formまたはコンソールアプリケーション)の場合にアプリケーションがインストールされているスタンドアロンマシン、またはWebアプリケーションを実行するためのブラウザを備えた任意のスタンドアロンマシンにすることができます。
  7. データ/情報はエンティティによってカプセル化され、ネットワークを介してある場所から別の場所に転送され、その後にすべてのネットワークプロトコルが続きます。
于 2012-12-09T10:20:39.873 に答える
4

C#には3層アーキテクチャに関する2つのクールなプロジェクトがあります。

C#およびT—h—r—e—e——L—a—y—e—r——A—r—c—h—i—t—e—c—t—u—r—e——i—n—— C —#— どちらのプロジェクトもあなたにとって特に素晴らしいものです。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2012-12-09T10:20:30.647 に答える