【问题标题】:What are the advantages of using an MVC framework over e.g. Drupal to build a large website? [closed]使用 MVC 框架比使用 MVC 框架有什么优势? Drupal 建一个大型网站? [关闭]
【发布时间】:2010-10-05 22:25:55
【问题描述】:

我正在对构建我们新网站的 3 种技术选项进行比较:

  • WordPress
  • Drupal
  • MVC 框架

老板肯定我们应该使用 Wordpress,但网站会很大,有很多版块、子版块、页面和复杂的模板。

我发现比较 WP + Drupal 很容易,但要说明使用 MVC 框架的额外优势(相对于 Drupal)却不是那么容易。

到目前为止我有:

  • 自定义数据存储、内容类型、语义
  • API / REST
  • 分离逻辑/UI
  • 约定,代码结构

(显然,根据项目的类型,一些好处会有所不同。在这种情况下,它将成为博物馆的大型门户,并有可能为参观者提供一些社交活动)

【问题讨论】:

    标签: model-view-controller drupal frameworks content-management-system


    【解决方案1】:

    很难将 CMS(例如 Drupal、WordPress)与 MVC 框架进行比较,因为它们属于不同的类别。

    为了具体回答您关于 MVC 框架相对于 CMS 的优势的问题,MVC 框架的优势在于它允许您从头开始设计您需要的确切 Web 应用程序。

    至于你的具体情况:

    使用现有的 CMS,例如 WordPress 或 Drupal,如果它们能满足您的需求,那将是一个绝妙的主意。它避免了重新发明轮子,节省了您的时间,并且 CMS 可以非常用户友好(在不同程度上)。如果您打算将内容更新的任务委派给非技术用户,那么明智的做法可能是选择对新手友好的 CMS,而不是使用 MVC 框架自行开发,这可能会导致应用程序需要更多的技术专长才能完成维护。

    但是,如果您设想网站需要大量在 CMS 的约束下难以实现的自定义业务逻辑,那么您可能需要使用 MVC 框架。

    【讨论】:

    • +1 这是一个苹果与橘子的比较。
    【解决方案2】:

    我强烈建议你不要使用 WordPress,它对于有一些静态页面和一个博客/新闻部分的网站来说非常棒,但我基于 WP 2.2 制作了一个双语产品网站,它是一个主要的 PITA,有很多黑客和写作数据库访问代码到模板中,使其成为可能。

    现在我一直在使用 Drupal 进行开发,它确实更适合大型项目(尽管与 WP 相比,建立一个简单的博客需要更多时间)——它具有出色的模块化架构,让我能够解决任何请求/问题,所以远远通过编写模块而不是破解核心。

    至于 MVC/Drupal:看看 Drupal 做了什么,如果您可以通过修改 Drupal 来获得结果,那么它非常棒,并且无需编写代码即可为您节省大量时间。常用的东西(用户注册、输入清理、强大的表单处理和验证、主题基础设施、存储抽象、Web 服务抽象层(服务模块)等等......)。

    反对 Drupal:由于模块化(我正在渲染项目列表,让我们调用所有实现了 theme_list 的模块来确定是否要修改它)架构,本质上很慢,所以如果你正在制作下一个推特,请获取一个快速的 MVC 框架。并且注册用户的内容缓存仍然需要大量工作才能有效(标记缓存应该在核心中),因此用户通常登录时的网站可能会很慢。

    【讨论】:

      【解决方案3】:

      Drupal 有 MVC 层,请查看 Drupal Prometheus @http://www.drupalprometheus.org。它具有现代 MVC 框架的大部分功能以及 Drupal CMS 的强大功能。我们最近开始在我们客户的一个项目中使用它。

      【讨论】:

        【解决方案4】:

        感谢大家的回答。我提出了使用框架或 Drupal 的案例,但决定我们应该使用 Wordpress,或者至少开始在 Wordpress 上构建,看看它是如何进行的。

        FWIW 这里是我想出的笔记:

        WORDPRESS / MU

        http://wordpress.org/ http://mu.wordpress.org/

        个人发布工具、博客平台

        • PHP +
        • 许多可用的小部件 +
        • 多作者支持/工作流程 +
        • 社交功能 (BuddyPress) +
        • 集成(BBPress 等)+
        • 简单、通用 +
        • 简单的用户界面 +
        • 能够管理多个博客(使用 WordPress MU)+
        • 只有 2 种内容类型(帖子或页面)-
        • 不是真正的“CMS”/博客心态 -
        • 不灵活的继承(无节)-
        • 有限的语义 -
        • 作者的模板选择有限 -
        • 乱码-
        • 安全/漏洞利用 -

        德鲁巴

        http://drupal.org/

        内容管理框架、CMS 构建工具包、构建网站的工具。对于“非程序员”构建网站,构建块

        • PHP +
        • 专为大型网站/门户网站打造 +
        • 内置社交功能(每个用户都有自己的个人资料/日志,可扩展)+
        • 作者的页面类型选择/配置(块系统)+
        • 结构化数据/语义的范围 +
        • 多种内容类型(新闻稿、新闻文章、博客文章等)+
        • 良好的社区/工具 +
        • 空白画布 +
        • 许多功能 +
        • 良好的图像处理 +
        • 复杂的用户界面 -
        • “黑盒子”,很抽象的代码,学习曲线! -
        • 自定义/主题化很困难 -

        框架

        它允许您从头开始设计您需要的确切网络应用程序

        • 可扩展的 +
        • 语义控制、数据存储 +
        • API / 数据 / REST / Web 服务 +
        • 当前、现代工具、尖端技术 +
        • 逻辑/表示分离(MVC设计模式)+
        • 约定 - 结构化代码、工作流 +
        • 重用/组合内容 +
        • 允许在不涉及业务逻辑代码库的情况下开发多个 UI +
        • 强大的 API/标准/模式 +
        • 干燥(不要重复自己)+
        • 学习曲线 -
        • 需要设计自定义 UI -
        • 矫枉过正? (取决于目标)-

        【讨论】:

          【解决方案5】:

          我认为 Drupal 是 MVC。 Drupal 使用一个主题系统,即您的视图和一个菜单系统,即您的控制器。模块是您的模型。当然,菜单被分割成各种模块,但它仍然基本上是 MVC 对吗?

          【讨论】:

          • 如果可以的话,我会投反对票。请阅读:drupal.org/node/116677#comment-197893 MVC 是最被过度使用和误解的设计模式之一。没错,drupal 将事物模块化成层,但它并不是真正的“MVC”,并不是说那是一件坏事。
          • 另外,这并不能回答提出的问题。
          【解决方案6】:

          我会说使用 MVC 框架来推出自己的框架而不是使用 WP 或 Drupal 的优势是:

          1. 您只需编写您需要的代码。 WP 和 Drupal 将有很多你不需要的东西放在你的服务器上。
          2. 开发人员了解整个代码库,因为他们是从头开始编写的,因此以后更容易维护。
          3. WP 是一个庞大的代码库(我不了解 Drupal),只要您需要任何 CMS 都不支持的东西,您就必须挖掘大量代码。
          4. Wordpress 的逻辑/用户界面分离很糟糕 - 我的意思是真的很糟糕。
          5. 更灵活。 CMS 非常棒,因为您不会试图让它们做一些他们不打算做的事情 - 这样它们就会变得很痛苦。

          如果您要推动 MVC 框架,那么您需要仔细查看您会选择哪个 - 它们不是生来平等的。其中一些会像 CMS 一样对您的代码和网站布局进行限制。

          我想这真的取决于需求的复杂程度以及 CMS 或框架能否满足这些需求。对于相对简单的内容交付,可以选择编写自己的轻量级 MVC 并在此基础上进行构建。

          【讨论】:

          • 我希望投反对票的人将投反对票的原因作为评论!
          【解决方案7】:

          作为在过去十年的大部分时间里从事各种家庭滚动 CMS 系统工作的人,我的建议是不要自己滚动。如果您有一些独特的应用程序,那么 MVC 是编写 Web 应用程序的好方法,但它的简便性无法抵消数千小时的构建和数百万次测试 OSS 的页面点击量。

          Drupal 不仅是一个不错的 CMS 系统,而且还是一个非常好的构建定制 Web 功能的框架,因此您可以免费获得很多东西,并且只需要花时间处理您网站的独特之处。 (在你学会了如何在 drupal 系统上编码之后)

          【讨论】:

            【解决方案8】:

            Microsoft ASP MVC(例如)是一个用于构建网站的框架,Drupal 是一个内容管理系统,您可以在其中“设计”您的页面,但不必编写任何代码。

            【讨论】:

            • MVC 不是一个框架。这是一种设计风格。大多数框架都试图将 MVC 名称硬塞到某些分层结构中;但是您完全可以在不使用任何框架的情况下编写 MVC 应用程序。有点聪明,你甚至不需要自己写一个小的。 (当然它更容易使用)
            • 我已经阐明了将“MVC”更改为“Microsoft ASP MVC(例如)”的意思。
            • WTF?我理解对此的第一次反对票,因为当我提到一个框架时我没有明确提到 MS ASP MVC,但现在我已经澄清了这一点,我的答案是 100% 准确和相关的,但我得到另一个否定?无论谁投了反对票,至少解释一下原因。
            【解决方案9】:

            CMS 的灵活性是有限制的,尽管 Drupal 的限制越来越小。有一个学习曲线来完成你想要的,如果你必须将它与现有的扩展一起捏造,它可能不是最优雅的解决方案。当然,您始终可以自己扩展任何 CMS 的功能,但这可能比一开始就使用好的框架需要更多时间。

            我最近遇到了同样的困境,在尝试了 Drupal 之后,最终选择了 CodeIgniter MVC PHP 框架。可能值得先用 CMS 投资几天,以调查是否可能。如果您认为这太难了,请改用 MVC 框架。

            【讨论】:

              【解决方案10】:

              您可以基于 WP 或 Drupal 构建一个可扩展的站点,但您可能会遇到基于框架设计用途的设计限制。 Drupal/WP 是核心的内容管理系统,所以如果你不管理内容,你就没有有效地使用框架。如果您发现自己构建越来越多的代码来绕过这些限制,那么您就有理由从头开始构建或使用轻量级框架。

              我目前正在使用CakePHP MVC 框架构建一个站点,我强烈推荐它。恕我直言,它满足您的所有优势。

              【讨论】:

                【解决方案11】:

                您无法真正比​​较 WP 或 Drupal 和 MVC 框架。您可以做的是决定是使用现有的内容管理系统还是推出自己的内容管理系统并比较 ROI、TCO、开发成本等。

                【讨论】:

                  猜你喜欢
                  • 2011-11-05
                  • 2016-03-22
                  • 1970-01-01
                  • 2011-10-31
                  • 1970-01-01
                  • 2012-03-17
                  • 2011-07-12
                  • 1970-01-01
                  相关资源
                  最近更新 更多