2010-06-03 81 views
0

CAG文檔中的所有QuickStart和RI示例都很好,但我缺少更多Enterprise示例。如何組織企業級複合應用程序(CAG)

比方說,我們有40多個模塊,每個模塊包含代理,外觀,PresentationModel,模型和視圖。每個模塊還調用特定於模塊的WCF服務,該服務將託管在IIS中或獨立控制檯主機中。我們的方法是將UI模塊,服務模塊和相關測試包括在一個解決方案中,以便可以將其與其他模塊分開開發和測試。

我的問題是當服務在不同的模塊中時應該如何進行服務託管,以及當我按F5時如何實際將單獨的模塊與其餘的應用程序模塊一起運行。對此有最佳做法嗎?我想它已經完成了?

回答

1

我們結束了一個相當簡單的解決方案,其中我們在解決方案中包含Hosting項目作爲「啓動」項目。該項目設置爲不構建並具有模塊的依賴關係。

所有服務DLL:s輸出到一個公共文件夾,其中主機項目動態加載它們,查找ServiceContract屬性並啓動主機。

1

您當然可以將每個模塊作爲服務點的應用程序或虛擬目錄實例進行託管,但我想說的是,您是否允許解決方案分區的開發「便利」爲您的服務指定了生產體系結構?我們通常基於層而不是模塊分區來處理這個問題 - 換句話說,您將擁有一個包含域/模型和一個服務的項目,然後每個「模塊」可以引用公共服務池。我想這取決於相互關聯的模塊是如何,有多少交叉通信,等等。

每個服務都可以配置爲運行在不同的端口或目標上,但是我覺得也許你的問題來自於服務,並且您可以從跨模塊共享的通用服務項目中受益。

+0

我們創建「模塊」的第一個目標是縮短開發週期和持續測試的週轉時間,因此我們希望能夠獨立開發和測試垂直行業。 今天,在開發過程中,我們沒有使用IIS進行託管,但也許這是前進的方向。然後,每當我想構建和運行解決方案並將文件部署到IIS所指向的文件夾時,該解決方案就沒有真正負責啓動新的「控制檯主機」。 – David 2010-06-09 06:50:23