c# - ASP.NET Web 窗体和关注点分离

标签 c# asp.net webforms

我将很快带领一个团队在 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/

相关文章:

c# - 我如何使用 Javascript 获取 ASP.Net 网格元素

c# - 我可以将矿库共享给所有应用程序吗?

c# - 编码字符未正确呈现

c# - 我们可以在代码隐藏中使用 WPF 绑定(bind)中的 Where 子句吗?

c# - Entity Framework 多对多条件连接

c# - 为什么 C# 编译器不认为这种泛型类型推断有歧义?

c# - 如何从WebResponse中获取返回的对象

C#:在同一条语句中动态实例化不同的类?

asp.net - 我可以使用 asp :Button like an Html. ActionLink 吗?

javascript - 我可以使用 JavaScript 走多远?