新网站的MVC或Webform架构

时间:2009-06-13 16:18:24

标签: c# asp.net asp.net-mvc architecture

我正在开发一个网站,工作门户网站。我有2到3年的ASP.NET webform开发经验, 我想创建一个专业的工作门户网站(以改进和了解更多),但试图决定最佳架构。任何建议或建议都会有所帮助......

由于

11 个答案:

答案 0 :(得分:4)

嗯,有很多方法可以回答这个问题,我相信很多其他人都会参与进来。我只会说,因为你的目标是改进和学习更多,而你已经有2-3个多年的网络体验经验,这可能是您学习MVC的好机会。然后,您将拥有两者的经验,并可以就未来项目的最佳架构做出更明智的决策。

快乐学习!

答案 1 :(得分:4)

虽然没有人能告诉您具体做什么,但我管理的团队即将使用ASP MVC发布新的CMS / Job门户。 MVC为我们提供了出色的可测试性和可扩展性,它可以快速与nHibernate / windsor(IOC)/ nCache / jQuery等工具结合使用 - 这可确保您在互联网上拥有丰富的资源,以帮助加速您的开发和技能。您还可以使用XHTML 1.1严格的标准,由于自动生成的HTML,这几乎不可能使用ASP.Net webforms

另一个优点是你也可以远离可怕的ASP.Net视图状态。

答案 2 :(得分:3)

如果您想要使用ASP.NET MVC:

  • 学习ASP.NET MVC框架
  • 使用jQuery或类似的库
  • 真正学习网络语言(HTML,CSS,JavaScript)
  • 使用测试驱动开发
  • 有一个清晰的关注点分离

如果您没有时间或者没有学会正确使用ASP.NET MVC框架,请坚持使用ASP.NET WebForms。

答案 3 :(得分:2)

我的回答几乎总是“ASP.NET MVC”。灵活性和功能,可测试性以及可维护性和...的数量远远超过WebForms。

WebForms具有丰富的现有控件和文档生态系统的优势,并且对于某些类型的任务(复杂的,多形式的交互)非常强大,但我发现它的局限性经常发生。你必须自己塑造它。

答案 4 :(得分:1)

这实际上取决于应用程序的最终目标。正如Scott Ewers所说,如果您的目标是学习,那么使用ASP.NET MVC将扩展您在ASP.NET领域的知识范围(因为您已经了解了Web表单)。

此外,如果这将是一个公共产品,您可以利用MVC的可测试性优势并运行自动化单元测试。像Separation of Concerns这样的关键思想也可以提高长期可扩展性和可维护性。

您可能选择Web表单的主要原因是您正在快速构建作业板应用程序的原型。如您所知,Web表单允许您将组件拖放到画布上,以快速创建一些基本的数据输入功能。

答案 5 :(得分:0)

从5月13日开始就有一个herding code podcast

  

Herding Code 47:Joe Brinkman on Webforms vs ASP.NET MVC。

答案 6 :(得分:0)

我也同意选择MVC可以让你扩展你的知识。这不是唯一的原因,鉴于我的选择,我刚刚完成了一个小型MVC项目(我的第一个),让我告诉你MVC摇滚!它是一个伟大的框架,我觉得它给你更多的灵活性,同时开箱即用的工具,快速,轻松地创建一个Web应用程序。这是我第一次体验VS2008& .NET FW 3.5& LINQ和www.asp.net上的所有指南帮助我快速前进(特别是提到here的MVC 1.0书中的免费教程章节。)

我也一直在学习JQuery,因为它非常融入这些新技术。

有人认为要注意的是,这是一种新技术,版本2已经在制作中,所以如果您的项目是长期的,请记住并相应地计划(在我的情况下,是一个小的项目,我可能会尝试将我的项目升级到版本2正式发布时。但与此同时,拥有一个完全MS(以及MSDN)支持的版本1对我来说是一个天赐之物...

祝你好运!

答案 7 :(得分:0)

我在Jquery,CSS,HTML,Javascript方面有很好的经验,但在TDD方面没有。

我有时间......并且愿意学习MVC,但不确定MVC是Job Portal或类似网站的不错选择。

答案 8 :(得分:0)

这可以被认为是一个无耻的自我广告,但这是我的如何在两者之间进行选择的测验: http://sietch.net/ViewNewsItem.aspx?NewsItemID=101

答案 9 :(得分:0)

我的一位客户最近负责编写一份论文,或者只是一份清单,这将有助于其他主要开发人员做出同样的决定。

我在博客上发布了前2个草稿。我当然是亲mvc,但我们收到了纸/清单,所以它可能会有所帮助。

http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/[http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/][1]

我认为MVC最常被忽视的好处是惯例;我确实在webforms项目中看到了任何约定,而在MVC项目中并没有严格执行,至少在那里。

答案 10 :(得分:0)

我开始在webforms中开发我们当前的应用程序,在开发开始时mvc不可用..我选择了MVP模式,使用URL重写HTTP模块。目前我正在调查插入一些MVC,基本上是使用前端控制器而不是使用页面控制器。我已经建立的MVP架构中的其他东西在我的应用程序中使用Web表单给了我比没有WebForms的纯MVC方法更多的灵活性,我喜欢它,虽然需要比MS MVC示例更多的代码(从未尝试过它用于真实项目,看它是否保持这种状态,就像在截屏视频中的那些例子一样。)

我不喜欢MVC是在模板中混合控制代码 - 我相信循环,ifs和类似的东西不应该属于模板内部。但是几天前我遇到了Spark视图引擎,虽然在Java世界中仍然没有接近Tapestry 5(基于组件的webGUI框架),但它看起来很有希望。

但是上面提到混合两者的建议可能对你有用,可以探索MVC世界,并且如果某些东西不起作用,你可以安全地回退到你身边。