序
CS1.0 Beta经过几天的跳票,在N多人的期待下终于匆匆发布,而且没有开源,说是要Release才开源,天知道会不会开源!
安装篇
您可以从http://www.communityserver.org/下载,下载后,是一个压缩包,解压后,有一个readme.txt,是安装说明,按照上面一步步操作即可。安装非常简单,首先为解压后的web文件夹设虚拟目录为http://localhost/cs,然后根据data文件夹中的sql安装数据库,不过安装数据库时要注意一下:
执行Data\CS_2004_11_17_Full.sql 脚本,会自动创建一个数据库,但是安装的SQL文件在中文SQL Server上会提示排序规则冲突,必须对SQL作如下修改(谢谢progame的帮助):
找到sp: forums_Posts_UpdatePostsInCategories
where C.[Category] is not null and C.[Category] not in ( Select [Name] FROM forums_Post_Categories where CategoryType = @CategoryType and ForumID = @ForumID )
修改为:
where C.[Category] is not null and C.[Category] COLLATE Latin1_General_CI_AS not in ( Select [Name] FROM forums_Post_Categories where CategoryType = @CategoryType and ForumID = @ForumID ) 就是在not in前面加上COLLATE Latin1_General_CI_AS
然后执行Data\DefaultCommunity.sql脚本创建默认站点(默认站点:http://localhost/cs;账号/密码:admin/pa$$word),执行完后会有一些警告错误信息,不过不用管他。
注意要给root/blogs 和 root/gallery 文件夹有写的权限。
使用篇
安装完后就可以用http://localhost/cs 来访问传说中的Community Server 1.0 了,首页很简单,主要是Forums/Blog/Photo Galleries的介绍和链接。
首先进入Forums,发现Forums和原来的Forums2.01没有任何区别,只是这时候还没有任何板块/讨论组,使用默认的管理员账号/密码(admin/pa$$word)登录,进入后台(http://localhost/cs/admin),发现后台已经大变样了!
先进入System选项,有一排链接,分别是:
Manage Blogs|Manage Forums|Manage Galleries|Configuration|Reports|Tools

这里的Configuration|Reports|Tools就是以前Forums后台管理中的一些内容,这里就不多介绍。
Manage Blogs|Manage Forums|Manage Galleries实际上内容是一样的,都是管理各自的“组”、“分类”,权限分配,以Manage Blogs为例:

进入"Manage/Create Blogs and new groupings":

可以方便的管理/创建Blog分组/blog。同时,每创建一个blog,会在Web\blogs目录下创建相应的文件夹和空的default.aspx文件(这就是为什么该目录需要“写”的权限了),Blog名不能为中文。
这里可以给每个blog分配角色,选择哪些角色可以对该blog进行相关操作:

设置某角色对该Blog有何种权限:

Manage Forums、Manage Galleries和Manage Blogs基本类似。
新建好Blog后,就可以对建好的Blog进行管理更新了:

Blog的操作和原来的DotText基本上差不多的,可以方便的发表随笔/文章:

在System中建好相册类别后,也可以对相册进行管理了:

上传照片还是很方便的:

相册的配置选项:

后台上传完照片,到前台看看效果:

Blog还是老样子,看看Blog首页:

进入某个Blog:

技术篇
因为CS1.0 Beta没有开源而我也没深入研究,所以只是从有限的资源进行简单分析了一下。从数据库、命名空间和目录结构等可以看出,Community Server是在Forums的架构基础上,加上了Blog和相册,继续保持了Forums的换皮肤,多语言等特性。
数据库
数据库还是在Forums的数据库基础上,包括forums_的前缀大部分都还在(可能会要改掉),用户资料已经转移到aspnet_Users表和aspnet_Membership表中,三个系统共用。角色也转移到aspnet_Roles表中。cs_ApplicationType表主要保存Community Server中的系统类别,目前有论坛/blog/相册。blog和Forums的帖子内容都forums_Posts表中。有几个cs_和aspnet_开头的表作用暂时还不是很清楚,需要等文档和源码后才方便分析。
目录结构
Forums/Blogs/Gallery在web根目录下分别有单独目录,另外一些公用文件夹,如FreeTextBox、Languages、Msgs、Themes等都在根目录下,Blogs和Gallery中,每创建一个blog/相册就会在其目录下创建一个相应的文件夹和空的default.aspx,类似于DotText中用来做url重定向用。
后记
Community Server总的来说还是挺不错的,安装后就有了一个强大的论坛/blog/相册系统,对于一般网站来说可以足够用了,虽然还有很多很多bug,但是毕竟还只是Beta版,还在慢慢完善中。可惜没有开源,所以一些比较好的设计思想还没能深入学习了解。
有一点我还是很疑惑,我本以为用户新注册后就可以有自己的blog/相册,但是我发现blog/相册只能管理员开通/维护,而且如果需要让某用户可以维护一个blog/Gallery,那么必须为这个用户先建一个角色,然后让这个角色可以维护某个Blog/Gallery,并让该用户属于这个角色。如果要给每个用户开通一个blog/Gallery,那岂不是要给每个用户新建一个角色,再让这一个个角色和这一个个blog/Gallery对应起来?!
Release发布估计是明年的事情了,不过现在也不如以前那么期待了!