2011-05-16 28 views
0

我看到NServiceBus使用MSMQ作爲它的傳輸。爲什麼不使用WCF和MSMQ作爲底層傳輸?爲什麼Nservicebus不使用WCF?

+2

這是他們做出的選擇。 – 2011-05-16 13:22:26

+0

@DanielAWhite是正確的,[這裏是一些更多的信息](http://www.nservicebus.com/Msmq.aspx)NServiceBus的歷史 – 2011-05-16 13:40:15

回答

0

一旦你意識到今天的微軟是很多可能(或最有可能)不可能使用彼此代碼的團隊。 NserviceBus傢伙做出了一個決定,他們不想因爲任何原因使用WCF,就是這樣。

幾年前,我在一個MS會議上向我們介紹MTS,並問他爲什麼那裏的安全組沒有使用本地組(即WinNT安全組)。他歪着頭,說道:「是的,我明白你來自哪個問題,請接下來的問題」。看,MTS的團隊安全性與本地團體的設計完全一樣 - 但MTS團隊認爲他們會實施自己的團隊並忽略基礎的NT安全系統。如果我們可以有1個地方來設置安全性並將其應用於所有Microsoft產品,那我會非常高興,但事實並非如此。即使是微軟自己的開發者。

4

主要原因是MSMQ代碼是在WCF存在之前編寫的。隨着時間的推移,大部分工作都集中在添加新功能,而不是重新考慮已經解決的MSMQ集成問題。

還有一些NServiceBus在MSMQ方面做的事情,WCF不這樣做。例如,如果NServiceBus不存在,NServiceBus將創建一個隊列。這使得使用NServiceBus比使用WCF更順暢。

這並不意味着如果遷移到WCF/MSMQ之上工作,則無法保留此功能,但主要原因在於它與下一版本的所有其他內容相比,優先級太低。

+0

謝謝 - 我總是閱讀Java ESB和JMS。我喜歡.Net,我對.Net ESB感興趣,尤其是NServiceBus。所以,如果你要重新開始,你會使用WCF嗎? – Jason 2011-05-23 13:53:41

+0

Jason,這是一個很好的問題 - 看到WCF固有的複雜性,我仍然可能更願意選擇「更接近金屬」。 – 2011-05-25 14:40:43