2010-02-15 111 views
0

我建立一個CMS(ASP.NET C#),我目前正在研究如何實現一個模塊系統。網絡上大多數模塊化系統如何處理?最重要的是我不希望模塊與任何核心文件混淆。如何爲cms創建模塊系統?

案例: 我有一個ajax搜索方法,它使用名爲Search的webservice方法;模塊如何將其搜索結果「添加」到結果列表中?如果核心搜索只搜索網頁,並且我希望搜索也搜索電子商務模塊中的產品,那麼它如何將產品搜索及其內容添加到原始搜索方法的返回列表中?這甚至有可能嗎?

我一直在尋找反射一點,它似乎是有用的從核心內運行模塊代碼,是否正確?

我沒有這種東西的經驗,所以推動正確的方向,和/或鏈接/指南/提示將非常感激。

回答

1

您正在尋找的聲音聽起來非常像基於插件的體系結構。我會研究一些不同的開源項目,看看他們是如何做的,找到最類似於你想做的事情,並用他們的方法來設計你的CMS。

其中一個最大的開源,基於插件的項目是Eclipse,但我也會看其他一些項目。

您也可以在Google上搜索「組件模式」,「模塊模式」和「插件模式」。

+0

我有一種輕微的感覺,我會在黑暗中徘徊,如果我在一個像eclipse這樣的巨大項目中看看:)谷歌搜索確實爲我提供了一些起點雖然,ty :) – Contra

1

我同意託普一般。

在ASP.NET和您給出的示例中,我認爲最好的方法是讓所有模塊實現自己的搜索邏輯,並通過方法公開它。然後,搜索結果將調用該方法以從系統中實現搜索的所有組件/模塊獲取結果。

通常你應該有一些核心系統的框架,組件應該被抽象(通用功能的接口)。簡單的經驗法則是「組件被調用,而框架調用組件」。

由於搜索將根據組件的不同而實現,因此實現它的組件的工作以及調用實現的框架工作是該組件的工作。就像Topher說的那樣,在開始思考具體的例子之前,我想你應該有一個整個系統的體系結構。