版权所有:(xiaodaoxiaodao)蓝小刀    xiaodaoxiaodao@gmail.com

http://www.blogjava.net/xiaodaoxiaodao/archive/2007/09/24/147911.html         

转载请注明来源/作者

 

关于使用alfresco开发WCM的思考

 

关于WCM的开发首次接触,使用alfresco一段时间了,感觉WCM其实就是一个抽象的过程,实际门户网站的开发中,可能由UI团队提供一些静态html页面,然后把这些静态页面抽象成相应的模板(在alfresco中表现为 FreeMarker/XSLT/XSL-FO + XSD 的组合),然后再根据模板生成静态html页面,即整个流程如下:

 

静态页面 ——〉抽象:模板——〉具体化:静态页面

 

又想起武侠小说里面的主角,刚开始什么都不会,一招一式都是跟别人学,这就好比先写一个个静态页面,然后从招式中找出共同点,发现所有的招式也不过如此,无非是动静结合、攻守兼备、刚柔并济,于是就抽象出了一个个模板,然后根据模板又可以创造出新的招式(静态页面)。

 

和设计模式中工厂的概念联系在一起,这里的模板其实很象一个工厂,这个工厂就是造静态页面的,那么,这个工厂又是怎么建立起来的呢,自然,你要先给我一件产品,这里的产品就是UI团队提供的静态html页面了,我先看看这些静态页面(如新闻)需要哪些东西,比如标题、图片、新闻内容,这样我创建工厂(模板)的时候就可以给这个工厂一个清楚的,定义,定义只要由这个工厂创建的产品(静态页面),就最少包括三个元素:titlepicturecontent,这样以后产品的生产过程就会流程化,大量节约了每个产品(静态页面)的生产时间(开发时间)。

 

对于需要经常更新的门户网站来说,只要提供了一个新闻页面,就可以利用其生成相应的模板,以后如果需要再次更新这个新闻页面,就可以利用生成的模板直接生成,对于sohusina这样大型的门户网站来说,这种方法大大节约了新闻录入人员的时间,在alfresco中,这个模板表现为一个可视化的新闻录入表单,填写表单信息,然后提交,相应的新闻页面就直接在后台生成,而利用相应的WSF提供的标签很容易可以在前台显示最近更新的新闻。

 

访问一下sohu的新闻,发现它的目录结构也比较有规律,例如:http://news.sohu.com/20070923/n252304978.shtml,给每天建一个目录,然后在该目录下生成当天的新闻,这样看起来目录结构比较清楚,以后也方便查找,而且避免了在一个目录中文件过多的问题,alfresco中使用${date?string("yyyy-MM-dd")}做到这一点。

 

感觉alfresco使用起来比较麻烦,用来开发涉及到的知识点比较多,如XSL/FO语法、FreeMakerXHTML1.0规范、JSP规范、JSP语法、SSI指令、alfresco自定义标签使用等等,上手比较困难,而且实际调错也比较麻烦,可能要经常借助于XMLSpyWinMerge等工具,对于开发人员来说创建web formweb content感觉也是一件繁琐的事情。

 

个人不是很喜欢这个东西,感觉比较浪费时间,而且alfresco一旦启动,CPU占用率比较高,对于WCM来说要启动两个tomcat,而且最重要的是目前国内没有相关的中文使用和开发文档,开发的话只能借助于它的官方wiki http://wiki.alfresco.com/wiki/Main_Page ),WSF目前也不算很成熟,研究它实在是一件吃力不讨好的事情,希望能有越来越多的人参与到其中吧。

 

 

 

版权所有:(xiaodaoxiaodao)蓝小刀    xiaodaoxiaodao@gmail.com