代码之家  ›  专栏  ›  技术社区  ›  meleyal

与Drupal相比,使用MVC框架构建大型网站有什么优势?[关闭]

  •  9
  • meleyal  · 技术社区  · 16 年前

    我正在写一篇关于构建我们新网站的3种技术选择的比较:

    • Wordpress
    • 猪跑
    • MVC框架

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

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

    到目前为止,我有:

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

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

    11 回复  |  直到 16 年前
        1
  •  33
  •   Ayush Pateria Jeff    11 年前

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

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

    至于你的特殊情况:

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

    然而,如果你设想网站需要大量的自定义业务逻辑,而这些逻辑在CMS的约束下很难实现,那么你可能需要使用MVC框架。

        2
  •  9
  •   meleyal    16 年前

    谢谢大家的回答。我提出了使用框架或Drupal的理由,但最终决定我们应该使用Wordpress,或者至少开始在Wordpress上构建,看看进展如何。

    FWW以下是我提出的注意事项:

    WORDPRESS/亩

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

    个人出版工具、博客平台

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

    内容管理系统

    http://drupal.org/

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

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

    框架

    它允许您从头开始设计所需的确切web应用程序

    • 可扩展+
    • 语义控制、数据存储+
    • API/数据/REST/Web服务+
    • 现代工具,尖端+
    • 逻辑/表示分离(MVC设计模式)+
    • 惯例-结构化代码、工作流程+
    • 重复使用/组合内容+
    • 允许在不涉及业务逻辑代码库的情况下开发多个UI+
    • 稳健的API/标准/模式+
    • DRY(不要重复)+
    • 学习曲线-
    • 需要设计自定义UI-
    • 过度杀戮?(取决于目标)-
        3
  •  6
  •   Anton Gogolev    16 年前

    你无法真正比较WP、Drupal和MVC框架 要做的就是决定是使用现有的内容管理系统还是推出自己的内容管理体系,并比较投资回报率、总体拥有成本、开发成本等。

        4
  •  4
  •   Jeremy French    16 年前

    作为一个在过去十年中大部分时间都在使用各种自制CMS系统的人,我的建议是不要自己动手。如果你有一些独特的应用程序,那么MVC是编写web应用程序的好方法,但它的易用性并不能抵消OSS测试所花费的数千个工时和数百万次页面点击。

    Drupal不仅是一个很好的CMS系统,也是一个构建定制web功能的很好的框架,所以你可以免费获得很多东西,只需要花时间在你的网站上。(在你学会如何在drupal系统上编码之后)

        5
  •  2
  •   spoulson    16 年前

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

    我目前正在构建一个网站 CakePHP MVC框架,我强烈推荐它。依我之见,它满足了你的所有优势。

        6
  •  1
  •   John Styles    14 年前

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

        7
  •  0
  •   Stuart    16 年前

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

    我最近也遇到了同样的困境,在尝试了Drupal之后,最终选择了CodeIgniter MVC PHP框架。也许值得先花几天时间研究CMS,看看是否可行。如果你认为这太难了,那就使用MVC框架。

        8
  •  0
  •   Peter Morris    16 年前

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

        9
  •  0
  •   Steve Claridge    16 年前

    我想说,使用MVC框架而不是使用WP或Drupal来滚动自己的优势是:

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

    如果你要推动MVC框架,那么你需要仔细考虑你会选择哪一个——它们并不是生而平等的。其中一些会像CMS一样对你的代码和网站布局施加限制。

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

        10
  •  0
  •   rene    11 年前

    我强烈建议你不要使用WordPress,它非常适合有一些静态页面和一个博客/新闻部分的网站,但我基于WP 2.2制作了一个双语产品网站,这是一个主要的PITA,需要大量的黑客攻击和编写数据库代码到模板中才能实现。

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

    至于MVC/Drupal:看看Drupal是做什么的,如果你可以通过修改Drupal来获得结果,那么它很棒,并将为你节省 许多 通过不必编写通常的东西(用户注册、输入净化、健壮的表单处理和验证、主题化基础设施、存储抽象、web服务抽象层(服务模块)等)来节省时间。

    反对Drupal:由于模块化(我正在渲染一个项目列表,让我们调用所有实现theme_list的模块,看看他们是否想修改它)架构,固有的速度很慢,所以如果你正在制作下一个推特,那就换一个快速的MVC框架吧。为注册用户缓存内容仍然需要大量工作才能有效(标记缓存应该是核心),因此用户通常登录的网站可能会很慢。

        11
  •  -1
  •   Rimian    16 年前

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