|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
可怜的程序员,还是逃不出移植的命运!server CommunityServer(CS)是一个十分优异的Asp.net开源软件,今朝官方公布的体系中包含三个部分:Asp.netForums、DotText、Gallery。假如你是某个以CS构架网站的会员,你能够很简单的就具有一个Blog、一个相册、还能在论坛上与别人一同举行会商,如许就构成一个以User为中央的社区,这也就是起名为CommunityServer的意义地点了。
CS的构架很奇妙,三套底本分歧的开源软件在TelligentSystems的勉力下分离在了一同,一致举行用户办理与权限设置(Menbership)、一致举行非常处置、一致举行当地化资本办理(多言语完成)等等。固然这不克不及完全地当作是Portal完成,可是从代码角度看已十分模块化了,能够疾速的举行扩大同时又能取得很好的功能。完成这些次要依托工程中的两个项目:CommunityServerComponents与CommunityServerControls。
CommunityServerComponents中包括一些全局营业逻辑类,如:Globals、Context等、一些接口和用来承继的父类,如:Group、Section、Thread、Post等、另有就是完成Membership的实体类。非常处置与UrlRewrite是经由过程承继IHttpModule接话柄现的,固然要完成IHttpModule的承继就必定要举行设置,该项目中经由过程类CSConfiguration完成了一些全局的设置等。HttpHandler也失掉了使用,次要是处置一些不存在的Url,如读取用户头像的时分就是利用的HttpHandler。缓存作为Web程序进步运转效力最无效的办法之一在该项目中次要是在CSCache类中,该类没有甚么深邃的代码次要是对缓存办法举行包装,然后供全局一致办理。
CommunityServerControls偏重的是UI体现的营业逻辑,个中包括的良多公用的用户自界说控件,典范的就是Editor、ResourceLabel,ResourceLabel几个项目中的web页面下基础都有他的身影。该项目另有一个主要的目标就是供应Skin功效,TemplatedWebControl为Forums、Blog、Gallery几个项目供应Skin的基类,固然假如你扩大CS增加本人的项目,也是必要承继TemplatedWebControl,详细怎样完成换肤前面会有专题举行独自的先容,Asp.netForums本来换肤利用的是皮肤的全名(如:Skin-PostView.ascx),可是在如今的项目中不必要供应全名只在基类中供应“Skin-{0}.ascx”,以后用GetType().Name失掉{0},组合后就是全名了。也就是说只需必要扩大皮肤类的类名和皮肤的{0}名字不异,就能够主动的找到他对应的Skin,小小的改善便利了很多。CS利用Membership一致用户与权限办理,而用户与权限办理作为一切扩大项目标基本,因而CommunityServerControls中完成了Membership的UI营业逻辑。
CommunityServerForums、CommunityServerGalleries、CommunityServerBlogs就是三个使用项目标完成了,三层布局,经由过程大批的承继,笼统等等完成的。CommunityServerGuestBook是一个复杂的扩大项目,剖析代码你会发明实在CS的扩大式十分简单的,并且高效。
CS在数据库方面也有一些优异的计划,如全体利用存储历程,良多时分妙手城市告知你,在项目中全体利用存储历程是不睬智的,可是CS确如许做。关头一点是他有一个SqlGenerator类和一些xxQuery类,这些类能够依据请求发生SQLText(次要是一些多变的Search和Post查询),然后这些SQLText作为存储历程的参数被传进,最初利用EXEC实行它失掉必要的了局。SQLText比起存储历程来的天真,但简单呈现毛病最初被使用呈现SQL注进打击,CS如许的做法一石二鸟,固然这必要更多的工夫往编写代码。另有就是用存储历程完成的数据分页读取等。
CommunityServerWeb项目是一切webpagehtml、资本文件、设置文件、js等的汇合。该项目自己没有逻辑代码,剖析次要是目次的布局与布置。
CS与Asp.net2.0的干系亲切,Membership、Localization、MasterPage、UrlRewrite这些在Asp.net2.0中眼生的辞汇在CS中你能够很简单看到它们的完成,不但是使用,你能够经由过程代码看到它们是怎样完成的。
说了良多长处,最初说一下弱点:因为CS的前身是Asp.netForums,在今朝公布的版本中还能够很简单的看到Forums残留的影子,假如不懂得其开展的人剖析起来一些变量会让你摸不着思想,别的基本构架部分也有一部分代码与Forums跌在了一同,不外我想跟着下一个版本,大概下下个版本的公布CS会更有吸引力,我长短常但愿CS下个版本公布的时分到场WebPart等更多的特征。
你能够经由过程以下地点下载到源代码:http://communityserver.org/
官方站 http://communityserver.cn/由宝玉倡议的中文站
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。 |
|