私は以前の開発者がどのように決定を下したのか分かりません。 DALとBAL n-tier C#BALメソッドとDALメソッドが全く同じ名前(シグネチャなど)のアプリケーション
- まったく同じメソッド名は、どこにでもある
- 私は、ベストプラクティスに従うことを新しい方法で何をすべきでしょうか?
既存のコードの例:
呼び出すapplictionは
public class CreditMgr
{
public static DataSet GetCreditRqstInfo(String GeoID)
{
try
{
DataSet DS = new DataSet();
DS = CreditIntfDB.GetCreditRqstInfo(GeoID);
return DS;
}
catch (Exception ex)
{
throw ex;
}
}
}
DataSet DS = CreditMgr.GetCreditRqstInfo(ddlGEO.Text);
BAL(とらわれないコンソールアプリケーションやWebアプリケーションなど。かもしれません) DAL
public class CreditIntfDB
{
public static DataSet GetCreditRqstInfo(String GeoID)
{
try
{
Database DB = new SqlDatabase(Common.ConnectionString);
String SQLCommand = Common.SPGetRqstInfo;
DbCommand DBCommand = DB.GetStoredProcCommand(SQLCommand);
DBCommand.CommandTimeout = Common.CommandTimeOut;
DB.AddInParameter(DBCommand, "@a_geo_id", DbType.String, GeoID);
DataSet DS = new DataSet();
DB.LoadDataSet(DBCommand, DS, new String[] { "CreditRqstInfo" });
return DS;
}
catch (Exception ex)
{
throw ex;
}
}
}
はい、全体のポイントは、分離の層を持つことであるが、同じメソッド名が使用されているとき、および静的、それぞれが単純に文字列を渡すとまったく同じことをやってとを戻ってきていますデータセットは私に "コードの匂い"を持っています
良い方法の提案?
。私は、クラスが 'BAL'か' DAL'かどうかを示す名前空間があることを確信しています。 – Venky
はい、コードは悪いですが、あなたの質問は何ですか? 'catch(Exception ex){throw ex; } 'うーん。 – Blorgbeard
これは、[Stack Exchange Code Review](https://codereview.stackexchange.com/)に適しています。一般的に私はあなたに同意します - 層のための層は良いデザインではありません。各層には目的が必要です。すべてのクラスに責任が必要です。意味のあるビジネスロジックがない場合、BALはあなたのケースにとって貴重ではないかもしれません。 –