欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Orchard架構的簡單介紹-創(chuàng)新互聯(lián)

這篇文章主要講解了“Orchard架構的簡單介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Orchard架構的簡單介紹”吧!

成都創(chuàng)新互聯(lián)公司一直通過網站建設和網站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務,以成都網站設計、成都網站建設、移動互聯(lián)產品、成都全網營銷服務為核心業(yè)務。十余年網站制作的經驗,使用新網站建設技術,全新開發(fā)出的標準網站,不但價格便宜而且實用、靈活,特別適合中小公司網站制作。網站管理系統(tǒng)簡單易用,維護方便,您可以完全操作網站資料,是中小公司快速網站建設的選擇。

  對于我們來說,更重要的是學習Orchard是如何架構的,如果我們自己編寫一個類似應用該如何做。今天有空再次看看 Orchard的其它內容,本篇介紹一下Orchard的一些架構方面的內容。Orchard內容較多,現(xiàn)在還只是了解一些皮毛,還有待進一步學習,放上 來權當隨筆記錄。

  Architecture

  Orchard foundations

  Orchard構建在已有的一些框架和類庫之上,下面是一些主要內容:

  ASP.NET MVC:這是微軟開源的基于MVC的Web開發(fā)框架

  NHibernate:NHibernate 是一個ORM工具,從Hibernate演化而來

  Autofac: 一個IoC container。Orchard大量使用依賴注入

  Castle Dynamic Proxy: Castle 是.Net中很早就出現(xiàn)的一個開源項目,Castle Dynamic Proxy是一個生產動態(tài)代理的東東

  Orchard Framework

  Orchard framework處于Orchard的最底層,你可以把它看成是Orchard的基礎類庫。

  Orchard的啟動

  當Orchard web應用啟動后,生成一個應用域級別的單例的Orchard Host(DefaultOrchardHost)

  View Code

  public class MvcApplication : HttpApplication {protected void Application_Start() {_host = OrchardStarter.CreateHost(MvcSingletons);_host.Initialize();}public static class OrchardStarter {public static IOrchardHost CreateHost(Action registrations) {var container = CreateHostContainer(registrations);return container.Resolve();}public static IContainer CreateHostContainer(Action registrations) {……builder.RegisterType().As().As().SingleInstance();}}

  DefaultOrchardHost負責生成Shell,其中引入了一些類:ShellContextFactory、ExtensionManager、ShellSettingsManager、CompositionStrategy、ShellBlueprint,現(xiàn)在就不細說了,因為我還沒有怎么看

  V  public class DefaultOrchardHost : IOrchardHost, IShellSettingsManagerEventHandler, IShellDescriptorManagerEventHandler {void IOrchardHost.Initialize() {BuildCurrent();}IEnumerable BuildCurrent() {if (_current == null) {lock (_syncLock) {if (_current == null) {SetupExtensions();MonitorExtensions();_current = CreateAndActivate().ToArray();}}}return _current;}IEnumerable CreateAndActivate() {var allSettings = _shellSettingsManager.LoadSettings();if (allSettings.Any()) {return allSettings.Select(settings => {var context = CreateShellContext(settings);ActivateShell(context);return context;});}……}ShellContext CreateShellContext(ShellSettings settings) {if (settings.State.CurrentState == TenantState.State.Uninitialized) {Logger.Debug("Creating shell context for tenant {0} setup", settings.Name);return _shellContextFactory.CreateSetupContext(settings);}Logger.Debug("Creating shell context for tenant {0}", settings.Name);return _shellContextFactory.CreateShellContext(settings);}}

  Dependency injection

  在Orchard中生成依賴項的標準方法是實現(xiàn)IDependency 或者其繼承接口。

  對于依賴有三種可能的范圍,具體講解等待后期分析:

  o Request:每次HTTP請求都創(chuàng)建一個新的實例,請求處理有銷毀。這種對象實現(xiàn)IDependency

  o Object:實現(xiàn)ITransientDependency,實例不共享

  o Shell: 實現(xiàn)ISingletonDependency,單例

  ASP.NET MVC

  Orchard是構建在ASP.NET MVC 之上的一個框架,但是為了增加主題、多租戶等額外功能而也挺入了額外的一些層和概念。例如,當需要一個特定視圖時引入LayoutAwareViewEngine。嚴格的說,這不是一個新的視圖引擎,因為它并不關心實際繪制,而只是包含一些查找當前主題下正確視圖的一些邏輯功能,然后委托給實際的視圖引擎去展現(xiàn)。

  Types, Parts and Fields

  Orchard能夠處理任意內容類型(content types),內容類型又是由內容Parts組成,例如一個blog、video都可能有地址、回復、tag等,為了重用可以把回復作為一個part存在于一個module中,這樣只需要生成一次就行了。

  Parts本身又有自己的屬性和內容字段。內容字段(Fields)也是一個重用的概念,它比parts更細粒度,它可以使用在多個part中。

  Content Manager

  所有的內容通過ContentManager 對象進行訪問,ContentManager有查詢內容存儲、版本內容和管理發(fā)布狀態(tài)等功能

  Transactions 

  Orchard自動為每次HTTP請求生成一個事務

  Event bus

  Commands

  很多在Orchard中可以執(zhí)行的動作都可以通過命令行形式執(zhí)行,這些Command都需要實現(xiàn),命令方法使用CommandName 屬性標識

  Search and indexing

  默認使用Lucene 進行索引和查詢

  Caching

  基于ASP.NET cache之上的緩存,Orchard緩存API主要好處是對每個租戶的透明性

  File systems

  Orchard的文件系統(tǒng)是抽象概念的,可以是直接的物理文件,也可以是部署在云端的blob storage

  Orchard core

  Orchard.Core 程序集包含Orchard必須使用到的一些模塊,例如feeds、navigation和routable

  Modules

  Orchard默認發(fā)布一些內建的模塊,例如blog等。一個模塊只是一個包含manifest.txt 文件的一個ASP.NET MVC area 文件。

感謝各位的閱讀,以上就是“Orchard架構的簡單介紹”的內容了,經過本文的學習后,相信大家對Orchard架構的簡單介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

網頁名稱:Orchard架構的簡單介紹-創(chuàng)新互聯(lián)
地址分享:http://chinadenli.net/article2/gcsic.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站排名動態(tài)網站企業(yè)建站標簽優(yōu)化全網營銷推廣網站導航

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設