日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1 Orchard 入门篇-Orchard 基本概念

發(fā)布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1 Orchard 入门篇-Orchard 基本概念 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言:最近學習Orchard,被它的各種機制徹底迷上了,有點相見恨晚的感覺,學習起來完全停不下來,工作10多年沒寫過1篇博客的我都忍不住開通博客,記錄下自己使用Orchard做項目的點點滴滴。本系列連載將記錄我在使用Orchard1.9.2制作一個真實項目的全過程,會更側(cè)重予實踐,Orchard的原理可以查看官方資料。

第一部分 入門篇

1.1 Orchard簡介

Orchard是有微軟公司創(chuàng)建的,基于ASP.NET MVC技術(shù)的免費內(nèi)容管理系統(tǒng)。

具有以下特點:

  • 可用于建設(shè)博客、新聞門戶、企業(yè)門戶、行業(yè)門戶等各種網(wǎng)站
  • 簡單易用的后臺管理界面
  • 性能穩(wěn)定,功能齊全。
  • 熱拔插模塊化架構(gòu)提供超強擴展性
  • BSD協(xié)議授權(quán),可用于商業(yè)閉源項目

1.2 Orchard基本概念

CMS是內(nèi)容管理系統(tǒng)的縮寫, ‘C’指的是內(nèi)容, 內(nèi)容是網(wǎng)站中的任何信息,例如一篇blog、一個回復,甚至一個導航菜單、公司logo等。如果有權(quán)限,我們可以在系統(tǒng)后臺進行網(wǎng)站和內(nèi)容的管理,這就是’M'。而 ‘S’ 是系統(tǒng),這是個比較模糊的概念。

orchard并沒有提供太多的現(xiàn)成業(yè)務(wù)功能,所以你在其它CMS輕易的找到諸如廣告酷炫插件,但是發(fā)現(xiàn)在orchard中很難找到,?

Orchard是由微軟于2010始啟動,使用最新.NET技術(shù)棧實現(xiàn)的免費開源內(nèi)容管理系統(tǒng)。項目開發(fā)人員多數(shù)來自ASP.NET團隊,是繼Petshop,Oxite之后的重磅開源項目!

它整合了上百個開源項目,如autofac,nhibernate等,它擁有非常復雜的模塊機制,可以動態(tài)編譯模塊,因此只需將代碼發(fā)布即可運行。

同時在CMS系統(tǒng)架構(gòu)上,它抽象了內(nèi)容類型(ContentTypes),Orchard認為一切內(nèi)容皆由ContentPart與ContentField構(gòu)成,你可以自由的設(shè)計內(nèi)容類型,這是它相比其它CMS強大的原因之一!

在擁有了極靈活的內(nèi)容管理機制后,Orchard也擁有極復雜的渲染機制,首先它采用了類似Photoshop作圖方法的圖層思想,任何Url都對應(yīng)一條Content或者Projection,同時也將滿足Layer層級規(guī)則的層“疊加“,最終輸出的視圖模型(ViewModel)將是一個多層結(jié)構(gòu)的,且每層都擁有多個Zone的數(shù)據(jù)結(jié)構(gòu)。

ps:看起來就像一本書,一頁紙就是一個Layer,每頁紙上有N個Zone,所有紙的Zone都是固定的,在theme.txt里面定義好的,每個Zone里面擁有N個Widget。

?

1.2.1 ContentType

ContentType:內(nèi)容類型。Orchard 通過定義內(nèi)容類型來定義網(wǎng)頁上一些可重用的界面元素。例如可以定義一個叫 BannerWidget的內(nèi)容類型來顯示前臺首頁的滾動廣告,也可以定義一個叫CrawlerArticle的類型來專門存放和展示通過網(wǎng)絡(luò)爬蟲采集來的文稿內(nèi)容。內(nèi)容類型定義內(nèi)容包含的屬性,以及屬性值的類型。內(nèi)容類型還可以任意組合變成一個新的類型。可以將內(nèi)容類型理解為用戶自定義可重用控件。

內(nèi)容類型由一個或多個ContentPart組成(內(nèi)容部件)。便于更好的理解下面列出來Orchard部分自帶的內(nèi)容類型并加以說明。

MenuWidget:前臺導航部件,用于在前臺首頁顯示導航欄。可以通過在模版(模版編輯在后面的章節(jié)中會講解)中重寫Menu.cshtml來定義該內(nèi)容類型顯示的樣式。下圖就是通過重寫了Menu.cshtml模版頁面來重新定義導航欄顯示的樣式。

MenuWidget在Orchard中被定義成了Widget(掛件),它是Orchard的一種特殊的內(nèi)容類型,通常用于展示固定在每個頁面,或者特定頁面的固定位置的內(nèi)容類型。MenuWidget又由Common、Identity、Widget等ContentPart組成。

Orchard還包含ContentMenuItem、BlogPost、BlogArchives、Blog等內(nèi)容類型將在后面講解。

1.2.2 ContentItem

ContentItem:內(nèi)容項,內(nèi)容類型的實例。內(nèi)容項指一個單獨的內(nèi)容,如文稿、Blog、頁面等。內(nèi)容類型是類,內(nèi)容向是內(nèi)容的實例。

1.2.3 ContentPart

ContentPart:內(nèi)容部件。內(nèi)容部件是內(nèi)容類型的小一級的內(nèi)容類型,一個內(nèi)容類型可以由一個或者多個ContentPart組成。Orchard每個ContentType都對應(yīng)一個與它同名的ContentPart。

BodyPart、TitlePart、CommonPart等都是Orchard預(yù)先定義的ContentPart。

1.2.4 ContentFiled

ContentFiled:內(nèi)容字段。即內(nèi)容的具體屬性。內(nèi)容字段指定了內(nèi)容某個屬性的類型和值。主要用于擴展字段。ContentPart由一個或者多個ContentFiled組成。

Orchard預(yù)先定義的ContentFiled有

TextField:提供字符類型的字段

NumericField:提供數(shù)值類型的字段

EnumerationField:提供枚舉型字段

BooleanField:提供Boolean字段

MediaLibraryPickerField: 提供圖片、視頻、文件等路徑信息的存儲,通過使用該字段,在編輯該字段值時候,還提供了從資源庫中選擇媒體資源的功能。

1.2.5 Module

Orchard通過Module來進行功能擴展,可以根據(jù)自己的需求來自定義Module,也可以從Orchard的Module的展示廳里面下載安裝Module擴展功能。Orchard本身也是由一個個Module組成的。如下表:

Orchard.Users:提供用戶管理

Orchard.Themes:提供主題的管理

Orchard.Taxonomies:提供多租戶管理(即多站點管理)

Orchard.MediaLibrary:提供文件管理上傳下載管理,如圖片文件,Word文件的。

Orchard.Comments:提供評論管理。

1.2.8 Theme

Orchard 提供主題管理,即可以為前臺頁面提供界面主題。

1.2.9 Layout

Layout布局,類似MVC的視圖。一條Url就是一個布局。

1.2.10 Zone

Orchard將每個Layout都分為了Header, Navigation, Featured, BeforeMain, AsideFirst, Messages, BeforeContent, Content, AfterContent, AsideSecond, AfterMain, TripelFirst, TripelSecond, TripelThird, FooterQuadFirst, FooterQuadSecond, FooterQuadThird, FooterQuadFourth, Footer等區(qū)域。如下圖:

?

?

用戶可以根據(jù)自身需求定義使用的區(qū)域。

1.2.11 Widget

Widget即頁面掛件,通常指固定顯示在某個位置的內(nèi)容部件。

?

1.2 Orchard工作流程

當有一個request請求需要顯示一個內(nèi)容的時候。系統(tǒng)首先是根據(jù)Route規(guī)則找到該請求對應(yīng)的Controller中對應(yīng)的action。然后在此action中通過IContentManager接口取獲取內(nèi)容。在用IContentManager獲取內(nèi)容的時候,Orchard框架會自動通過相關(guān)內(nèi)容部件處理器所提供的數(shù)據(jù)存儲Filter來獲取相關(guān)部件的數(shù)據(jù)。接下來通過BuildDisplay構(gòu)建一個需要顯示到視圖上的動態(tài)類Model,組成內(nèi)容的各個部件都作為這個動態(tài)類的屬性。最后Orchard視圖引擎根據(jù)各部件驅(qū)動器所提供的顯示方法,找到對應(yīng)的顯示模板,最終組合成一個UI呈現(xiàn)給用戶。呈現(xiàn)編輯頁面和提交編輯數(shù)據(jù)的原理大致相同。內(nèi)容部件工作示意圖如下:

圖片擇至:http://www.cnblogs.com/esshs/archive/2011/06/13/2079937.html

?

轉(zhuǎn)載于:https://www.cnblogs.com/Manny2016/p/5394005.html

總結(jié)

以上是生活随笔為你收集整理的1 Orchard 入门篇-Orchard 基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。