2012-01-16 44 views
1

我非常希望聽到關於此的意見。重新使用Orchard的核心構建另一個可擴展性框架

我們正在爲Web應用程序構建一個可擴展的體系結構。我們有一個建立默認產品的核心團隊。其他開發團隊採用默認產品,並希望在代碼級別覆蓋/替換/擴展其功能。

我們正在考慮使用Orchard的Core來實現這一點。

如果我們這樣做,它可能會包括:

距離烏 剔除果園的數據庫 在烏節路核心的DLL使用/建築創造了我們需要的可擴展能力相關刪除一切CMS 一種可以替代的是香草ASP.NET MVC的可擴展性。

意見?

回答

1

我們在ITV採取了類似的方法,我們決定遷移到一個新的系統,並想要很多Orchard的功能,但我們並不需要它全部......即CMS的一部分東西。

我們將Orchard.Web作爲我們所有'地區/模塊'的主機 - 這非常重要,因爲它迫使開發人員考慮鬆散耦合他們的組件。

然後我們決定採取框架並剝離它的某些方面。在框架中,我們採用了Logging,Caching和IDependency的DI工具。最難的部分是Autofac。把你的時間花在我認爲的實現上,並不是最好的,我相信它裏面有錯誤。我們花了很多的Orchard DI代碼,並試圖改裝它,沒有所有的shell的東西。

+0

bitbucket鏈接似乎破了.. – Yashvit 2014-04-11 13:46:27

0

果園被稱爲CMS,但它肯定比這更多。這是非常通用的,並且爲您提供了許多非CMS功能。例如,它可以使用模塊輕鬆擴展 - 這對構建框架應用程序非常有用。另外,Orchard不會阻止你使用常規的ASP.NET MVC。如果你在Orchard找不到你需要的東西,你可以添加常規控制器,並在vanilla MVC中實現你的應用程序的一部分。最後,框架本身是非常可擴展的,如果需要的話,通常可以覆蓋它中的每一個機制。

另一方面,烏節起初有點難學。沒有太多的文檔,框架中有很多「魔力」。有時很難弄清楚如何實現某些特定的功能。至少這是我的印象。然而,社區是非常有幫助的,通常你可以找到人來幫助你。當你得到一個果園之後,這是一個很棒的框架。

所以在你的情況下,我認爲這非常值得一試。

0

另一個可能更實驗性的方法是使用Orchard Application Host

這個框架可以讓你在任何應用程序中運行輕量級的Orchard shell,因此你可以在任何地方編寫Orchard代碼,讓它成爲一個控制檯應用程序,雲工作者甚至是非Orchard網絡應用程序(儘管後一個會有點無意義)。

此外,Orchard App Host正是您想要實現的一個示例:將Orchard剝離到其核心並將其用作通用應用程序框架。這是可能的一個相當乾淨的方式(沒有修改果園),但相當複雜。如果沒有更好的理解你的用例,我懷疑你想推出類似的東西。

如果你付費冒險並從那裏開始構建,你基本上可以從Orchard解決方案中刪除每個模塊,甚至是核心模塊:這可能是最簡單的。然而,自然,這也意味着,一旦你嘗試使用不在裸機中的任何東西,你將不得不重新實現已經在Orchard中的東西。

+0

現在我看到這是一個兩歲的問題。它是怎麼回事? – Piedone 2014-10-01 21:57:04