5

私の質問は、3 層アーキテクチャについてです。

私のプロジェクトは簡単に以下のようなものですが、データベース内に新しい列を挿入した後、BLL を除くすべてのフィールドを更新する必要があることに悩まされています。プレゼンテーション レイヤーでは、OBJ を作成し、DAL 内に加えて、DAL 内に SQL クエリを作成しました。これらすべてのフィールドを手動で更新する必要があります。

「通常の」方法で行う場合は、それらすべてをプレゼンテーション レイヤー内に配置し、すべてを 1 か所で更新します。

この 3 層アーキテクチャを正しく適用していますか? また、この層状アーキテクチャを使用する利点は何ですか?

私の2番目の質問は:

DAL 内で、_view を介してデータを収集します。すべてのビューに対して別の BOboj を作成する必要があるのでしょうか??私は既に BOboj クラスを持っていますが、すべてのフィールドが含まれているわけではありません。

データを挿入するときはBObojを使用する必要がありますが、データをリストするときはビューを使用しています。この場合、ビューごとに別のBOboj_viewクラスを作成する必要がありますか?? それを行う簡単な方法は何ですか?

例えば; SQL Server のすべてのテーブルにマップされた 20 個のビューと 40 個のクラスがあります。ビューはデータの異なるテーブル (つまり、異なるオブジェクトを意味します) を収集します。ビューを表す 40 個を除いて、さらに 20 個のクラスを作成する必要がありますか?

オブジェクト

class BOboj {
        private int _PId;
        private string _Name;
        .......
        .......


}

ダル

BOboj_DAL {

        public bool Add(BOboj obj)
        {
            using (SqlConnection con = Connect.connect)
            {
                string sql = "insert into Persons (Id,Name,
                 .......
                 .......
}

BBL

BOboj_BLL {

        .......
        .......
        public bool Add(BOboj_DAL obj)
        {
            BOboj_DAL bb_dal = new BOboj_DAL();
            try
            {
                return bb_dal.Ekle(obj);

            }
            catch (Exception)
            {

                throw;
            }
            finally { bb_dal = null; }

        }

        .......
        .......
}

プレサンタオンレイヤー

  protected void Add(object sender, DirectEventArgs e)
        {
            BOboj_BLL bll_= new BOboj_BLL ();

            BOboj  obj_ = new BOboj 
            {
                Name = Name.Text,
                ..............
                ...............

            };
            bll_.Add(obj_ );
}

ありがとうございました。

4

2 に答える 2

7
  1. DA オブジェクトは、何らかの方法でデータベース スキーマを表す必要があり、データベース アクティビティに厳密にバインドする必要があります。

  2. ビジネス層これは、プロジェクト ロジックに固有のデータを使用して操作する必要がある場所です。ビジネス オブジェクトは常に DA オブジェクトと同じであるとは限りません (Forename と Surname の 2 つのプロパティを持つ DA オブジェクトを想像してください。ただし、何らかの理由で、Forename はロジックで使用されないため、BO オブジェクトにはプロパティ Surname が 1 つしかありません。彼らは Forename でも操作したいので、このレイヤーにのみ追加する必要があります)。

  3. プレゼンテーション レイヤー オブジェクトは、ビューに厳密にバインドする必要があります。論理があってはなりません。これらのオブジェクトは、アクティビティを表示するためにのみ使用してください。

このルールコードを維持しようとすると、あなただけでなく、特にチームメイトのために維持するのがはるかに明確で簡単になります. 適切に分離されたコードを拡張する方が簡単です。

また、場合によっては、たとえば Web サービスを使用しているプロジェクトでは、サービス指向オブジェクトを使用して第 4 層を実装できることも覚えておいてください。

于 2013-06-05T11:05:36.477 に答える