我家有女初长成,养在深闺人未识----写在SpaceBuilder开源前夜

我家有女初长成,养在深闺人未识

----写在SpaceBuilder开源前夜

   

写在前面SpaceBuilder今日开源,项目比较大,不容易上传到这里,欲下载和体验 请登录SpaceBuilder.cn

    很久就想写点东西了,关于SpaceBuilder。之所以没有动笔,还是因为胆怯--害怕有两点:1.SpaceBuilder目前虽然经过了近2年的 开发和测试,但是里面还是有不少未知的bug,仓促地推出去,害怕被别人骂,同时更害怕“污染”大家的眼睛。 2.SpaceBuilder太大了,而自己语言表达能力有限,害怕不能把这个新生命“准确地”介绍给大家。今天下午,跟大连的牛兄沟通的时候,该兄说 “做了一件漂亮的衣服,压在箱子里,跟没有这件衣服有什么区别?” ,回头想了一下,此言也是,更何况 丑媳妇早晚要见公婆,产品好还是不好,一切都是用户说了算。所以也就有了这篇文章,把我们家初长成的女儿,做为“丑媳妇”介绍给大家。

       当然还是先说,SpaceBuilder是什么?从名字上,大家也很好理解,“空间(Space)"+ "构建(Buider)"。具体点讲它就是 "采用Web2.0思想、asp.net2.0技术开发的社区门户产品。是一套Web2.0全面解决方案,包含:个人门户、博客、相册、网摘、文件、圈子、论坛、活动、消息中心、SNS等功能,可以根据用户需求任意组合、无缝集成。它采用了业内领先的技术体系架构、隐私保护功能、用户评价体系、优异的缓存技术、全文检索技术。可以承载千万级的数据,具备优异的扩展性并提供丰富的API,方便用户进行定制开发或者二次开发。" 。当然这个答案还是比较笼统,再深入一点跟大家一起分享一下:

       在2004年的某一天 ,O'Reilly公司总裁提姆·奥莱理(Tim O'Reilly)先生在一次头脑风暴中首次提出了“Web 2.0”的概念。几年之内,web2.0风暴便席卷整个业界。这个蔓延速度,是 提姆 先生未曾料到的。国外的Flickr如此成功;国内 新浪博客 也让其他几个门户提供商煞是眼馋;还有那个BT 让我们每天原本无聊的时光开始变得精彩。。。 所有的这一切都是 提姆先生的 Web2.0 在“作怪”。那Web2.0究竟是什么呢?如果你google一下的话,恐怕也很难找到标准答案。所有描述Web2.0的答案,约莫都是如下格式: Web2.0是相对于Web1.0提出的新概念,在Web1.0时代给我们提供了***。。。,而Web2.0时代给我们提供了博客,圈子,社会网 络。。。--网络上大约就是如是说。回过头来,我们认真思考分析了一下,整个Web2.0都在关注一件事情,也可以说这个正是Web2.0概念的核心所 在,那就是 “改善用户体验,提高用户参与”。

       为了改善用户体验,我们 旧瓶装新酒,搞出了一个 AJAX,当然还有很多,比如DIV+CSS取代Table布局。。。;为了提高用户参与,我们推出了blog让大家 尽情的自我表达,我们推出了 SNS(社会网络)模拟现实世界中的人际关系。。。   而提供这众多的功能的统一解决方案,目前市面上的产品还不是很多,.Net下的产品更是寥若晨星,而这正是 SpaceBuilder推出的一个原因-- 以后你再构建Web2.0的社区,直接使用SpaceBuilder就可以了,所有的功能包括博客啦,圈子啦等等里面全都有了,吼吼~~

      SpaceBuilder里面具体的功能,包括 SNS,论坛,圈子,博客等,以后跟大家慢慢分享。其实做为开发人员,我们最关心的还是它使用的技术。SpaceBuilder是.Net下一个非常纯粹 的项目,里面所以的功能都是基于MS的FrameWork2.0开发。里面使用到的比较有特色的技术不少,不过没有认真总结过,在这里随便给大家列几个:

1. 纯用户控件开发 整个Web项目里面几乎没有一行cs文件,里面全是布局文件,和皮肤文件。这样就便于用户根据自己的需要 动态加载不同的布局和皮肤。也就是说Web项目里面的文件是被 其他项目里面的文件调用的,这个特色跟我们平时的开发好像有点 反常。把页面根据功能划分成不同的控件(皮肤),这样也便于相似的功能在多个页面里面使用。

2.每请求缓存 原来我们在不采用用户控件 开发的时候,如果页面上有两个地方需要展示数据,我们访问一次数据库,就可以同时向他们俩绑定数据。 而采用控件开发后,由于每个控件都有自己的逻辑,那么这样就需要两次访问数据库,性能就降低了,这个也是很多人采用用户控件开发时都面临的问题。那 SpaceBuilder怎么处理呢? --全局缓存和每请求缓存。全局缓存也是一个非常重要的特色以后,在跟大家分享,今天先说一个 每请求缓存。如果有页面中两或者多个用户控件都要绑定来自同样数据源的数据时,让第一个控件获取到数据后,放入当前请求的上下文中,第二第三个控件再绑定 数据的时候,就不用再去访问数据库了,而直接从请求上下文中获取,这样在性能就跟通常的页面整体数据绑定相差无几了。

3.Provider  也就是我们通常说的  提供者。我们知道MS的FrameWork在很多个地方为了扩展的方便都采用了提供者模式,比如 成员管理 Provider,角色Provider,Profile Provider等等。SpaceBuilder也采用了提供者模式,不过SpaceBuilder做的更彻底: SpaceBuilder里面的每个功能都有自己的Provider,比如你的博客可以采用Sql作为你的数据提供者,同时在同一个系统里面你的 相册  可以采用  Oracle作为你的提供者,SNS可以采用XML作为数据提供者。。。  所以的这些功能模块他们在一起是可以无缝结合地进行工作了,无论他们的提供者是否来源于同一个地方。

其他还有很多,一时想不起来,先写这么多吧,以后跟大家一起分享里面功能或者技术的具体实现。

最后,来句广告语 “SpaceBuilder,构建您的空间...”

 

后记    SpaceBuilder真个系统体系,大约可以分成3个层次:整站,圈子,和个人门户。目前,个人门户已经开发了3套皮肤可以使用,站点和圈子的皮肤都在开发之中。
    关于产品的意见或者建议,以及bug希望大家不吝指出,谢谢。
 
posted @ 2007-11-18 23:34  解然  阅读(5201)  评论(47编辑  收藏  举报