我是一个三层架构的新手,因为它由UI,BAL和DAL layers.So组成。我正在用DAL编写所有的数据库代码,我已经在BAL中声明了变量,我已经调用了UI中的方法,但是这是正确的编码方式吗??我的BAL在做什么?业务层的主要用途是什么?有人能解释我吗,谢谢。
//In my BAL
public class ProfileMasterBLL
{
public int UserId { get; set; }
public string FormFiledBy { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}//在我的UI中
ProfileMasterBLL pmBLL = new ProfileMasterBLL();
pmBLL.FirstName = TextBox1.Text;
pmBLL.LastName = TextBox2.Text;
//In my DAL 用于insert()的方法
那么我如何调用ProfileMasterBLL.insert()呢??正如我在DAL中所写的。
发布于 2012-08-02 22:30:45
业务层用作UI和DAL之间的中间人。它用于您的应用程序将包含的任何或所有业务逻辑。例如,在会计应用程序中,您可能希望在将数据发送到数据库层之前对数据执行一些计算和检查,您将在业务层执行此操作。
你的UI可以这样做:
//establish person object
//pass in some salary with it to BL
BL.CalcPay(somePerson, someSalary);然后在你的BL中:
//inside of BL
//if its a CEO they are lucky, they get paid twice as much
decimal toGive = someSalary;
if(somePerson.IsCEO)
toGive = toGive * 2; //CEO gets paid more :(
//now call DAL
DAL.CalcPay(somePerson, toGive)然后在您的DAL中:
//inside of DAL
//perform some update by calling for instance a sproc
using(SQL....)
{
}这不是最好的例子,但它应该让人明白这一点,很多时候,你的BL除了传递一个方法调用给DAL之外,什么都不做。仅仅因为它是BL并不意味着它必须有某种与之相关的检查。所以你最终可能会做这样的事情:
//inside UI
string s = BL.GetSomeString();
//inside BL
return DAL.GetSomeSomeString();
//inside DAL
return someString;发布于 2012-08-02 22:31:54
业务层的作用是执行业务规则,例如验证实体、执行实体上的业务规则、执行实体上的业务功能。
通常你有两个选择。
在存储过程中实现业务逻辑
或
在业务层中实现业务逻辑
发布于 2012-08-02 22:35:11
业务层的存在是为了提供放置业务逻辑的位置。数据访问逻辑应该只对数据库执行创建、检索、更新和删除(CRUD)操作。表示层应该只有决定用户如何与系统交互的逻辑。
例如,如果在UI中单击"add user“,则可以在业务层调用BAL.AddUser()方法,然后调用多个数据层方法(如DAL.AddUser() )插入用户,然后调用DAL.AddUserToGroup()将新用户放入默认组。
https://stackoverflow.com/questions/11779574
复制相似问题