Orchard Core這個開源軟件的好處,在這里就不多說了。要能夠熟練的使用OrchardCore來建設自己的站點,我們必須對Orchard Core這個軟件有一個最基本的了解,下面我們就來看看Orchard Core官方對此的一個說明。
官方介紹:
Orchard Core是一個基於Asp.net Core框架重新開發的OrchardCore CMS,使用Orchard Core這個名稱主要是用來區分在此之前的基於.NET Framework框架的一個OrchardCMS版本。
Orchard Core包含兩個不同的目標框架:
1、Orchard Core Framework:一個基於Asp.net Core 用來構建多模塊,多租戶的應用程序框架。
2、Orchard Core CMS:一個構建於Orchard Core Framework框架之上的內容管理系統。這個我們可以從下面解決方案截圖的Targets解決方案文件夾可以看出。(具體的講解在后面)
重要的是注意框架和CMS之間的區別。一些想要開發SaaS應用程序的開發人員會對模塊化框架感興趣。其他那些想要構建可管理網站的人員將專注於CMS並構建模塊以增強其網站或整個生態系統。
使用Orchard Core Framework構建軟件即服務(SaaS)解決方案
了解Orchard Core Framework在nuget.org上是獨立於CMS分發的,這一點非常重要。我們已經在https://github.com/OrchardCMS/OrchardCore上制作了一些示例應用程序。這些示例將指導您如何僅使用Orchard Core框架而不使用任何CMS特定功能來構建模塊化和多租戶應用程序。
我們的目標之一是實現基於社區的托管應用程序生態系統,這些應用程序可以通過模塊(例如:電子商務系統,博客引擎等)進行擴展。Orchard Core Framework提供了一個模塊化的環境,該環境允許不同的團隊在應用程序的不同部分上工作,使得組件可在項目中重復使用。
使用Orchard Core CMS構建網站
Orchard Core CMS是基於ASP.NET Core框架之上完全重寫的一個Orchard CMS(用來區分以前基於.NET Framework框架的OrchardCMS版本)。它不僅僅是一個端口,因為我們希望極大地提高性能並盡可能與ASP.NET Core的開發模型保持一致。
性能表現:當您開始使用Orchard Core CMS時,這可能是最明顯的變化。對於CMS來說,這是非常快的。速度如此之快,我們甚至都不關心處理輸出緩存模塊。給您一個主意,不緩存Orchard Core CMS的速度比前一個版本快20倍。
可移植性:您可以在Windows,Linux和macOS上開發和部署Orchard Core CMS。同時也可以使用提供的Docker鏡像。
文檔數據庫抽象:Orchard Core CMS仍然需要一個關系數據庫,並且與SQL Server,MySQL,PostgreSQL和SQLite兼容,但是現在使用的是文檔抽象(YesSql),該抽象提供了文檔數據庫API來存儲和查詢文檔。對於CMS系統,這是一種更好的方法,並且可以顯着提高性能。
實時預覽:在編輯內容項時,您可以實時查看它在網站上的外觀,甚至,在您保存內容之前也是如此。它也適用於模板,您可以在模板中瀏覽任何頁面,以查在鍵入時檢查更改對模板的影響。
Liquid模板支持:編輯者可以使用Liquid模板語言安全地更改HTML模板。之所以選擇它是因為它既有很好的文檔(Jekyll,Shopify等),又非常安全。
自定義查詢:我們希望為開發人員提供一種盡可能簡單地訪問其所有數據的方法。我們為此創建了一個模塊,允許您創建自定義的臨時SQL和Lucene查詢,這些查詢可重新用於顯示自定義內容或作為API端點公開。您可以用它來創建高效的查詢,或將數據公開給SPA應用程序。
部署計划:部署計划是可以包含內容和元數據來構建網站的腳本。現在,您可以包括二進制文件,甚至可以使用它們來將站點從臨時工作台遠程部署到生產環境。它們也可以成為NuGet軟件包的一部分,允許您發布預定義的網站。
可擴展性:由於Orchard Core是多租戶系統,因此您可以通過單個部署托管任意數量的網站。然后,一個典型的雲計算機可以並行托管數千個站點,其中包括數據庫,內容,主題和用戶隔離。
工作流程:創建內容批准工作流,對Webhook做出反應,在提交表單時采取措施,以及您希望通過用戶友好的UI實施的任何其他流程。
GraphQL:我們提供了非常靈活的GraphQL API,因此任何授權的外部應用程序都可以重用您的內容,例如SPA應用程序或靜態站點生成器。
不同的網站建設戰略
Orchard Core CMS支持所有主要的網站建設策略:
完整的CMS:在這種模式下,網站使用主題和模板來呈現您的內容,目的是實現很少甚至沒有自定義開發。
解耦CMS:除了內容管理后端之外,該網站一開始是空白。您可以使用Razor Pages或MVC操作創建所需的所有模板,並通過內容服務訪問內容。
無頭CMS:該站點僅管理內容,並且您創建了一個單獨的應用程序,該應用程序將使用GraphQL或REST API來獲取托管內容。