用户自定义控件能算业务层吗?
比如这样:
数据库操作 .vb (所有数据库操作都写在一个文件?还是分开多个?)
用户自定义控件 .ascx (比如把会员登录,查询写成自定义控件)
表现层 .aspx
这样是三层结构吗?
------解决方案--------------------.NET简单三层结构
Web 层
Web 层为客户端提供对应用程序的访问。这一层是作为 Duwamish.sln 解决方案文件中的 Web 项目实现的。Web 层由 ASP.NET Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。
业务外观层
业务外观层为 Web 层提供处理帐户、类别浏览和购书的界面。这一层是作为 Duwamish.sln 解决方案文件中的 BusinessFacade 项目实现的。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。除了低级系统和支持功能之外,对数据库服务器的所有调用都是通过此程序集进行的。
业务规则层
业务规则层是作为 Duwamish.sln 解决方案文件中的 BusinessRules 项目实现的,它包含各种业务规则和逻辑的实现。业务规则完成如客户帐户和书籍订单的验证这样的任务。
数据访问层
数据访问层为业务规则层提供数据服务。这一层是作为 Duwamish.sln 解决方案文件中的 DataAccess 项目实现的。
代码示例:
以下是两种不同处理路径的代码示例:
获取商品目录
表示层调用业务外观层:
productSystem = new ProductSystem();
categorySet = productSystem.GetCategories(categoryID);
业务外观层直接调用数据层:
public CategoryData GetCategories(int categoryId)
{
if ( dsCommand == null )
{
throw new System.ObjectDisposedException( GetType().FullName );
}
return FillCategoryData( "GetCategories ", "@CategoryId ", categoryId);
}
添加定单
表示层调用业务外观层:
public void AddOrder()
{
ApplicationAssert.CheckCondition(cartOrderData != null, "Order requires data ", ApplicationAssert.LineNumber);
ApplicationLog.WriteTrace( "Duwamish7.Web.Cart.AddOrder:\r\nCustomerId: " +
cartOrderData.Tables[OrderData.CUSTOMER_TABLE].Rows[0][OrderData.PKID_FIELD].ToString());
cartOrderData = (new OrderSystem()).AddOrder(cartOrderData);
}
业务外观层调用业务规则层:
public OrderData AddOrder(OrderData order)
{
ApplicationAssert.CheckCondition(order != null, "Order is required ", ApplicationAssert.LineNumber);
(new BusinessRules.Order()).InsertOrder(order);
return order;
}
业务规则层调用数据层:
public bool InsertOrder(OrderData order)
{
//此处省略复杂的处理逻辑
if ( isValid )
{
using (DataAccess.Orders ordersDataAccess = new DataAccess.Orders())
{
return (ordersDataAccess.InsertOrderDetail(order)) > 0;
}
}
else
return false;
}
------解决方案--------------------b/s三层结构:
用户表示层:用户控件/界面及整体布局.
业务逻辑层:系统功能及业务逻辑流程.
数据访问层:数据库及触发器/存储过程/视图等底层数据接口.
本人认为用户控件属于用户表示层.
------解决方案--------------------楼主你对三层认识有点模糊
------解决方案--------------------不过 我也模糊 ^_^
------解决方案--------------------我也模糊了.
------解决方案--------------------不是多层结构,建议还是看看相关的文章
------解决方案--------------------see Duwamish