|
前にナンセンスが書かれている 元。 .NETの三層アーキテクチャは、データリンク層、データアクセス層、ビジネスロジック層、プレゼンテーション層の3層に分けられます。 下図1の矢印記号は層間の相互作用を示しています。データアクセス層はData LINQ層を参照しています。 ビジネスロジック層はデータアクセス層を参照し、Data LINQ層のエンティティクラスを参照します。 プレゼンテーション層は、ビジネスロジック層およびData LINQ層のエンティティクラスを指します。 Data LINQレイヤーは主にエンティティクラスとData Contextクラスを含みます。 通常、エンティティクラスはデータベース内の1つのテーブルに対して割り当てられます。 異なるレイヤー間でデータオブジェクトとして転送されるエンティティクラスのインスタンスを作成できます。
図1 LINQからSQLへの三層アーキテクチャ 以下は、LINQの三層アーキテクチャ開発をSQLに導入するプロジェクトを作成する際のログインウィンドウの例です 準備 1. まず、ログインした人のユーザー名とパスワードを保存するためのデータベースとデータテーブルが必要です。 ここではSQL Server 2005データベースを使用しています。 データベースのテーブル構造は図2に示されています。
図2 データベースユーザー表 2. VSを開き、Visual Studioのソリューション--->空白ソリューションなど他のプロジェクトタイプ--->新しいプロジェクトを作成します---> 図3に示すように。 (ここではVisual Studio 2008を使用しています)
図3 空白解の作成 3. クラスライブラリを追加する。 Solution Explorerで新しく作成したソリューションを右クリック--->新しいプロジェクト--->クラスライブラリ--->追加してください。 図4に示すように。 同じ方法で、3つのライブラリ(BLL、DAL、DataLinq)と、Windowsフォームアプリケーション(ウェブアプリケーション開発の場合は ASP.NET ウェブアプリケーションを選択してください)を追加し、UI名付けをする必要があります。
図4 ライブラリプロジェクトの追加 加算後の構造は図5に示されています。 同時に、UIを右クリックしてそのUIを起動アイテムとして設定します。
図5 プロジェクト構造図 引用を追加してください ソリューションエクスプローラーで各階層の参照を追加します。 BLLレイヤー 参照を選択 --->右クリック--->参照を追加してください。 図6に示すように。 System.Data.Linqへの参照を追加してください。 同時に、上記の図1に示されたレイヤー間の関係に従い、DALとDataLinqへのプロジェクト参照を追加してください。 同様に、DALレイヤーはSystem.Data.LinqおよびDataLinqへのプロジェクト参照を追加し、DataLinqレイヤーはSystem.Data.Linqへの参照を追加し、UIレイヤーはSystem.Data.Linqへの参照とBLLおよびDataLinqへのプロジェクト参照を追加します。
図6 プロジェクト参照の追加 これまでに三層構造が確立されています。 以下は、それぞれのクラスを各層に追加する方法です。 1. まず、DataLinq層です。 右クリックでDataLinq--->新しいプロジェクトを追加--->--->図7に示すようにLINQ to SQLクラスを選択します。
図7 SQLクラスへのLINQ追加 2. 追加完了後、サーバーエクスプローラーへのリンクを含む空のデザイナー(.dbmlファイル)が自動的に作成され、関連するdbml.layoutファイル(XMLファイル)およびdesigner.csファイルも同様に作成されます。 サーバーエクスプローラーを開き、データベースへのリンクを確立します。
図8 オープンサーバーエクスプローラー 3. データベースに接続。 ツールを選択してデータベースを追加--->。 図9に示すように。 新たに作成したデータベースを選択して接続データベースを決定します。 この時点で、データベースはサーバーエクスプローラーに表示されます。
4. 使いたいデータテーブルを選択し、下の図10のようにデザイナーにドラッグ&ドロップします。 ファイルを保存してください。 現在では、DataContextクラスや関連するプロパティ、メソッド、メソッドを持つエンティティクラスが自動的に生成されています。
図10 ユーザークラス コードの層を追加する DAL層 新しいUserDALクラスを作成し、以下のコードを追加します //UserDAL.cs DataLinqを使い、 System.Data.Linqを使い、
名前空間DAL
{ パブリッククラス UserDAL { private DataLinq.DBLinqDataContext objDataContext = new DataLinq.DBLinqDataContext();
public User SelectRecordByID(string userid) { やってみて { return (from u in objDataContext.User where u.Id == userid select u) シングル(); } catch(例外例) { Exを投げる; } } }
}
BLL層 新しいUserBLLクラスを作成し、以下のコードを追加します //UserBLL.cs System.Data.Linqを使い、 DataLinqを使い、
名前空間 BLL
{ パブリッククラス UserBLL { プライベートDAL。 UserDAL objUserDAL = new DAL. UserDAL();
public User SelectRecordByID(string userid) { return objUserDAL.SelectRecordByID(userid); } }
}
UIレイヤーコード //LoginForm.cs 民間のBLLです。 UserBLL objUserBLL = new BLL. UserBLL();
private void btnSubmit_Click(object sender, EventArgs e) { 文字列ID = txtId.Text.Trim(); 文字列 psd = txtPsd.Text.Trim();
User localDataTable = objUserBLL.SelectRecordByID(id);
if (localDataTable != null && localDataTable.Psd == psd) { MessageBox.Show(「成功」); } そうでなければ { MessageBox.Show("false"); } }
この時点で、ログインインターフェースのコードは完成しています。 効果を見るために実行できます。
|