为什么选择一个已建立的CMS,而不是从头开始构建一个?


13

在接下来的几周中,我的很多研究将针对不同的CMS。我已经简要介绍了Episerver和umbraco。在阅读这些系统时,我不禁会认为,无需学习许多(相当大的)CMS平台的细节和结构就可以实现提供内容管理功能。

过去,我得到过一些项目,这些项目使我作为开发人员的角色必须与编辑人员的角色保持独立(有意义)。即,我的任务是开发网站的设计和功能,以及客户的工作来更新内容。我通过实现一种“门户”来实现这一点,在该门户上有几个页面可以接受文本输入和图片上传等(基本上,他们想要的任何内容),然后将这些新内容记录到数据库中,然后通过设计,后面的代码会将所有这些信息从数据库中读取到相关控件(例如中继器)中。

对我来说,这已经成为我的客户管理内容以与我的解决方案一起部署的足够有效的方式。我知道我错了-CMS比完全建立的CMS更可取-但除了成本问题之外,为什么呢?


1
当别人已经为您完成所有这些工作时,为什么还要自己经历开发(设计,编码,调试,测试)的所有痛苦呢?
PhilPursglove 2012年

5
有关如何学习这类公司CMS的说明和教程,文档上和文档上都有网站。当我实际上可以在完全控制的情况下从头开发自己的时候,为什么还要经历学习和习惯于实现这些痛苦的所有痛苦?

1
经历学习之苦的最大原因是,您也跳过了故障排除的麻烦(希望无论如何)。而且,如果您正在寻找文档,希望这也意味着当您必须培训某个人时,您要做的文档会少得多。
sclarson 2012年

旧的CMS安装方法提供了更新的技术,您无需真正学习任何知识,就可以使用自己的语言进行编程。我自己建造了一个主机,是因为我厌倦了此安装问题或使用了一些对设计师有用的cms东西。我的个人资料中有一些处理方法。
杰森·塞布林2012年

@sparks,对其他人的错误进行故障排除要比对自己的错误进行故障排除还要烦恼100倍。
Pacerier,2015年

Answers:


9

您可以使用现有的CMS来摆脱对您不想跟踪的用户来说可能很重要的功能。

EPiServer,Umbraco,Orchard等都具有内置选项,用于跟踪诸如版本,与其他内容链接的内容,如何构建表单等内容。此外,它们还具有事件,您可以挂钩将其修改为你觉得合适。

他们通常已经完成了数千小时的故障排除工作,所以为什么不利用它们。尤其是在免费或开放源代码版本中,从字面上看,您只花了一点时间,但我几乎可以保证,学习它们的API所花的时间少于您花费在重新创建该功能上的时间。

因此,除非您不需要重建它们提供的功能,否则为什么不使用已知良好的功能呢?

这只是现有功能的简要列表,您不必自己实现:

  • 内容版本控制
  • 工作流程
  • 页面链接状态报告
  • 所见即所得的编辑器定制
  • 内容建模(页面类型/文档类型)
  • 内容检索API
  • 编辑和开发人员的文档/培训
  • 对象缓存策略
  • 用于搜索的内容查询系统
  • 内容层次结构(在CMS内容始终为树形形式的情况下)
  • 编辑者观点
  • 管理员意见
  • 访问控制

我将其标记为答案,因为它是选择上述CMS所能获得的最全面的好处。我认为可能需要我全力以赴,才能充分体会其中的好处。

如果您不重视对自己的数据的控制,不拥有服务器或不了解自己拥有的软件与租用软件之间的区别,那么建立自己的系统仅是云系统的“现状”。这些对您的业务隐身广告对我来说听起来很困惑。如果您真的认为基于云的SOS CMS对于OP的情况是一个不错的选择,请使其成为答案并让社区对其投票。
CodexArcanum 2012年

@CodexArcanum-不要认真对待emeraldcode所说的任何内容。他们是提供这些服务的公司的首席执行官。因此,基本上,他们的帐户是一个巨型广告。
Ramhound 2012年

4

明确的答案,哪些更好。这取决于您的需求,结构,成本,人力和其他许多因素。

预制/已建立的CMS

优点

  1. 节省了大量的时间。已经存在多年的一些CMS投入了大量的工时。您可能不需要预制CMS中10%的功能,但是无论节省时间还是不免费!
  2. 节省很多钱。
  3. 一般有一个巨大的功能,将量可能为您的工作需要。

缺点

  1. 执照。您需要遵守所使用的预制CMS的许可。这可能没什么大不了的,但是也许您想更改许可证禁止的内容,或者可能会禁止在生产环境中使用它。
  2. 沉重的。由于CMS很可能会量身定制,以覆盖尽可能多的受众。也许您有服务器限制,或者不想为基本的内容管理加载过多的脚本。
  3. 可能以非模块化方式编写。假设您实施了一个预制的CMS,并且网站已经准备就绪,可以让客户注销并说我们可以部署!然后,您将其发送给客户,他们说:“哦,我想将此功能添加到CMS!” 然后,如果您选择的CMS非常复杂或不是非常模块化,则在实现其功能请求时可能会遇到问题,或者可能会花费大量时间。
  4. 继承他们的错误。您将继承CMS上的所有现有错误。这不是问题,因为它们通常很容易更新,但是如果您对其中的部分进行了大量修改以添加功能怎么办?

自制/自定义CMS

优点

  1. 根据您的需求量身定制。您将只能集成所需的内容并保持较高的可移植性。
  2. 用您的语言写成。也许您有一个ASP.net MVC网站,并且所有CMS都是用PHP编写的,但是您想要一个使用MVC和razor视图引擎(idk随机示例)以C#编写的网站。维护一个统一且没有庞大的PHP / JS / etc的网页要容易得多。CMS位于所有C#代码中。
  3. 你的你/你的公司拥有其100%的,你可以用它在许多应用中,只要你想的w / o购买额外的许可,等

缺点

  1. 耗时,因此很昂贵。根据投入的时间,经验等,您可以在CMS上花费任何时间1到20天。

如果您有时间,并且没有任何预制系统符合要求或过于复杂,那么除了耗时的因素之外,我认为没有理由不自己构建系统。


2
当您取消时间和金钱的限制时,几乎没有任何理由不做某事。
sclarson 2012年

1
@sparks现实世界项目总是有这些限制;)

1
我的评论有点像我所说的。说“耗时”的糖的缺点掩盖了从头开始写作所涉及的大量工作。您编写代码,然后必须进行文档/培训,并为所编写的每个功能都拥有所有调试/故障排除时间。
sclarson 2012年

2

您可能也想在讨论中添加Web安全性。如果您从头开始构建CMS,则很可能会遭受许多攻击(例如,参见https://www.owasp.org/index.php/Top_10_2010-Main)。另一方面,如果您使用现有的CMS,通常它将更安全,但另一方面,它的漏洞将更加普遍。

因此,在安全性方面要进行权衡,但是我认为,更新良好的“标准” CMS比自制的CMS更安全,但是在某种程度上取决于您选择哪种标准。

但是,如果您使用“标准” CMS并进行了大量修改,则可能会破坏升级路径,最终导致无法更新CMS,因此您很容易受到攻击。


1

需要考虑的一件事是,您的CMS可能已过时,不一定是语言上的,而是功能和设计上的。下一批程序员可能不希望使用这些功能上的约束,而就设计而言,这可能会破坏他们的形象!

如果它是一个简单的网站,或者您没有太多时间专用于此,则CMS听起来很棒!


1

创建自己的CMS的首要原因是能够随时间添加自己的功能。借助现成的CMS,您可以与创建它的第三方的体系结构和技术联系在一起。

例子:

  • Umbraco-依靠XSLT进行布局-#fail

  • Orchard-Web Forms开发人员的过度设计和学习曲线

...等等。


1
Umbraco不需要XSLT,但这是一个选择。
sclarson 2012年

您的意思是只能使用CSS?Umbraco是否也拥有自己的专有标记语言?像SkonJeet一样,我也必须在一个阶段进行研究。
IrishChieftain

2
Umbraco有一个webforms和一个mvc选项。它从不要求您使用自己的专有语言。您一直都在asp.net中,并且可以随时选择查询其数据存储并为其编写控件。
sclarson 2012年

1
我使用的另一个CMS是N2,它的代码非常优雅,以至于您无法理解。他们的观点是,代码应该记录自己,这是一个完整的Bee Ess。
IrishChieftain

1
我已经在Umbraco中完成了多个网站,并且从未使用过XSLT。据我所知,在新版本中它甚至不再是内置选项。但是,XSLT显然非常强大(对于可以理解它的6个人来说!)。
EJ Brennan

1

我会说,坚持核心业务也是一个很好的论据。仅仅因为您在制造汽车并不意味着您也应该自己制造燃料。那是一个完全不同的产品,由于您的关注点将转移到其他地方,因此其他人做得更好的机会很大。新开发的系统中的错误也不应被低估。一个已经存在一段时间的cms将会有一些错误,但是没有一个接近您的新bug的数量。多年来,现有的cms已通过数百万用户的测试。


“您的关注点将转移到其他地方”-大声笑
蒂姆·阿贝尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.