3层架构 - 如果我在Web应用程序中将BAL / BLL层方法指定为静态,是否有任何问题?

时间:2010-07-07 14:00:56

标签: c#

我已经建立了一个基于3层架构(UI,BAL / BLL和DAL)的网站。我的所有BAL图层方法都是静态方法,它接受业务对象(实体对象)或一些其他参数(如字符串或整数),基于它从数据库获取或插入数据。

该网站每天都有大约10K的点击量,直到现在我还没有看到这个架构有任何问题。我担心的是,由于我的BAL / BLL方法是静态的,因为静态方法(静态方法或变量在服务器上的请求之间共享)可能会产生问题,因此命中数会增长很多倍。

我想知道我的BAL / BLL静态方法真的会给我带来问题,当访问者增加并且同时点击将会存在或者这项工作会不会很好?

我很抱歉,但我对这些事情并不擅长。

3 个答案:

答案 0 :(得分:1)

只要这些方法是线程安全的,您应该可以使用静态方法。如果这些方法仅使用/操作传递给它们的参数,那么它们是线程安全的。 (只要传入的每个对象都是线程安全的,并且这些对象持有的每个对象都是线程安全的,等等。)

答案 1 :(得分:0)

线程安全不应该取消选中。运行CHESS

答案 2 :(得分:0)

静态方法不可测试。 静态方法使您的应用程序不可扩展。 如果你不能使它们成为非静态的,请检查你的架构。

我建议你让它们非静态,在服务中转换你的BLL类,提取接口和常用模型。使用IoC容器注入正确的BLL服务。 让您的DAL成为服务并注入它。