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

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