CMS和框架之间的区别是什么?以及如何根据某些要求在它们之间进行选择


What is the difference between a CMS and a Framework? and how to choose between them for certain requirements?

我目前正在使用Zend Framework,对此我非常满意。我想知道的是,在什么样的需求下,使用像Joomla或Drupal这样的CMS更好。

考虑到我目前的项目,它是一个门户应用程序。它完全是在Zend从头开始制作的。然后有人来评论说,它是在drupal中实现的,你可以为你努力构建的东西获得插件。

所以我需要一个指导方针,在启动阶段如何在CMS和框架之间进行选择?

您的问题是使用现成的CMS还是使用框架创建自己的系统。正确的答案取决于以下内容:

  • 预算
  • 您将拥有的用户数量(长期性能问题)
  • 进一步维护
  • 您希望在网站上提供的详细信息的总数
  • 使用第三方/自定义API实现
  • 需要高自由度的特殊/自定义功能(例如:StackOverflow奖励点数和坏蛋)

由于这是我们大多数人经常面临的问题,以下是现成的CMS与框架的利弊:

现成CMS

Pros

  • 更快的启动和开发时间,如果您的项目通常符合CMS提供的内容
  • 可用的模块和主题
  • 由社区支持,这意味着新功能、错误修复、支持、教程等将免费提供给您
  • 统一的标准集-在现有的CMS网站上继续工作比使用其他人的自定义应用程序更容易(这是相对的,但关键是,在使用现有CMS的网站上,大多数东西/设置对你来说都很熟悉,而在自定义应用程序中,以前的开发人员有更多的自由)
  • 安全性是您不需要担心的就像在自定义应用程序中一样

缺点

  • 如果您的要求非常具体,则需要覆盖系统的默认工作流;在某些情况下,这可能很棘手,会让你花更多的时间写自己的东西
  • 模块/插件中的冗余代码
  • 性能-现成的CMS很少能像定制的应用程序那样快
  • 不适合每个大型网站(除非你能适应CMS提供的几乎所有内容)
  • 在某些情况下学习曲线陡峭(Typo3,Drupal)

自定义应用程序

Pros

  • 由您定义应用程序的结构和逻辑
  • 应用程序设计是专门为您正在进行的项目而设计的,因此没有多余的代码
  • 做任何你想做的事的自由

缺点

  • 昂贵-在大多数情况下,您/您的客户需要更多的钱来购买自定义应用程序
  • 进一步的维护将更加困难
  • 结构的更改和修改可能非常耗时
  • 如果你不使用CMF,你将不得不在某些方面重新发明轮子

底线

花几天时间了解一下CMS,比如:

  • Drupal-我的第一个推荐;适合中大型网站;良好的社区;中等/陡峭的学习曲线
  • WordPress-我的第二个推荐;适合中小型网站
  • Typo3——企业级系统;非常复杂,与一个可以在项目中独立使用的框架相结合
  • Joomla-我个人不喜欢它,也不推荐它,因为业余插件,但它很受欢迎
  • SilverStripe
  • MODX
  • 混凝土5

我认为,任何更大、更严肃的项目,都应该是定制的,因为它将至少有1-2名程序员在任何时候负责系统。只有当它完全符合现有CMS已经提供的内容时,才有例外。

希望这有帮助:)

看看StackExchange.com上CMS和web开发框架之间的区别。

CMS内容管理系统)用于管理网站上的内容。它通常提供工具,使这项任务尽可能简单。

CMS示例:Drupal、Joomla、DotNetNuke等

框架就像一组库/类来构建web应用程序。许多框架为数据库访问、模板引擎等提供库。这样,您就不必重新发明轮子。

CMS通常建立在一个框架之上。

框架示例:CodeIgniter、CakePHP、Kohana。。。

@Voles提到了什么是CMS和框架

所以你的问题是"如何在CMS和框架之间选择的指南"

想要建立一个博客或一个简单的网站?

去Wordpress,Drupal等

想要建立下一个facebook或stackoverflow或你自己的应用程序,当前的cms对你来说很难学习或功能有限?

然后选择一些框架或定制的框架。确保你知道如何以正确的方式构建它。

你可以看看http://cmf.symfony.com/而且

希望一切都清楚。

除了CMS和框架的所有优点和缺点之外,根据我的说法,您需要在启动时研究您的需求。列出应用程序中需要的模块。现在检查一下你所知道的CMS中有多少模块可用,比如drupal、joomla、wordpress等,还检查一下你在这些可用模块中需要多少定制,以及你可能需要根据你的需求开发的定制模块。如果你发现,通过最小的定制,你可以使用任何特定的CMS,然后去它。

但如果你的应用程序可能比我建议的更复杂,那么就选择任何MVC框架,比如Zend、Cakephp、codeigner等。

是的,任何你熟悉的CMS或框架都有另一件事。

框架就像一个库。通过使用这个库,我们可以开发新的东西。CMS作为名称是否意味着它是管理内容的内置来源。就像wordpress一样,我们不需要开发任何东西。

Framework是CMS的创建者,CMS基本上是一个专注于内容管理的内容管理系统,只需几行代码和逻辑就可以为您完美设置网站或小型应用程序

而在框架中,它比CMS更深入,你必须从头开始编写或使用现有的库,这些库通常用于制作大型应用程序。希望这能帮助

据我所知,CMS和MVC都是带有编码库的web应用程序框架。CMS对初学者来说更容易使用,因为它有预先准备好的功能,所以你不需要复杂的编码。我在Wiredelta的文章中找到了有用的信息,也许这也会对你有所帮助:https://blog.wiredelta.com/cms-mvc-framework-comparison/

差异

CMS:A content management system (CMS) is computer software used to manage the creation and modification of digital content (content management).

框架:A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs.

框架提供了一个基本的web应用程序结构和一组工具,让你可以构建自己的web应用,甚至CMS。

如何在它们之间进行选择

多年来,我一直在研究不同的开源CMS(很多是CMS Made Simple,Prestashop。有点是Drupal,Wordpress)和框架(很多是Symfony,有点是Zend Framework)
我的结论是:

  • 如果您的需求可以通过开源CMS的功能来满足,并且只有少数自定义需求,请使用该CMS
  • 如果您的需求很复杂和/或更为自定义,请使用框架

使用开源CMS时的问题

  • 插件通常不能提供您需要的所有功能
    • 社区插件
      • 功能有限。如果你想扩展这些功能,你最终会复制或修改插件,使它们更难更新
      • 可能与其他插件不兼容,甚至与您的CMS版本不兼容
      • 更难调试,因为它不是您团队的干净代码
      • 可能不是完全免费的,并附带额外费用
      • 你花了很多时间搜索和评估插件
    • 自己的插件
      • 有限的CMS功能(例如,缺少依赖项注入)可能导致非结构化编码
      • 当你的插件变得越来越大和复杂时,你可能会开始问自己,为什么不从一开始就使用框架
  • 高学习曲线,取决于文档、使用的技术以及必须遵循的体系结构规则
  • 高度依赖社区
    • 您可能无法从社区获得快速答案或解决方案
    • 你可能需要深入调试,几乎无法阅读插件或CMS代码
    • 自己的修复程序使更新变得困难
  • 可用性
    • 管理员可能会对默认功能感到不知所措,并可能为开发人员生成更多的支持任务,其中管理员只需一个简单的内容编辑器就足够了