涉及内容管理系统(cms)时,web开发者总是面临“买还是做”的困境。你是买一套商业cms,还是使用某个开源cms?是否应该基于一个开源cms框架来定制和构建自己的cms?本文解释了每种方法的得失。
历史回顾
就在不久以前,客户如果想进行内容管理,但没有购买商业cms的预算,开发者就可能卖给客户一个“维护包”,它其实是一个 html代码生成器,可以用它定期人工修改网站。原因很简单:人工维护要比购买一份cms许可证或者进行内部cms开发的成本低廉得多。但时至今日,虽然偶尔仍有必要进行人工维护,但大多数客户希望的都是一套完整的cms。
cms已成为现代web开发的一个基本组件。cms之所以得到大规模采纳,很大程度上归功于高质量、相当便宜的cms工具的涌现。人们不久前还只能选择由interwoven或者vignette等厂商提供的昂贵的商业方案。今天,已经有许多价格合理的商业cms应用程序可供选择。另外,还有数量更多的免费开源方案。
商业cms
除了商业支持和良好定义的服务等级协议之外,购买商业cms工具还有其他许多明显的好处。商业cms工具也许已针对你的需求进行了体贴的设计,速度也可能超过开源 cms。相较于开源方案,商业cms产品的文档和培训通常做得更好。另外,普通人一般认为商业软件比开源软件更有“安全感”。如果你或者你的客户有实力购买这样的一个工具,并有足够的预算购买相应的许可证,那么商业cms通常是最保险的方案。
拒绝商业cms的惟一理由就是价格。商业cms的许可证费用可能高得出奇,定制/集成的费用也是一笔很大的开支。商业cms系统几乎不可能与“经济型”方案沾边。
开源cms
许多用户最初之所以尝试一种开源方案(包括我自己),原因也是价格。开源cms要比商业cms便宜得多。和许多开源程序一样,由于源代码是开放的,所以进行定制的机会要比商业cms多得多。取决于你对cms的要求,也许能在现有的开源cms中找到一款最适合自己的。
反对实现开源cms的理由有许多,但最终都归究于一点:不可靠。产品支持、文档和用户培训通常要取决于那些义务开发者的心情(这不能怪他们,他们本来就没有任何承诺)。所以,通常没有固定的品牌名称或者客服部门来保证cms的稳定性和安全性。基于这个前提,企业级的工作流管理就难以实现,而且产品实现起来并不省心,所花的时间要比同等级的商业cms产品多得多。
基于开源框架的定制cms
你的客户总是提出各种各样的要求。作为 web开发者,你感兴趣的是为客户创建定制的、自有品牌的方案。如果基于开源cms框架来定制一个“新的”cms,就可缩小纯开源cms产品与商业cms 之间的差距。例如,zope content management framework已经将工作流作为框架的一部分。它也许并不是特别可靠,不能满足你的特殊要求,但它起码是可定制的。可靠的内容管理框架将为你的后期定制工作打下一个良好的基础,最终满足客户的特殊要求。
一些人之所以反对基于开源框架来构建定制cms,同样是因为可靠性。如果定制cms,同样要进行繁重的内部开发,这会进一步延长实现时间,而且你的开发团队需要付出更多的精力来提供产品支持。
“做还是买”的复选表/记分卡
我和客户沟通时,感觉最要紧的5个问题是:
价格
时间
文档/培训
支持问题
定制能力
表a有助于你挑选出一个特定的cms开发方案。除此之外,vignette网站提供了一个投资回报(roi)计算器,它能帮助你判断所选的方案是否在自己的经济承受范围之内(但由于那是一个厂商网站,所以对上面的任何建议都要留一个心眼儿)。
表a 问题 商业 开源 开源框架 产品提供了你需要的所有功能吗? 是;
如果否-> 是; 如果是-> 自己构建 你有开发者/支持人员来为产品提供k8凯发的技术支持吗? 花钱买支持 <- 如果否 <- 如果否 未来6~18个月的使用过程中,需求会发生改变吗? 继续花钱 也许能定制 肯定能定制 未来6~18个月中,用户数量会增加吗? 继续花钱谨慎乐观 越多越好
最后的决断
具体选用哪种cms部署方案要取决于多方面的因素,但你的终极目标肯定是希望获得最佳的投资回报(roi)。为此,你需要综合考察自己的需求、资源以及在特定情况下的具体要求。以我接手的一个合同为例,我得到的预算不高,客户提出了很高的要求,有充足的开发者以及合理的期限。所以,我决定基于一个框架来定制一个cms。虽然整个过程有点儿费劲,但对我们来说却是最合适的方案。一些昂贵的cms方案看起来真的不错,但现实就是现实;你只需针对实际情况做出最佳选择就好了。