2012-01-13 159 views
3

我目前正在研究一個包含4個不同組件的WCF項目。沒有任何組件是相互關聯的。擁有多個WCF項目vs 1個具有多個服務的WCF項目

目前我已經做了一個項目,包括四項服務。我意識到如果其中一個組件發生變化,我們將不得不測試整個項目以確保安全。

鑑於如果我製作4個不同的項目,它們彼此不相關或彼此交談,這將使測試和集成變得更容易。而如果我們改變一個項目,其他項目不會受到影響或下降。

我需要一些有利有弊的反饋。

同樣,組件之間不會互相通話或互相呼叫。

+0

您能澄清嗎?你的意思是說你有一個.sln內有多個WCF應用程序,或者一個.sln有一個定義多個服務的單個WCF應用程序? – 2012-01-13 16:20:56

+0

我目前在.config文件中有3個svc文件和3個服務列表。 – user724535 2012-01-13 16:23:13

回答

3

明確不同的組件。它會減少鬆耦合。

如果他們共享一些共同的基礎設施(錯誤處理,日誌記錄,行爲...),則使用第四個公共組件。

它不會影響您部署服務的方式。如果他們的目的是在IIS中的同一個Web應用程序中生存,那麼他們只需要3個程序集。 servicemodel配置不會改變。如果他們將生活在不同的應用程序中,那麼它更好

如果你認爲3服務仍然是可持續的,想想10 ...如你所說,其中一個小小的變化是所有人的一個ne版本

他們aretalking(或沒有)的事實一起犯規的影響,因爲它們是服務,而不是組件

,另一方面,有很多服務的問題時,解決辦法之一是建立一個服務總線,和那麼,你的服務只是普通的班級,不管他們是否在同一個集合中(甚至可能更容易相同)

但在您的情況下,明確不同的程序集

+0

我的老闆想讓我做一項服務,現在有4個組件。因爲他說他不想向客戶公開四種不同的Web服務接口。只想使用一個服務並列出該服務包含的所有方法。所以,一個svc文件和類實現了4個接口,並在一個服務中列出了所有的方法。但是,在這種情況下,負載均衡和實例化工作將如何呢? – user724535 2012-01-19 04:46:32

0

每個服務都應該建立到它自己的程序集,並且在部署時應該運行在它自己的應用程序池中。之後,這些項目是否屬於同一解決方案並不重要。