1

を使用してASP.NET Web Forms/C#います。

私は自分のアプリケーションでのBLL実装について調査しました。DLL

多くの人が、使用はそれ自体をLinq To SQL置き換えると言っていることがわかりました。DAL

したがって、データにアクセスし、クラス自体の内部でビジネス ロジックを実装する必要がBLLあります。それが正しいかどうかはわかりません。

現在、私はクラスを持っていCustomerBLLます。データにアクセスし、その中にビジネスロジックを実装しています。

だから私の質問は、それは良いアプローチですか?

これに従うことはできますか?

また、現在BLL、クラスは 1 つしかありません。ページごとに 1 つまたは 1 つだけ使用するか、.aspx同様のページをグループ化する必要があります。

これが私のものですCustomerBLL.cs(いくつかの機能を含むだけです)。

namespace CwizBankApp
{
    public class CustomerBLL
    {
        public string GetDateFormat()
        {
            using (var db = new DataClasses1DataContext())
            {
                var format = db.CODEs.Where(code => code.NAME.Equals("dateformat")).Select(code=>code.DRNAME) .SingleOrDefault();  
                return format;   
            }
        }

        public IList<string> GetAccountTypes()
        {
            using (var db = new DataClasses1DataContext())
            {
                var  acctype = db.mem_types.Select(account=>account.CustCategory).Distinct().ToList();
                return acctype;
            }
        }




        public IList<mem_city> GetCities(int index)
        {
            using (var db = new DataClasses1DataContext())
            {
                var city = db.mem_cities.Where(c => c.state_id.Equals(index)).ToList();
                return city;
            }
        }

        public string InsertDate(string datefield,string dateFormat)
        {
            string dd, mm, yyyy;
            string date;
            string [] split = Regex.Split(datefield, @"/");
            yyyy = split[2];
            if (dateFormat.Equals("British"))
            {
                dd = split[0];
                mm = split[1];
            }
           else
            {
                dd = split[1];
                mm = split[0];
            }

            date = mm.PadLeft(2, '0') + "/" + dd.PadLeft(2, '0') + "/" + yyyy;  
            return date;
        }

        public string RetrieveDate(string datefield,string dateFormat)
        {
            string dd, mm, yyyy;
            string date;
            string [] split = Regex.Split(datefield, @"/");
            dd = split[1];
            mm = split[0];
            yyyy = split[2];

            if (dateFormat == "British")
            {
                date = dd.PadLeft(2, '0') + "/" + mm.PadLeft(2, '0') + "/" + yyyy;   
            }
            else
            {
                date = mm.PadLeft(2, '0') + "/" + dd.PadLeft(2, '0') + "/" + yyyy;   
            }
            return date;
        }
}

どんな提案でも大歓迎です。

4

1 に答える 1

3

一般に、DAL が BL への参照を必要とするように、BL を DAL から分離します。これは、BL に POCO と、リポジトリ/作業単位/を説明するインターフェイスが含まれていることを意味します。質問に答えるには、はい、L2S を使用する DAL を作成します。

2 番目の質問に答えるために、ドメインに存在するエンティティごとに 1 つのビジネス オブジェクトを作成します。通常、これは DAL のテーブルと一致します。aspx のコード ビハインドには、ビジネス レイヤーではなく、ページのロジックが含まれています。

于 2012-07-05T09:38:57.737 に答える