【问题标题】:What's an alternative to MVC?MVC 的替代品是什么?
【发布时间】:2010-10-20 01:08:29
【问题描述】:

似乎我参与的每个项目都使用模型视图控制器架构,这就是我推出自己的项目的方式。有替代方案吗?否则如何创建具有持久存储和用户界面的应用程序?

【问题讨论】:

标签: model-view-controller language-agnostic design-patterns architecture


【解决方案1】:

使用 VB6 和 Delphi 等工具构建的经典 CRUD 应用程序具有用户界面、持久存储且不使用 MVC。他们中的大多数使用直接链接到数据库字段的数据感知控件

【讨论】:

    【解决方案2】:

    用户界面是视图,应用程序总是有一个模型,两者之间的桥梁是控制器。整个 MVC 并没有什么特别之处,因为事情总是如此。

    您最多可以摆脱 Controller 并让您的视图与您的模型对话,但您会失去灵活性。

    【讨论】:

      【解决方案3】:

      查看 MVP 模型视图演示器。

      【讨论】:

      • 它也是 MVC ;)
      【解决方案4】:

      MVC 已经存在了一段时间。这是经过时间考验和证明的pattern。许多框架利用MVC Pattern。 Martin Fowler 将 MVC 解构为:Supervising PresenterPassive View

      建筑师Christopher Alexander说得最好:

      每个模式描述一个问题 一次又一次地发生在我们的 环境,然后描述 解决该问题的核心, 以这样一种方式,你可以使用它 解决一百万次,没有 曾经两次以同样的方式这样做。

      我不确定您为什么要从 MVC 迁移。您是否遇到过 MVC 无法很好解决的问题?为了给您一个更好的答案,我们需要更多地了解您的问题领域

      考虑模式/架构时要考虑的事项:如果您正在构建具有Myspace 类型架构的东西,您将需要一个健壮的架构 (MVC)。如果您通过网络创建一个简单的 crud 界面 - 几乎任何事情都可以。

      对于不是 MVC 的 .Net Web 表单(我假设是 Web,因为您没有说厚或 Web 客户端),维护它们是一场噩梦。寿命超过几年的 Web 表单应用程序往往会变成 big balls of mud。即便如此,开发人员也发现了使用 MVC with web forms 的方法。

      具有讽刺意味的是,ASP.NET Web 表单中缺乏 MVC 架构是导致 ASP.Net MVC framework 开发的主要抱怨之一。

      根据经验,如果您不使用某些 MVCesk 方法,您的解决方案将变得难以维护和臃肿。这些应用程序将缓慢而痛苦地死去。

      如果您的解决方案是一次性的小型项目,请务必将一些东西放在一起。哎呀,有一些工具可以生成从屏幕到数据访问层的所有内容。无论做什么都可以完成工作。

      【讨论】:

        【解决方案5】:

        比较各种可能有用的 MV* 模式的链接:WPF patterns : MVC, MVP or MVVM or…? & MVC, MVP and MVVM

        【讨论】:

          【解决方案6】:

          我开发了 ASP.NET MVC 的替代方案。您可以获得相同的松散耦合和关注点分离,但不同之处在于您构建项目的方式。

          我的博客上有几个视频、框架的源代码、一个示例项目和一些 VS.NET 插件(新项目项、新生成器和新视图)。

          Builder for ASP.NET

          一些关键的区别特征是 1. 模板只是 html - 没有代码与模板混合 2. 模板因此可以跨视图重复使用,网站设计者可以在他们选择的设计工具中设计模板 3. 强类型代码(没有 ViewData 和其他东西),因此您可以获得 intillisense、编译时间检查、F12 导航等。 4. 您将页面构建为视图的组合,而不是由内而外的方法 5. 视图可以被视为“真正的”类。 6.一切都被编译了,所以没有运行时编译

          还有很多其他差​​异化因素。

          【讨论】:

            【解决方案7】:

            理论上:

            MVC 是一种经过验证的技术和 yada-yada-yada,它是网站的理想选择。

            但在实际情况中:

            一个使用 MVC 的严肃项目需要一个框架,因此您正在遵循一个具有所有限制和限制的框架。所以,在这一点上,MVC的具体实现是规则而不是简单的“指南”。

            当 MVC 将要连接到模型而不是简单的 POST/GET 时,MVC 对于网站也会失败,它会因 xml 异步而失败,并且会因 ajax 而失败。 (*)

            (*) 存在一些补丁,但设计必须清晰且实用,如果您需要“修补”,那么它既不清晰也不实用。

            我个人认为 MVC 的主要问题是它在控制器上投入了太多精力,大多数项目使用的控制器部分不超过 5 行。

            ps:大多数“做得很好”的 MVC 项目都是 3 层项目。

            ps2:MVC不包括一些框架,只是一个流行语,不是一个严肃的术语,它在“mvc的解释”组中有所体现。

            【讨论】:

              猜你喜欢
              • 2010-09-07
              • 1970-01-01
              • 1970-01-01
              • 2019-02-22
              • 2011-05-07
              • 2012-04-24
              • 2019-12-03
              • 2010-09-17
              • 2012-03-27
              相关资源
              最近更新 更多