Orchard源碼分析(1):Orchard架構 (轉)

源碼分析應該作到庖丁解牛,而不是以管窺豹或瞎子摸象。因此先對Orchard架構有個總體的瞭解,以及對一些基本概念有所認識。
建立一個基於Web的CMS(內容管理系統)不一樣於建立一個普通的Web應用程序:它更像是創建一個應用程序容器。 這樣一個系統,必須擁有優秀的開放性、可擴展性。可是做爲一個可擴展系統,它可能會面臨應用程序"可用性"的挑戰:在系統中的核心模塊與未知的將來模塊的組合,包括用戶界面級別的整合。編排全部這些小零件,讓互不知道的彼此的模塊成一個連貫的總體,是Orchard是關鍵。
本文主要參考官方文檔"How Orchard works"以及Orchardch上的翻譯。它解釋了Orchard選擇怎樣的構架的,以及怎樣得到靈活性和良好的用戶體驗。
 
1、Orchard架構
Modules
Core
Orchard Framework
ASP.NET MVC NHibernate Autofac Castle
.NET ASP.NET
IIS or Windows Azure

可見Orchard運行於ASP.NET之上,使用了幾個包括包括ASP.NET MVC在內的開源框架或類庫。位於Orchard最底層的是Orchard框架(Orchard.Framework程序集),其上是核心模塊(Core Modules)以及來自官方或非官方的其餘模塊(Modules)。實際上咱們能夠在任何一層上進行開發,一般咱們是在Modules層開發,建立新的Module或Theme或修改已經存在的Module或Theme。
2、Orchard基礎
Orchard CMS基於現有的框架和庫構建,包括ASP.NET MVC,NHibernate,Autofac,Castle等。
3、Orchard框架(Orchard.Framework程序集)
Orchard.Framework程序集位於Orchard最底層,它包含應用程序引擎以及不適合分離到模塊的功能。這些都是最基礎的東西,甚至連最基本的模塊將不得不依賴它。你能夠把它看做是Orchard的基礎類庫。
4、Orchard核心模塊(Orchard.Core項目及Orchard.Core程序集)
Orchard.Core項目中包含了一組Orhcard運行所必須的模塊。其它模塊能夠安全地依賴到這些模塊上,由於這些模塊老是可用的。好比 feeds,navigation,routable模塊。固然,就像上面所說,咱們能夠基於Orchard的任何一層進行開發,若是有必要,咱們徹底能夠本身來設計"Core"。
5、模塊(Moduls)
Orchard默認發行版包含了一些像blogging、pages的內置模塊,而且也能很方便的建立第三方模塊。
模塊就是用於擴展Orchard的包含module.txt文件的ASP.NET MVC Area。 
模塊一般包含事件處理程序(event handlers),內容類型(content types)和它們的默認渲染模板以及一些管理界面(Admin UI)。
對模塊".csproj"文件或".csproj"引用文件的修改都能使模塊自動被動態編譯。也就是說能夠不將模塊編譯成靜態程序集甚至能夠不使用Vistual Studio來建立或編輯模塊。
6、主題(Themes)
主題可讓Orchard用戶自定義站點顯示界面,量身定製他們想要的站點風格。主題還能夠有針對性的對Orchard模塊所提供的任何模板進行樣式重寫、甚至是改變圖像、佈局等。
主題位於Orchard網站根目錄下的Themes文件夾中,包含theme.txt文件。
7、租戶/子站點(Tenants)
Orchard支持子站點,即一套程序、一個應用程序域部署多個不一樣域名的站點。
參考資料:
相關文章
相關標籤/搜索