?
Orchard CMS是針對CMS開發的,對于很多開發需求來說,內容管理這塊兒可能并不需要,而需要它的模塊式開發模式。所以我這里通過對OrchardCMS進行瘦身,去除 內容管理部分的內容,保留簡單的運行環境和基礎的模塊。需要做的工作:
去除Orchard Framework的內容管理部分,同時去除Orchard Framework依賴內容管理的相關內容。
去除Orchard Core部分的部分module,只保留Sharpe和Setting兩個模塊。
去除內容管理和博客管理的相關模塊,只保留支持模塊啟用和停用以及皮膚模塊。
這里我只是對OrchardCMS的代碼進行了瘦身,所以相關的license請參考Orchard CMS的。
Github上的源代碼:? https://github.com/nicholaspei/OrchardNoCMS
?
為什么需要對Orchard CMS瘦身?
在我們的項目中,需要一個類似于Java的OSGI框架。發現Orchard CMS是可以達到這個要求的,自己做的話,時間不夠,整個成員能力也夠嗆。所以選擇了Orchard CMS,但是這個CMS中,太多的數據庫表和模塊都是為了CMS服務的,而我們的業務中基本上不需要或者用CMS配置字段很難達到業務要求。于是我就對OrchardCMS進行了瘦身,只保留熱插拔模塊式開發,同時去除了大部分表,只保留6個表。
為了對得起開源,我就把自己整理好的代碼分享出來,希望大家能夠一起改進。 https://github.com/nicholaspei/OrchardNoCMS
?
首先看一下最后完成的代碼目錄和之前的代碼目錄:
只保留了相當少的一部分,這就是Orchard可以運行的最小框架了。Orchard.CodeGeneration是為了創建模塊的。而HelloWorld模塊是為了測試模塊式開發創建的新模塊。
當把ContentManagement部分的代碼去掉時,真的是全屏報錯啊。很蛋疼。。經過不懈的努力,讓整個Orchard.Framework跑起來了。
接下來蛋疼的是Orchard.Core。這里最先包含太多模塊,Container,Contents,Dashboard等,大部分都依賴于ContentManagement。最后通過分析代碼,發現其實必須的模塊式Settings和Shapes模塊。
Settings來獲取站點運行時需要的信息,當前語言,時區等。
Shapes是用來把上下文轉換成Html返回給瀏覽器的。最初沒有把Shapes改好,所以出現了Action執行了,但是View卻為空,發現ViewEngine也找到了頁面,卻顯示不出內容來。
默認的Orchard是提供了模塊的管理頁面,皮膚的管理頁面等。我個人覺得其實只需要提供控制臺的模塊管理就可以啦。
支持的命令如下:
?
默認命令中沒有feature update,所以我增加了該命令,可以在模塊的數據結構發生改變時,通過執行feature update來執行Migration。
另外,產品或者項目中,有共享模塊的情況,所以接下來我會把Orchard.Package模塊也集成進去。并加入自己的一些想法,加入NuGet更好的支持,讓共享模塊更加靈活。
?
?
希望Orchard愛好者可以關注該項目,試著使用它,并提出你的意見和建議。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
