我应该在MVC仍处于测试版阶段时就开始使用呢,还是等到发布候选版本再开始使用?
从一些回复中,我认为我需要稍微澄清一下我的问题。我的主要担忧是是否选择一个仍处于测试版的产品,而不是WebForms vs. MVC。这个担忧主要是因为担心我们会在测试版中使用一些功能,但最终版本中这些功能可能会被更改/弃用/不支持。
但是,我确实欣赏WebForms vs. MVC的观点。它只是没有涉及到我问题的核心。
这其实是一个相当简单的决策树。
如果你:
那就选择ASP.NET MVC。
如果你:
那就选择WebForms。
对我来说,答案99%是ASP.NET MVC,因为我认为它更适合Web。 我认为Ajax的情况也更清晰,而且我完全掌控我的HTML和URL。 除此之外,我还可以轻松地测试驱动我的网站(控制器)。
是的,我知道你可以通过WebForms实现清晰的URL,并且可以通过控件适配器获得更清晰的HTML,在WebForms中使用MVP模式可以实现一定程度的可测试性,但这些都是非常特殊的方法。 在ASP.NET MVC中,这些都是核心。 这就是你这样做的方式。
不用担心预览/测试版状态。团队一直坚持认为,您不需要go-live许可证来部署它(尽管现在他们提供了一个)。 它纯粹是在现有的ASP.NET Runtime上添加的。
这就像自动和手动变速器。 选择使您快乐的那个并运行它即可。
我更倾向于使用ASP.NET MVC而不是WebForms,所以我会选择它,但你需要作为一个团队确定你们的核心技能集在哪里,以及选择MVC是否会:
不要仅仅因为它是新的就选择它。WebForms仍然是一个很好的选择,你可以编写可测试且具有清晰关注点分离的WebForms代码。
我建议你试一试。
我们最近使用MVC开发的电子商务平台已经发布了。虽然可能会有一些问题(比如,使用匿名类型解析Url目前要比使用RouteValueDictionary慢得多,这个对我来说是个惊喜),但与我们旧的WebForms应用程序相比,在MVC中构建可管理的系统似乎要容易得多。
如果你有选择的余地,那么你肯定应该仔细看看。在我们开发它的过程中出现的错误都被迅速修复了,现在大部分事情都运作良好,它开始感觉非常完整。
但归根结底,采用早期测试版产品始终存在风险。 :)
除非你的应用程序非常简单,否则在你进入生产之前MVC可能会被发布。但这并不重要。我从预览2开始就一直在使用MVC进行构建。每个新版本都包含了破坏性的更改;然而,它们并不难以追踪和修复。很不可能在1.0版本中,你能够创建一堆代码,会被某些破坏性的更改所推翻。只需预算几个人小时来应用每个新版本即可。
如果您不必很快将应用程序投入生产,请使用MVC编写。 在这里,我们有一个正在使用MVC的团队,并计划在2009年1月投入生产。