目前,我的网站上有一个存储库模式,其中包含规范模式。我可以通过几行代码从.aspx页面中获取数据,例如:

private IRepository repository;

    protected void Page_Load(object sender, EventArgs e)
    {
        repository = new GenericRepository();

        Specification<Book> specification = new Specification<Book>(b => b.Year == 1988);
        lvBooks.DataSource = repository.GetAll<Book>(specification);
        lvBooks.DataBind();
    }


现在我的问题是,我的网站上需要一个业务层吗?如果您的回答是肯定的,为什么?
目前,由于规范模式的原因,我似乎不需要页面和存储库之间的业务层。

感谢您的意见。

最佳答案

答案取决于该应用程序的大小,将要变得多大以及它可能会改变多少。

任何层的唯一真实点就是隔离功能。在小型应用程序中,您可以很高兴地在整个UI代码中散布对存储库的调用。

但是,如果您随后更改存储库的结构方式又该怎么办?您需要查找并更改所有这些引用。

但是,如果您在业务层中编写了所有存储库访问代码,从而向UI公开了更高级别的方法,那么此时您要做的工作要少得多。

可能有特定的安全考虑。例如,如果您的UI无权访问存储库,则可以将所有安全检查集中在业务层的公共API上。如果您有一个200页的Web应用程序,可以从任何地方访问该存储库-当然它可以是安全的-但是您能确定什么呢?

然后进行单元测试……基本上没有正确的方法-但是,如果您的应用程序很小,那么您就可以了……如果您的应用程序很大,则您可能会后悔这一设计。

10-08 07:50