我将带领团队尽快在ASP.NET(Web表单)中创建一个复杂的制造Web应用程序,之前我们的业务逻辑将在同一个项目中,甚至更糟糕的是在页面后面的代码中。
我理解分离问题很重要,使测试更容易(测试一直是我们的问题),所以这就是我们想要的方向。
我对如何实现这一点感到有点困惑 - 我们使用了大量的RadGrid等我们绑定到SqlDataSources。这些东西如何与另一个项目中的所有业务逻辑一起工作?
答案 0 :(得分:2)
我的建议是:
答案 1 :(得分:2)
另一种选择是保留您的网络表单,但使用MVP模式。我们发现新开发人员或初级开发人员的入门门槛要低得多,因为它只是简单的c#(无需学习Razor或MVC的惯例),我们发现90%的开发可以由知道的开发人员完成绝对没有任何关于Web开发(我们基本上抽象使用任何与Web相关的东西,比如用户或Profile,以使业务代码更可重用)。
你必须取消SqlDataSource
,但我同意其他所有人的观点。在我们的实现中,数据将从数据库中检索并包装在POCO DTO中,作为IEnumerable传递给视图,然后在页面的代码隐藏中进行数据绑定。
MVP在企业界的另一个好处是它对变革的适应能力。由于视图尽可能愚蠢,因此将其切换出来非常简单。您可以使用相同的模型和演示者,同时在Winforms,Silverlight,Webforms和控制台应用程序中拥有视图。视图的实现与Presenter或Model无关。
MVC是新的热点,但是使用MVC和MVP,对于可维护性和可靠性至关重要的大型企业Web应用程序,我推荐使用MVP。
答案 2 :(得分:1)
你可以使用ObjectDataSource而不是SqlDataSource来利用其他项目中的类(即另一层),但你仍然会使用Web Forms进行艰苦的战斗。
如果关注点和可测试性分离是重要问题,我强烈建议使用ASP.NET MVC。