使用MVC框架相比使用Drupal构建大型网站有哪些优势?

9

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

  • WordPress
  • Drupal
  • MVC框架

老板确信我们应该使用WordPress,但是这个网站将会很大,有许多部分、子部分、页面和复杂的模板。

我发现很容易比较WP + Drupal,但不太容易说明使用MVC框架的附加优势(超过Drupal)。

到目前为止,我有:

  • 自定义数据存储、内容类型、语义
  • APIs / REST
  • 逻辑/用户界面的分离
  • 约定、代码结构

(显然,某些好处将根据项目类型而异。在这种情况下,它将是一个大型博物馆门户网站,具有为游客提供一些社交功能的潜力)

11个回答

33

要比较一个CMS(例如Drupal、WordPress)和一个MVC框架并不容易,因为它们属于不同的类别。

具体回答关于MVC框架相对于CMS的优势问题,MVC框架的优势在于它允许你从头开始设计符合自己需要的Web应用程序。

至于你特定的情况:

如果现有的CMS(例如WordPress或Drupal)符合你的需求,那么使用它们将是一个很好的选择。这样可以避免重复发明轮子,节省时间,并且CMS可以非常用户友好(程度各异)。如果你计划将内容更新的任务委托给非技术用户,那么选择一个适合新手的CMS可能比使用MVC框架编写自己的应用程序更为明智,这可能导致需要更多技术专业知识才能维护的应用程序。

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


1
+1 这是一种不恰当的比较。 - Wayne

9

感谢大家的回答。我为使用框架或Drupal做了辩护,但决定使用WordPress,或者至少开始在WordPress上构建并观察效果。

顺便提一下,以下是我的笔记:

WORDPRESS / MU

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

一个个人出版工具,博客平台

  • PHP +
  • 许多可用的小部件 +
  • 多作者支持/工作流程 +
  • 社交功能(BuddyPress)+
  • 集成(BBPress等)+
  • 易于使用,通用+
  • 简单的用户界面+
  • 能够管理多个博客(使用WordPress MU)+
  • 只有2种内容类型(帖子或页面)-
  • 不是真正的“CMS”/博客思维方式-
  • 不灵活的层次结构(没有章节)-
  • 有限的语义学-
  • 作者的模板选择有限-
  • 混乱的代码-
  • 安全性/漏洞-

DRUPAL

http://drupal.org/

一个内容管理框架,CMS构建工具,用于构建网站。适用于“非程序员”建立网站,可构建模块。

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

框架

它允许您从头开始设计所需的精确Web应用程序。

  • 可扩展性 +
  • 控制语义、数据存储 +
  • API / 数据 / REST / Web 服务 +
  • 使用当前的、现代的工具,尖端技术 +
  • 逻辑/呈现分离(MVC 设计模式) +
  • 约定 - 结构化代码、工作流程 +
  • 重用/组合内容 +
  • 允许开发多个 UI,而不接触业务逻辑代码库 +
  • 强大的 API / 标准 / 模式 +
  • DRY 原则(不要重复自己) +
  • 学习曲线 -
  • 需要设计自定义 UI -
  • 是否过度?(取决于目标)-

6

你不能真正比较WP或Drupal和MVC框架。你可以决定是否使用现有的内容管理系统或自己开发,并比较投资回报率、总体拥有成本、开发成本等。


4

作为一个在过去十年中一直从事各种自制CMS系统工作的人,我的建议是不要自己开发。如果您有一些独特的应用程序,那么MVC是一种很好的编写Web应用程序的方式,但它的易用性无法抵消成千上万小时的构建和测试OSS的数百万页面点击量。

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


2
您可以基于WordPress或Drupal构建一个相当可扩展的网站,但是您可能会遇到基于这些框架设计限制的设计限制。Drupal/WP在其核心是内容管理系统,因此,如果您不管理内容,则无法有效使用该框架。如果您发现自己需要编写越来越多的代码来绕过这些限制,则有理由从头开始构建或使用轻量级框架。
我目前正在使用CakePHP MVC框架构建一个网站,并且我强烈推荐它。在我看来,它满足了所有您的优点。

1

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


0

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


MVC不是一个框架,而是一种设计风格。大多数框架会试图将MVC名称拟定为某种分层结构;但是你完全可以在不使用任何框架的情况下编写MVC应用程序。稍微聪明一点,甚至不需要自己编写一个小框架。(当然使用框架更容易些) - Javier
我已经澄清了我的意思,将“MVC”更改为“Microsoft ASP MVC(例如)”。 - Peter Morris
什么鬼?我理解第一次负评,因为在提到框架时我没有明确提到 MS ASP MVC,但是现在我已经澄清了,我的回答是100%准确和相关的,可是我又得到了另一个负评?下投票的人,请至少解释一下为什么。 - Peter Morris

0

CMS的灵活性是有限的,但是Drupal的限制正在变得越来越小。要实现你想要的功能需要一定的学习曲线,如果你必须与现有的扩展程序一起使用,可能不是最优雅的解决方案。当然,你总可以自己扩展任何CMS的功能,但这可能比一开始就使用一个好的框架需要更多的时间。

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


0

我认为使用MVC框架来自己开发而不是使用WP或Drupal的优点有:

  1. 你只编写所需的代码。WP和Drupal会在服务器上存在许多你不需要的东西。
  2. 开发人员可以理解整个代码库,因为他们是从头开始编写的,这使得以后更容易维护。
  3. WP是一个庞大的代码库(我不知道Drupal),一旦你需要一些CMS不支持的东西,你就必须深入挖掘很多代码。
  4. Wordpress的逻辑/用户界面分离很糟糕 - 我是说真的很糟糕。
  5. 更灵活。CMS非常好用,只要你不试图让它们做它们不打算做的事情 - 否则它们就会成为一个痛苦。

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

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


希望投反对票的人能够在评论中说明他们投反对票的原因! - starsinmypockets

0

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

现在我已经开始使用Drupal进行开发,对于更大的项目来说它确实更好(尽管与WP相比设置一个简单的博客需要更多的时间)- 它有着出色的模块化架构,使我能够通过编写模块而不是黑客攻击核心来解决任何请求/问题。

至于MVC / Drupal:看看Drupal做了什么,如果你可以通过修改Drupal来获得你想要的结果,那么它很棒,并且将通过不必编写通常的内容(用户注册,输入消毒,强大的表单处理和验证,主题基础设施,存储抽象,Web服务抽象层(服务模块)等)来节省你很多时间。

反 Drupal:本质上很慢,因为它是模块化的(我正在呈现一个项目列表,让我们称所有实现 theme_list 的模块来查找它们是否想要修改它),所以如果你要制作下一个 Twitter,请使用快速的 MVC 框架。对于已注册用户的内容缓存仍需要大量工作才能发挥作用(应该在核心中有一个标记缓存),因此通常有用户登录的网站可能会很慢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接