【问题标题】:Difference between Web Application Framework and a Content Management System?Web 应用程序框架和内容管理系统之间的区别?
【发布时间】:2026-01-23 13:50:01
【问题描述】:

两者是完全不同的概念吗?还是它们的含义有重叠?

说前端用Web Framework,后端用CMS,这样说对吗?

如果是,那么 Web 框架是否应该使用与 CMS 相同的技术?例如,Ruby on Rails 可以与 Drupal 结合使用吗?或者这根本没有任何意义?

【问题讨论】:

    标签: drupal content-management-system


    【解决方案1】:

    两者是完全不同的概念吗?还是它们的含义有重叠?

    Web(应用程序)框架是用于开发 Web 应用程序的较低级别的通用工具包。这可以是管​​理和处理数据的任何类型的系统,同时将其数据和服务公开给人类用户(通过 Web 浏览器和其他交互式客户端)以及通过 http 协议的机器。

    CMS 是此类应用程序的一种:用于管理网站中显示的内容的系统。通常/历史上,这主要意味着管理网站中显示的“页面”的(部分)文本,以及具有不同访问级别的用户来管理这些内容。这就是 C 和 M 的来源。

    使用 CMS,您可以管理网络内容。使用 Web 框架,您可以构建 Web 应用程序。

    说前端用Web Framework,后端用CMS对吗?

    没有。可以说可以使用 Web 框架来创建 CMS 是正确的。 两者都包含在后端和前端工作的部分。 通常,CMS 基于 Web 框架 - 有时 CMS 开发人员会在其中构建自己的 Web 框架,有时他们甚至公开该框架的 API,因此开发人员可以创建以某种方式扩展 CMS,就好像他将使用 Web 框架开发应用程序一样。 Drupal 确实做到了这一点,因此您可以基于集成框架创建真正的 Web 应用程序 - 好处是它们也很容易集成到 CMS 中。 但这(暴露 Web 框架的 API)并不是被称为 CMS 的必要标准。

    如果是,那么 Web 框架是否应该使用与 CMS 相同的技术?例如,Ruby on Rails 可以与 Drupal 结合使用吗?或者这根本没有任何意义?

    可以将两个现有系统与这两者结合起来,(​​例如,因为你想在一个由drupal管理的网站中显示一些数据,这些数据已经存在于基于Rails的系统中) . 但是由于 Drupal 还为您提供了它的底层 Web 框架的一些通用功能,因此可能没有必要。您将不得不管理和学习两个非常不同的系统,并通过它们的互操作处理所有问题。因此,如果可能,我会尝试仅使用其中一个来构建网站,并且只有在有充分理由时才将它们组合起来。

    【讨论】:

    • @StackedCrooked,Drupal 是它自己的框架,请看我的回答。
    • 对不起,我不够清楚,但我写道:“有时 CMS 开发人员在那里构建自己的 Web 框架,有时他们甚至公开这个框架的 API” - Drupal 就是这些框架之一 :)我想在大多数情况下,您不需要额外的框架。但这取决于你到底要达到什么目标——我们不知道:)
    【解决方案2】:

    说前端用Web Framework,后端用CMS对吗?

    这不是“正确的”,但也没有错。 Web 框架是一个通用概念——很多东西都很重要。 CMS 是一个特定的概念,通常构建在 Web 框架内。有时 CMS 是独立的 Web 应用程序。然而,CMS 更多时候是需要自定义演示前端的后端。

    Web 框架是否应该使用与 CMS 相同的技术?

    应该没关系。在 API 定义结束时,Framework 和 CMS 可以有任何实现。

    Web 应用程序框架(通常)必须提供 HTTP 请求或插入 Apache 之类的东西。

    CMS 是一个美化的数据库,任何明智的 API 都是好的。然而,大多数情况下,他们也使用 HTTP 作为他们的接口协议。

    Ruby on Rails 能否与 Drupal 结合使用?

    当然。纯粹主义者会反对,但他们不能合作没有技术原因。

    【讨论】:

    • 我完全不同意 Web 框架仅用于前端而 CMS 用于后端的说法。 CMS 管理可视内容并通过 http 进行响应。 Web 框架还管理对数据库和所有内容的访问,但也具有前端功能。人们可能会添加一个新的 web 框架概念,即 javaScript 框架——但这与第二段中的 web 框架定义不匹配(必须服务于 http 请求)。当然 Rails 和 Drupal 可以组合(几乎所有东西都可以),但只有在特殊、复杂的场景中才有必要/有用。
    • 尝试将 PHP CMS 与 Ruby 框架相结合似乎并不可行。
    • 这是认真的回应吗?!这些观点都不正确!
    • Jeremy,确保您可以结合 IT 中的所有内容,例如通过休息或肥皂之类的协议,因此可以交换系统,这在企业环境中可能很重要 - 当由于某些原因系统必须组合时。但是,另一方面,决定在新项目中使用这样的一对绝对没有多大意义;)
    【解决方案3】:

    Drupal 在 php 上运行,而 Ruby on rails 在 Ruby 上运行,所以它们不会一起玩。

    只是为了稍微混淆一下,Drupal 将自己描述为content managment framework,它本质上是一个带有挂钩的内容管理系统来扩展它。这确实会产生重叠。 drupal overview 比我能更好地描述这一点。

    【讨论】:

      【解决方案4】:

      它们是不同的概念。 CMS 可以构建在 Web 应用程序框架之上,但 Web 应用程序框架与 CMS 没有直接关系。它处于较低级别,为在其上构建任何类型的 Web 应用程序提供了一个平台,CMS 就是一个例子。

      【讨论】: