ASP.NET MVC与Web客户端软件工厂(WCSF)

时间:2020-03-05 18:50:32  来源:igfitidea点击:

我最近一直在对不同类型的Model View架构进行一些调查,因此需要决定为将来的内部开发选择哪种架构。因为我目前在一家拥有ASP.NET技能的Microsoft商店中工作,看来我的选择介于ASP.NET MVC和WCSF之间(Monorail可能不适用,因为Microsoft不会支持它。)

在使用WCSF作为标准阅读ASP.NET MVC框架之后,我总结了以下几点:

  • ASP.NET MVC不能使用依赖回发的Web控件,而WCSF可以。
  • 与WCSF站点相比,我们可以更好地控制ASP.NET MVC站点中的URL。
  • 与等效的WCSF版本相比,ASP.NET MVC站点可能更易于测试。
  • 在某些情况下,WCSF似乎仍使用背后的代码来控制UI事件,但是ASP.NET MVC不允许这样做。

还有哪些其他考虑因素?
我误会了什么?

解决方案

回答

ASP.NET MVC cannot use web controls that rely on postbacks, whereas WCSF can.

有没有人同时使用过这两种框架并提出了建议?

You have more control over the urls in an ASP.NET MVC site as opposed to a WCSF site.

我们应该将WCSF视为如何使用现有WebForms基础结构的指南,尤其是引入Model-View-Presenter来帮助实现关注点分离。它还增加了所得代码的可测试性。

An ASP.NET MVC site will probably be easier to test than an equivalent WCSF version.

如果可以以3.5 SP1为目标,则可以将新的路由系统与传统的WebForms站点一起使用。路由不限于MVC。例如,看一下动态数据(它也随3.5 SP1一起提供)。

It seems that the WCSF still uses the code behind to control UI events under some circumstances, but ASP.NET doesn't allow this.

这是正确的,因为它为HttpContext,HttpRequest,HttpResponse等使用了新的抽象类。MVC模式在本质上没有比MVP模式更可测试的。它们都是"分离表示"的实例,并且都提高了可测试性。

在Model-View-Presenter中,由于外界与视图进行交互(即,URL指向视图),因此视图自然会响应这些事件。通过调用演示者或者提供演示者可以订阅的事件,它们应尽可能简单。

Model-View-Controller通过让外部世界与控制器交互来克服此限制。这意味着我们对非表示事物的看法可能会很"笨拙"。

回答

至于我们应该使用哪个,我认为答案取决于哪种最适合项目目标。有时WebForms和丰富的第三方控件供应商的可用性将是更可取的,并且在某些情况下,原始的简单性和细粒度的HTML控件将支持MVC。

回答

为什么不将两者都附在Northwind上,看看哪种最适合我们和情况?

我们可能还考虑了开发人员的背景(如果已经确定了背景)。

如果他们来自严格的asp.net背景,那么他们对WCSF会更加满意(尽管以我的经验,他们仍然花了几周的时间才真正对MVP感到满意)。

回答

如果它们来自java / rails背景,或者以前曾经使用过其他MVC架构,那么显然它们会在那儿更快乐(以我的经验,除了MVC以外,其他任何事情都可以使人大笑)。

经过完全相同的评估后,我们选择了WCSF。我们认为MVP模式为我们提供了更多选择,即能够使用服务器控件。我们的开发团队主要由来自众多学科的程序员组成,这些学科包括C ++,Biztalk和Web等,但都专注于MS类型开发,因此采用模式的学习曲线对我们团队而言并不是那么重要。

回答

我们对自己的选择感到非常满意。

回答

不是开始一场火焰战争,而是我发现WCSF非常复杂。 MVC的优雅和简单性使MVP破灭,感觉就像是嫁接到Web表单上的图案一样。

段落数量不匹配