我将很快带领一个团队在 ASP.NET(Web 表单)中创建一个复杂的制造 Web 应用程序,而以前我们的业务逻辑将在同一个项目中,或者更糟糕的是,在页面的代码中。
我明白关注点分离很重要,它使测试变得容易得多(测试一直是我们的问题),所以这是我们想要进入的方向。
然而,我对如何实现它有点困惑——我们使用了很多我们绑定(bind)到 SqlDataSources 的 RadGrid 等。这些事情如何与另一个项目中的所有业务逻辑一起工作?
最佳答案
我的建议是:
- 如果可以,请忘掉 SqlDataSources。如果您使用的是 SqlDataSources,您仍然可以隔离一些业务规则,但对于以数据为中心的应用程序,大部分业务规则都与编辑和检索数据有关。最好的数据源是简单的 IEnumerables。大多数网格控件都支持它。您的业务规则应该检索绑定(bind)到网格控件的简单 C# 对象。 ObjectDataSource 也是一个不错的选择。
- 如果可以,请使用 ASP.NET MVC 而不是 ASP.NET WebForms。在可测试性和关注点分离方面的优势是巨大的。这就是创建这项技术的原因。当您开始一个新项目时,我强烈推荐它。事实上,ASP.NET MVC 就是让 Controller 层将对象传递给 View , View 可以显示它们。
关于c# - ASP.NET Web 窗体和关注点分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17632769/