9

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

  • WordPress
  • 德鲁巴
  • 一个 MVC 框架

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

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

到目前为止,我有:

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

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

4

11 回答 11

33

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

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

至于你的具体情况:

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

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

于 2009-02-06T14:08:34.170 回答
9

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

FWIW 这里是我想出的笔记:

WordPress / 亩

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 / 标准 / 模式 +
  • DRY(不要重复自己)+
  • 学习曲线 -
  • 需要设计自定义 UI -
  • 矫枉过正?(取决于目标)-
于 2009-02-17T13:05:50.970 回答
6

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

于 2009-02-06T13:15:58.283 回答
4

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

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

于 2009-02-06T15:40:30.443 回答
2

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

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

于 2009-02-06T13:36:57.197 回答
1

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

于 2011-08-05T20:07:27.120 回答
0

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

于 2009-02-06T13:21:08.603 回答
0

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

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

于 2009-02-06T13:54:04.247 回答
0

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

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

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

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

于 2009-02-06T16:23:35.770 回答
0

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

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

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

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

于 2009-02-13T19:54:45.010 回答
-1

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

于 2009-02-09T03:49:00.007 回答