我有一些关于在平均N层体系结构应用程序中使用业务逻辑层的快速问题。
我正在开发我的最后一年大学项目,并使用Web表单表示层,业务逻辑层,数据访问层和数据层。
1)您对哪里是进行用户输入验证的最佳位置有何看法?对我而言,将表示层用于客户端的jQuery验证以及服务器端验证的ASP.NET验证控件是有意义的 - 但是很多文章都说明最好在BLL中执行验证?
2)目前我的BLL相当薄,90%的类只是作为DAL的接口,但我知道最终会有更多。在我的DAL中,我为每个实体提供了多个选择命令,例如GetAllProducts(),GetProductsByCategoryID(categoryID),GetProductByProductID(productID),GetProductsBySupplierID(supplierID)。这似乎涉及低水平的业务逻辑,即从技术上讲,应该只有一个GetAllProducts()函数,可以使用BLL中的代码进行过滤。
您对此的最佳做法有何看法?一个select语句在BLL中有过滤,或者需要多少select语句来获取我想要的数据?我认为总是选择每个产品都会对大型应用程序上的资源产生相当大的影响,但至少在层之间存在真正的逻辑分离。
干杯, 斯图。
答案 0 :(得分:0)
我不这么认为你需要bll。你只需要有两层。 WebUI和DAL。 使用数据实体模型将linq用于sql或lambda表达式将是完美的配方。
一个在BLL中有过滤的select语句,或者需要多少个select语句来获取我想要的数据?
如果您需要使用所有图层,那么您应该在bll中进行过滤,因为它是您的最终专业版。当你重用你的代码时它会如此有用。在BLL中制作过滤器。