很多網友表示對秋色園的實現原理感興趣,有很多人,問了很多問題,包括:
1:url位址怎麼沒有字尾?
3:怎麼實現多**樣式的?
4:怎麼只看到ashx檔案,看不到aspx頁面呢,頁面是如何如出來的?
5:是不是mvc寫的?答:不是。
6:支不支援mssql?
7:生成的html怎麼沒有空格和換行符?
8:看不懂......
9:......等等。
本系列,將為大夥解析
秋色園 的技術原理,解開以上的迷惑。
一:總體認識
看一下秋色園發布後都有哪些目錄與檔案:
1:資料夾內容:
admin:
這裡面是系統管理後台,是單獨的乙個管理後台系統,採用的開發方式是傳統的webform+codesmith批量生成頁面。
由於採用access發布,因此後台系統需要發布到前台的目錄裡,所以你在這裡看到這個目錄。
存放access資料庫的地方,如果使用mssql或oracle等資料庫,這資料夾就沒必要了。
bin:
就是放程式的主dll,大夥都懂的,這裡的內容將是本系列最大的解說點。
包括:cyq.data.dll:核心資料操作元件,支援多資料庫及介面載入和快取,就靠它了。
entity.dll:包含一些固定不變的資料,包括列舉、常量和自定義sql語句等。
logic.dll:業務邏輯處理類,基本大大小小的業務都是這裡發生的。
module.dll:自定義的頁面生存週期[基類]及共同的簡單的全域性資料處理。
tool.dll:幾個常用的方法,包括分隔url獲取引數等。
urlrewrite.dll:自定義的url重寫,秋色園的url怎麼弄的,就它了,也是程式的第一入口。
web.core.dll:一些比較固定的類,包括使用者驗證註冊、檔案上傳、資訊加密等。
web.dll:就是一些ashx檔案,即頁面生成的。
web.extend.dll:包括處理頁面標題、訪問統計資訊等擴充套件業務。
editor:
編輯器存放js和css的地方,秋色園整個系統無第三方外掛程式,editor也是自己動手。
setting:
存放的是dtd文件解析檔案,開啟乙個html看源**的首行,都會發現一句:
這裡把它們下到本地來了,為什麼下到本地,這個後面解說。
skin:
所有介面樣式[包括語言翻譯檔案]存放的地方,裡每個資料夾都對應一套樣式。
包括:admin 使用者後台樣式
default 前台樣式,和其它三套一樣[skin_bbs/skin_black/skin_blue]
global 全域性樣式-包括註冊/登陸/錯誤頁面等
system_tech 技術頻道樣式,就是秋色園現在的首頁介面樣式
system_health 健康頻道樣式,就是秋色園的
健康頻道的介面樣式
upload:
檔案上傳的資料夾,目前包括:
log:當資料庫寫異常日誌失敗時,將寫io檔案到此資料夾。
userhead:使用者上傳的個人頭像。
2:檔案內容:
api.asmx:
這是乙個webservice檔案,主要是用於採集入庫時呼叫的。
簡單的說,秋色園的內容是哪來的?採集的,而且是在本機採集的。
而遠端是access資料庫,無法直接呼叫,因此寫了這個api用於入庫。
使用者後台:
admin.ashx:後台處理程式,秋色園的整個使用者後台,都是經這個檔案處理。
使用者前台:
index.ashx:使用者前台的首頁處理程式。
系統及共用部分:
rss.ashx:
秋色園 主站和使用者的rss內容處理程式。
language.ashx:多語言切換的處理程式。
reglogin.ashx:使用者登陸與註冊的處理程式。
error.ashx:站點發生異常時的處理程式。
home.ashx[可刪除]、home_tech.ashx:兩個是一樣的,秋色園技術頻道,即主站的處理程式。
home_health.ashx:健康頻道的處理程式。
本節開篇就整體介紹到這裡,大家有乙個感性認識。
下節起,將詳細的為大夥解析秋色園具體的實現原理,歡迎感興趣者表示下關注。v
《kvm虛擬化技術 實戰與原理解析》讀書筆記
x86平台虛擬化技術中,新引入的虛擬化層通常稱為虛擬機器監控器 virtual machine monitor,vmm 也叫做hypervisor.宿主機是真實的物理平台,客戶機是虛擬出來的平台。虛擬化實現的技術方式有多種,比如軟體虛擬化和硬體虛擬化,再比如準虛擬化和全虛擬化。準虛擬化需要修改客戶機...
《KVM虛擬化技術實戰和原理解析》讀書筆記(二)
在x86 64架構的處理器中,kvm必需的硬體虛擬化擴充套件分別為 intel的虛擬化技術 intel vt 和amd的amd v技術。除了必需的處理器虛擬化擴充套件以外,如果伺服器晶元還支援vt d,也建議在bios中將其開啟,因為後面一些相對高階的裝置的直接分配功能會需要硬體vt d技術的支援。...
技術原理解析 2 C 水印和驗證碼的製作
水印的基本製作方法就是使用gdi 的方法在的制定位置上繪製文字或者。說到gdi 一般用於winform對於gui的繪製,例如文字編輯器的製作,就是使用gdi函式繪製文字在窗體表面。其實gdi不僅可以繪製窗體,它可以繪製一切的drawable的表面。我記錄的水印製作就是利用gdi函式,進行原圖和水印的...