[英]A better way to implement Business Logic in MS Web Forms
我使用C#Entity Framework和Asp.net Web Forms 4。
目前我正在为Cms开发管理员部分,因此我必须使用许多GridView控件来对我的数据进行CRUD操作。
我使用EF作为DAL,并在每个.aspx页面内实现我的业务逻辑; 页面按文件夹进行逻辑组织。
我的BL非常简单:用户A从DB X,Y,Z获取并在GridView上显示它,而不是用户B从仅DB X获取并显示在同一GridView上。
在我的小经验中,我发现自己花了很多时间使用事件触发器Web窗体机制将我的BL角色嵌入到每个.aspx中。 我的问题是,相同的页面可能具有相同的BL,因此我必须在不同的.aspx页面中复制和粘贴我的代码。
我的问题:
谢谢你的时间!
您需要对应用程序进行分层 - 例如,在典型场景中,您可以拥有以下项目:
您已经选择EF4作为您的DAL。 您可以使用POCO实体(代码优先模型)将您的实体/ DTO类放在单独的项目中。 就业务逻辑而言,将其放在业务层中,这实际上是一堆定义API的类。 例如,
public static class CustomerHelper
{
public static Customer Get(int customerId)
{
// do access control security
...
// use EF4 to get the customer object
}
public static void Update(Customer customer)
{
// do access control security
...
// use EF4 to update the customer object
}
}
通常,业务层可以具有验证,安全检查,事务控制,业务事务所需的任何前/后处理等。
最后,您的aspx页面将是您的UI层,它将使用BL类来获取/更新数据。 对于声明性数据绑定,您必须使用对象数据源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.