WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計算
- 微博營銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機(jī)
Community Server
Community Server(CS)是一個非常優(yōu)秀的Asp.net開源軟件,目前官方發(fā)布的系統(tǒng)中包括三個部分:Asp.net Forums、DotText、Gallery。如果你是某個以CS構(gòu)架網(wǎng)站的會員,你可以很容易的就擁有一個Blog、一個相冊、還能在論壇上與他人一起進(jìn)行討論,這樣就形成一個以User為中心的社區(qū),這也就是起名為Community Server的意義所在了。
詞條概況[ ]
- 授權(quán)協(xié)議:國外軟件 / 免費(fèi)軟件 / Install-needed
- 開發(fā)語言:C#
- 運(yùn)行環(huán)境:Linux/
- 官方網(wǎng)站:http://communityserver.cn/
- 最新下載:http://down.zzbaike.com/download/mysql-1524.html
Community Server[ ]
CS的構(gòu)架[ ]
CS的構(gòu)架很巧妙,三套原本不同的開源軟件在Telligent Systems的努力下結(jié)合在了一起,統(tǒng)一進(jìn)行用戶管理與權(quán)限設(shè)置(Menbership)、統(tǒng)一進(jìn)行異常處理、統(tǒng)一進(jìn)行本地化資源管理(多語言實現(xiàn))等等。雖然這不能完整地看成是Portal實現(xiàn),但是從代碼角度看已經(jīng)非常模塊化了,可以快速的進(jìn)行擴(kuò)展同時又能獲得很好的性能。實現(xiàn)這些主要依靠工程中的兩個項目:CommunityServerComponents與CommunityServerControls。
CommunityServerComponents中包含一些全局業(yè)務(wù)邏輯類[ ]
CommunityServerComponents中包含一些全局業(yè)務(wù)邏輯類,如:Globals、Context等、一些接口和用來繼承的父類,如:Group、Section、Thread、Post等、還有就是實現(xiàn) Membership的實體類。異常處理與Url Rewrite是通過繼承IHttpModule接口實現(xiàn)的,當(dāng)然要實現(xiàn)IHttpModule的繼承就一定要進(jìn)行配置,該項目中通過類 CSConfiguration實現(xiàn)了一些全局的配置等。HttpHandler也得到了運(yùn)用,主要是處理一些不存在的Url,如讀取用戶頭像的時候就是使用的HttpHandler。緩存作為Web程序提高運(yùn)行效率最有效的方法之一在該項目中主要是在CSCache類中,該類沒有什么高深的代碼主要是對緩存方法進(jìn)行包裝,然后供全局統(tǒng)一管理。
CommunityServerControls側(cè)重的是UI表現(xiàn)的業(yè)務(wù)邏輯[ ]
CommunityServerControls側(cè)重的是UI表現(xiàn)的業(yè)務(wù)邏輯,其中包含的很多公用的用戶自定義控件,典型的就是Editor、ResourceLabel,ResourceLabel幾個項目中的web頁面下基本都有他的身影。該項目還有一個重要的目的就是提供Skin功能,TemplatedWebControl為Forums、Blog、Gallery幾個項目提供Skin的基類,當(dāng)然如果你擴(kuò)展CS添加自己的項目,也是需要繼承TemplatedWebControl,具體如何實現(xiàn)換膚后面會有專題進(jìn)行單獨的介紹,Asp.net Forums 原來換膚使用的是皮膚的全名(如:Skin-PostView.ascx),但是在現(xiàn)在的項目中不需要提供全名只在基類中提供“Skin-.ascx”,之后用GetType().Name得到,組合后就是全名了。也就是說只要需要擴(kuò)展皮膚類的類名和皮膚的名字相同,就可以自動的找到他對應(yīng)的Skin,小小的改進(jìn)方便了許多。CS使用Membership統(tǒng)一用戶與權(quán)限管理,而用戶與權(quán)限管理作為所有擴(kuò)展項目的基礎(chǔ),因此 CommunityServerControls中實現(xiàn)了Membership的UI業(yè)務(wù)邏輯。
簡單介紹[ ]
CommunityServerForums、 CommunityServerGalleries、CommunityServerBlogs就是三個運(yùn)用項目的實現(xiàn)了,三層結(jié)構(gòu),通過大量的繼承,抽象等等完成的。CommunityServerGuestBook是一個簡單的擴(kuò)展項目,分析代碼你會發(fā)現(xiàn)其實CS的擴(kuò)展式非常容易的,而且高效。
CS與數(shù)據(jù)庫[ ]
CS在數(shù)據(jù)庫方面也有一些優(yōu)秀的設(shè)計,如全部使用存儲過程,很多時候高手都會告訴你,在項目中全部使用存儲過程是不理智的,但是CS確這樣做。關(guān)鍵一點是他有一個SqlGenerator類和一些xx Query類,這些類可以根據(jù)要求產(chǎn)生SQL Text(主要是一些多變的Search和Post查詢),然后這些SQL Text作為存儲過程的參數(shù)被傳入,最后使用EXEC執(zhí)行它得到需要的結(jié)果。SQL Text比起存儲過程來的靈活,但容易出現(xiàn)漏洞最后被利用出現(xiàn)SQL注入攻擊,CS這樣的做法一舉兩得,當(dāng)然這需要更多的時間去編寫代碼。還有就是用存儲過程實現(xiàn)的數(shù)據(jù)分頁讀取等。
CommunityServerWeb項目[ ]
CommunityServerWeb項目是所有webpage html、資源文件、配置文件、js等的集合。該項目本身沒有邏輯代碼,分析主要是目錄的結(jié)構(gòu)與安排。CS與Asp.net 2.0的關(guān)系密切,Membership、Localization、MasterPage、Url Rewrite這些在Asp.net 2.0中眼熟的詞匯在CS中你可以很容易看到它們的實現(xiàn),不只是運(yùn)用,你可以通過代碼看到它們是如何實現(xiàn)的。
CommunityServer的缺點[ ]
由于CS的前身是Asp.net Forums,在目前發(fā)布的版本中還可以很容易的看到Forums殘留的影子,如果不了解其發(fā)展的人分析起來一些變量會讓你摸不著頭腦,另外基礎(chǔ)構(gòu)架部分也有一部分代碼與Forums跌在了一起,不過我想隨著下一個版本,或者下下個版本的發(fā)布CS會更有吸引力 ,我是非常希望CS下個版本發(fā)布的時候加入WebPart等更多的特性。