国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Community Server專題一:概述Community Server

2024-07-21 02:29:29
字體:
來源:轉載
供稿:網友

  community server(cs)是一個非常優秀的asp.net開源軟件,目前官方發布的系統中包括三個部分:asp.net forums、dottext、gallery。如果你是某個以cs構架網站的會員,你可以很容易的就擁有一個blog、一個相冊、還能在論壇上與他人一起進行討論,這樣就形成一個以user為中心的社區,這也就是起名為community server的意義所在了。

  cs的構架很巧妙,三套原本不同的開源軟件在telligent systems的努力下結合在了一起,統一進行用戶管理與權限設置(menbership)、統一進行異常處理、統一進行本地化資源管理(多語言實現)等等。雖然這不能完整地看成是portal實現,但是從代碼角度看已經非常模塊化了,可以快速的進行擴展同時又能獲得很好的性能。實現這些主要依靠工程中的兩個項目:communityservercomponents與communityservercontrols。

  communityservercomponents中包含一些全局業務邏輯類,如:globals、context等、一些接口和用來繼承的父類,如:group、section、thread、post等、還有就是實現membership的實體類。異常處理與url rewrite是通過繼承ihttpmodule接口實現的,當然要實現ihttpmodule的繼承就一定要進行配置,該項目中通過類csconfiguration實現了一些全局的配置等。httphandler也得到了運用,主要是處理一些不存在的url,如讀取用戶頭像的時候就是使用的httphandler。緩存作為web程序提高運行效率最有效的方法之一在該項目中主要是在cscache類中,該類沒有什么高深的代碼主要是對緩存方法進行包裝,然后供全局統一管理。

  communityservercontrols側重的是ui表現的業務邏輯,其中包含的很多公用的用戶自定義控件,典型的就是editor、resourcelabel,resourcelabel幾個項目中的web頁面下基本都有他的身影。該項目還有一個重要的目的就是提供skin功能,templatedwebcontrol為forums、blog、gallery幾個項目提供skin的基類,當然如果你擴展cs添加自己的項目,也是需要繼承templatedwebcontrol,具體如何實現換膚后面會有專題進行單獨的介紹,asp.net forums 原來換膚使用的是皮膚的全名(如:skin-postview.ascx),但是在現在的項目中不需要提供全名只在基類中提供“skin-{0}.ascx”,之后用gettype().name得到{0},組合后就是全名了。也就是說只要需要擴展皮膚類的類名和皮膚的{0}名字相同,就可以自動的找到他對應的skin,小小的改進方便了許多。cs使用membership統一用戶與權限管理,而用戶與權限管理作為所有擴展項目的基礎,因此communityservercontrols中實現了membership的ui業務邏輯。

  communityserverforums、communityservergalleries、communityserverblogs就是三個運用項目的實現了,三層結構,通過大量的繼承,抽象等等完成的。communityserverguestbook是一個簡單的擴展項目,分析代碼你會發現其實cs的擴展式非常容易的,而且高效。

  cs在數據庫方面也有一些優秀的設計,如全部使用存儲過程,很多時候高手都會告訴你,在項目中全部使用存儲過程是不理智的,但是cs確這樣做。關鍵一點是他有一個sqlgenerator類和一些xx query類,這些類可以根據要求產生sql text(主要是一些多變的search和post查詢),然后這些sql text作為存儲過程的參數被傳入,最后使用exec執行它得到需要的結果。sql text比起存儲過程來的靈活,但容易出現漏洞最后被利用出現sql注入攻擊,cs這樣的做法一舉兩得,當然這需要更多的時間去編寫代碼。還有就是用存儲過程實現的數據分頁讀取等。

  communityserverweb項目是所有webpage html、資源文件、配置文件、js等的集合。該項目本身沒有邏輯代碼,分析主要是目錄的結構與安排。

  cs與asp.net 2.0的關系密切,membership、localization、masterpage、url rewrite這些在asp.net 2.0中眼熟的詞匯在cs中你可以很容易看到它們的實現,不只是運用,你可以通過代碼看到它們是如何實現的。

  說了很多優點,最后說一下缺點:由于cs的前身是asp.net forums,在目前發布的版本中還可以很容易的看到forums殘留的影子,如果不了解其發展的人分析起來一些變量會讓你摸不著頭腦,另外基礎構架部分也有一部分代碼與forums跌在了一起,不過我想隨著下一個版本,或者下下個版本的發布cs會更有吸引力 ,我是非常希望cs下個版本發布的時候加入webpart等更多的特性。

  你可以通過以下地址下載到源代碼:http://communityserver.org/  

  官方站 http://communityserver.cn/    由寶玉發起的中文站

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 满洲里市| 达孜县| 德安县| 赣榆县| 阳春市| 湛江市| 凤凰县| 鄂州市| 思南县| 清流县| 雅江县| 五寨县| 无极县| 定兴县| 衡阳市| 寿光市| 鞍山市| 尼木县| 公安县| 茂名市| 青阳县| 南部县| 甘孜| 城市| 湛江市| 吉隆县| 平顺县| 万载县| 和硕县| 大安市| 明水县| 丁青县| 齐齐哈尔市| 呼和浩特市| 淳化县| 上饶市| 海城市| 临江市| 秦皇岛市| 桓仁| 清徐县|