【问题标题】:I'm an ASP.NET programmer (Webforms). Should I switch to MVC? [closed]我是一名 ASP.NET 程序员(Webforms)。我应该切换到 MVC 吗? [关闭]
【发布时间】:2009-10-04 21:19:59
【问题描述】:

我喜欢准确控制幕后发生的事情(MVC 方式),但我也很懒,不喜欢编写大量的 javascript GUI 内容。 我应该还是不应该切换到 MVC? 谢谢, 内斯特

【问题讨论】:

  • 如果你喜欢控制,那么 MVC 就是你的哈克贝利。如下所述,jQuery 将大大减少您用 Javascript 编写的复杂性和行数。
  • 请注意,jQuery 可能会减少您编写的行数,但不一定会减少在浏览器中执行的行数。这可能会对性能产生影响,尤其是对于早期 (

标签: asp.net javascript asp.net-mvc


【解决方案1】:

这取决于。如果您擅长编写 Webforms 应用程序,您已经拥有大量 ASP.NET 服务器控件供您使用,并且您的应用程序不需要太多技巧(阅读:代码隐藏),那么 Webforms 可能是更好的选择.

另一方面,如果您喜欢高性能且架构清晰的应用程序,需要对标记进行精确控制,并且希望您的应用程序可测试,那么 ASP.NET MVC 是更好的选择。

有许多易于使用的 JQuery 小部件可用于 ASP.NET MVC,因此您不应该不喜欢 Javascript。但是 MVC 有一个学习曲线,所以如果你不喜欢学习新事物,我会坚持使用 Webforms。

【讨论】:

  • 大部分同意 (+1),但需要注意的是,在视图状态是资产而非负债的中小型企业 Intranet 上,Webforms 的性能超过了 mvc。
  • 如果你不喜欢学习新事物,你需要开始寻找新的职业,软件开发就是学习新事物。
  • @Joel 对 ViewState 和 Intranet 性能的良好观察。
【解决方案2】:

是的,你应该这样做。 WebForms 是一个很大的漏洞抽象,它试图让你相信编写 Web 应用程序就像编写 Windows 应用程序一样,这是错误的。

管理 PostBack 对一个人来说是一件痛苦的事。它会在您的 HTML 中生成大量垃圾代码。

【讨论】:

  • +1 我同意 100%。我预测 Web 表单很快就会被视为遗留代码。
  • +1。 PostBack 花费了我很多很多小时的挫败感和调试。最初我发现在页面中编写代码让我回到了过去的 ASP 时代,但是一旦你克服了这一点,并且只返回需要很少 UI 编码的数据,它就是最好的。并且没有页面生命周期可以应对,例如必须重新创建所有控件以获取它们的值!
【解决方案3】:

ASP.NET MVC 绝对值得了解!您将完全控制您的 html,将学习许多好习惯并探索 jquery 的奇妙世界。

最后试一试……定期学习新东西真是太好了。

【讨论】:

    【解决方案4】:

    如果您正在编写复杂的网站,并且您尝试提供的功能与经典的 Windows 应用程序相呼应,那么我发现 WebForms 可能是最好的选择。当然,可以(并且经常)使用 ViewState 而不考虑后果(大量回发等)。然而,大多数 WebForms 控件的质量,以及最近添加的 ListView 控件使其成为一个非常高效的平台。

    另一方面,如果您与指定要呈现的确切 HTML 的设计团队一起制作网站,并且实际功能不那么复杂,那么 MVC 可能会很棒。 MVC 还会将您推向下一个默认情况下更适合可测试性的编码模型。有很多 jQuery 插件无需冗长的编码即可提供丰富的 UI 功能,但我使用过的一些插件有一些小的质量问题。而且大多数时候我不需要选择水印或日历控件 - 我只想要一个有效的!

    总之——我认为这取决于你是在编写一个网站站点还是一个网络应用程序

    【讨论】:

      【解决方案5】:

      您还可以考虑 MVP(模型视图演示器)模式:它为您提供与 MVC 相同的逻辑和表示分离,同时仍然允许您使用 ASP.NET 服务器控件。

      "Model View Presenter",来自 MSDN 杂志的文章。
      Model-View-Presenter Pattern 来自 MSDN 上的 Web Client Software Factory 文档。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        • 1970-01-01
        • 2010-09-07
        • 1970-01-01
        相关资源
        最近更新 更多