代码之家  ›  专栏  ›  技术社区  ›  Aaron Palmer

我应该在ASP.NET MVC中构建下一个Web应用程序吗?

  •  9
  • Aaron Palmer  · 技术社区  · 16 年前

    我的团队正在考虑使用ASP.NET MVC框架构建下一个Web应用程序。我有点犹豫不决,和其他一些人一样,因为它仍然只是beta版本。我真的很想深入研究,因为它似乎是一个提供关注点清晰分离和提高可测试性的好方法。

    当MVC还在测试版的时候,我应该现在就开始冒险,还是推迟发布候选版本呢?

    从一些回答中,我想我需要澄清一下我的问题。我最关心的是是否要使用一款仍处于测试阶段的产品,而不是WebForms和MVC。主要是因为担心我们最终会在测试版中使用一些功能,这些功能在最终版本中会被更改/否决/不受支持。

    但是,我很欣赏WebForms和MVC的观点。这并不是我问题的核心。

    7 回复  |  直到 16 年前
        1
  •  17
  •   Ben Scheirman    16 年前

    这是一个非常简单的决策树,真的。

    如果您…

    • 非常关心URL
    • 非常关心你的HTML
    • 想要真正的分心
    • 希望通过和通过测试
    • 需要视图引擎的灵活性(aspx、nvelocity、nhaml等)

    如果您…

    • 享受WebForms的状态抽象(viewstate)
    • 不介意回发模式
    • 首选可以在页面上“拖放”的组件

    对我来说,99%的答案将是ASP.NET MVC,因为我认为它更适合于Web。我认为Ajax的故事也更清晰,我完全可以控制HTML&URL。除此之外,我可以很容易地测试我的网站(控制器)。

    是的,我知道你可以在webforms中实现干净的url,你可以通过控制适配器拥有干净的(er)html,你可以通过webforms中的mvp模式实现一定程度的可测试性,但是这些都是非传统方法。对于ASP.NET MVC,这是核心。你就是这样做的。

    不要担心预览/测试状态。团队一直坚持认为,部署它不需要上线许可证(即使他们现在提供了一个)。它完全是现有ASP.NET运行时的添加剂。

    就像是自动变速器和手动变速器。选择一个能让你快乐的,和它一起跑。

        2
  •  4
  •   jonnii    16 年前

    我更喜欢ASP.NET MVC而不是WebForms,因此我会选择它,但您需要作为一个团队进行工作,您的核心技能集是什么,选择MVC是否会:

    1. 创造更好的产品。
    2. 让你更快地进入市场。

    不要因为它是新的而选择它。webforms仍然是一个很好的选择,您可以为webforms编写既可测试又具有明确关注点分离的代码。

        3
  •  1
  •   roundcrisis    16 年前

    到目前为止,MVC看起来不错,但是我是一名城堡倡导者,我在许多生产场地使用单轨铁路,这让我了解了IOC和AR cheack out castleproject.org(退出Castleproject.org)

        4
  •  1
  •   Sciolist    16 年前

    我建议试一试。

    我们最近发布了一个前端运行MVC的电子商务平台,虽然有些问题您可能会偶然发现(比如,用匿名类型解析URL比使用routeValueDictionary慢得多,这让我很惊讶),但在MVC组件中构建一个可管理的系统确实容易得多。我们的旧webforms应用程序。

    如果你有选择的奢侈,那么你一定要仔细看看。当我们处理它时出现的bug都被很快地修复了,现在大多数事情都很好地工作了,并且开始感觉非常完整。

    但最终,承担早期测试版产品的风险总是存在的。:)

        5
  •  1
  •   Tim Scott    16 年前

    除非你的应用程序非常简单,否则MVC很可能会在你投入生产之前发布。但这并不重要。我从预览版2开始就在MVC上构建。每一个新版本都包含了破坏性的更改;但是,它们并不难跟踪和修复。到1.0时,您不太可能创建大量的代码,而这些代码将被一些破坏性的更改推翻。只需安排几个人小时来应用每个新版本。

        6
  •  0
  •   Zote    16 年前

    如果你不需要很快把你的应用投入生产,是的,用MVC写它。 在这里,我们有一个与MVC合作的团队,计划在2009年1月投入生产。

        7
  •  0
  •   user32415    16 年前

    如果这不是关键任务,你和你的团队有时间学习,为什么不呢?

    推荐文章