2010-11-27 63 views
1

我最近一直在学习数据访问层,业务逻辑层和表示层,但我仍然有一些不太清楚的东西。我应该尝试将asp控件事件放入BLL中吗?

我可以使用DAL和BLL与表示层获取或在数据库中设置的信息。

但我也想过asp控件事件,以及我应该如何实现它们。

我应该,例如,尽量把一个按钮单击事件到BLL或者我应该只是把它留在文件后面的aspx代码?

如果我应该把它们放到BLL中,我该如何去做这件事?

我不知道如何让一个事件称这是在BLL的方法,所以任何建议将不胜感激。

+0

我希望我可以接受多个答案。我选择了Tom B的答案,因为这对我来说是最简单的理解,并给了我一个很好的指导方针,可以让我学习更多关于N-layered方法的知识。 – 2010-11-27 15:51:54

回答

2

如果事件与业务模型有关,那么您应该在BLL中创建一个方法。如果它是UI类型的事件,请在后面的代码中处理它。因此,例如,如果用户单击按钮来计算装运,则在按钮的单击事件处理程序(后面的代码)中调用BLL对象的CalculateShipping()方法。但是,如果你有一个改变页面背景颜色的按钮(我想不出一个更好的例子),那么你会完全在后面的代码中处理它。

3

鉴于这种架构:

介绍 - >商务 - >数据

任何层应该只知道并且做出关于层在其最接近右边的假设。这意味着表示层可以与业务层交谈并使用它的API,但不应直接与数据层进行对话。业务层可以使用数据层的API,但不应该知道或假设使用它的表示层。显然,数据层应该对任何其他层都不知道。

如果你遵循这个总体原则,你会发现你的应用程序将会更简单,更容易维护。

虽则回答你的问题,按一下按钮事件表示层属于 - 把一个按钮单击事件到你的业务逻辑将模糊两层之间的线,可能会造成不必要的耦合。隐藏文件(表示层)

1

你的ASPX代码可以要么直接引用您的BLL(在耦合的结果),也可以使用更多的服务导向的方法。这将涉及创建您的表示层引用的接口并由业务层实现。在应用程序初始化期间(即在您的Global.asax文件中),您可以通过依赖注入或其他方法将BLL连接到表示层。

相关问题