私は悪いコードを書くという私の古い習慣のいくつかを打破しようとしています. そのうちの 1 つは、検証コードを配置する場所です。検証はプレゼンテーション層にあるべきではないと思います。または、そこにいくつかの検証がある可能性がありますか?
これは私が以前に行ったことの例です
protected void SaveBtn_Click(object sender, EventArgs e)
{
Item itm = new Item();
itm.Name = txtName.Text;
if(String.IsNullOrEmpty(itm.Name))
{
//reject
}
else
{
ItemBLL.Save(itm); //no more validation here
}
}
また
public class ItemBLL
{
public static int Save(Item itm)
{
//no more validation in .aspx.vb
if(String.IsNullOrEmpty(itm.Name))
{
//reject
}
else
{
//Save item
}
}
}
私は最初のアプローチを使用しており、2番目のアプローチに切り替えることを考えていますが、問題が何であるか、または一方が他方よりも優れていることを予測できません。より良いアプローチのためにもアドバイスをいただければ幸いです
更新: ユーザーのために、単純な検証 (よくある間違いなど) をプレゼンテーション (.aspx) で (javascript、jQuery を使用して) 行うことに同意します。
一部のビジネス ロジックの検証は、移植性と再利用性のために BLL にも存在する必要があります。
これは分離コード (.aspx.vb または .aspx.cs) で検証をスキップできるということですか?