回答
我都用了COM +(加COM和DCOM)和WCF每個年。這包括使用這兩種技術建立大型航空公司預訂系統
WCF和COM +真的是兩個不同的怪獸。 COM +是爲COM盛世而建造的。因此,在任何可以很好地發揮COM功能的環境(如VB6)中使用它非常簡單。在這些環境中,你無法打敗它,因爲開發的方便性和性能。 COM +還爲您提供許多「免費贈品」,如交易。我們使用了很多年,對此非常滿意。表現也非常好。
COM +也可以使用DOTNET,但我從來沒有覺得這是一個一流的公民。我總是感覺到微軟在dotNET中支持COM +,因爲他們也有。它總是對我感到有點笨拙。
WCF是一個dotNET野獸。我看到WCF的巨大優勢是靈活性。您幾乎可以插入或構建任何您可能需要的通信協議。希望易用性,請使用HTTP。希望對象儘可能的緊湊和高性能,使用TCP和二進制序列化等。它在dotNET世界中表現良好。 WCF還有很多「開箱即用」功能,例如交易,排隊,安全通道,負載平衡等等。但是您必須將其配置爲將這些功能與非常複雜且隱藏的配置文件一起使用。在COM +中,大多數這些只是組件服務中的複選框。
關於性能。如果你遵循所有規則(當調用完成時調用SetComplete,不保持狀態等),我總是發現COM +速度非常快。 WCF也可以超快,但你必須確保你正確配置它。 WCF讓你配置一切。這可能非常棒,但它也讓你真正輕鬆地製造出大量的東西。 WCF獲得的最大成功可能是你的對象序列化(至少在我的經驗中)。
正如我所說,WCF是超級靈活的。您可以通過防火牆和Web或私有WAN使用它,而不會有太多困難。試着用COM +來做這件事(祝你好運,我已經做到了,這很不容易)。我們使用WCF通過專用通信網絡在機場之間建立通信,所有通信都由不同方所擁有的不同防火牆保護。
真的,如果你想要一些WCF的善良沒有所有的痛苦,看看的WebAPI(http://www.asp.net/web-api)。他們開始在WCF之上構建它,以便讓WCF輕鬆快速地啓動和運行。但我不認爲它已經與WCF聯繫在一起了。這就是說,它不提供WCF的所有功能,如果您需要這些高級功能,您將無法使用WebAPI。
有趣的事實我自己最近了解到,[WCF也可以做交易](http://msdn.microsoft.com/en-us/library/ff384250.aspx)。 –
值得指出的是,有很多「WCF善良」不在WebAPI中,WebAPI專門用於在HTTP上構建(通常是類REST)服務。如果您正在考慮試圖阻止例如交易到Web API中,您可以直接從WCF開始。 – shambulator
我不是故意暗示WCF不能做交易。 WCF也具有「開箱即用」的大量功能。我會修改我的答案以澄清。 – Zippit
- 1. 用.NET COM替換原生C++ COM .dll
- 2. WCF COM +組件
- 3. WCF,SOAP 1.1替換前綴
- 4. 使用WCF替換TCP/IP管道
- 5. 任何引用來替換WCF的XmlSerialiaztioNBehavior?
- 6. 觀看WCF活動,如Com +
- 7. 與COM DLL調用WCF服務
- 8. 替換WCF默認的JSON序列化
- 9. 我們可以通過單個WCF調用來替換多個WCF調用嗎?
- 10. 用VB6替代VB6 COM +組件?
- 11. 我如何擺脫..替換(替換(替換(替換(替換(...?
- 12. 如何用'\'替換'/'使用QString替換()?
- 13. 在運行時替換COM類的實現
- 14. javascript將sitename.com替換爲sitename2.com粘貼到textarea時
- 15. 我該如何替換http://site.com/page1/node2到http://page1.com/node2?
- 16. 非MFC替換AfxConnectionAdvise爲Microsoft COM對象在mingw
- 17. 轉換COM到EXE
- 18. 用於跨進程/機器通信的WCF替換
- 19. 用Newtonsoft Json.Net替換WCF內置JavascriptSerializer json序列化器
- 20. 使用代碼配置替換app.config中的配置WCF服務
- 21. WCF:我需要用動態名稱空間替換「http://tempuri.org/」嗎?
- 22. 用C++/CLI服務替換c#wcf服務
- 23. WCF和Azure:用真實證書替換自簽名證書
- 24. WCF服務和COM互操作回調
- 25. COM參考WCF服務錯誤
- 26. WCF COM複雜類型互操作
- 27. LibreOffice替換宏 - 只替換一次並用格式替換
- 28. 用php替換反斜槓替換
- 29. 使用替換的Javascript替換字符()
- 30. sed用替換替換整個行
你在網上發現了什麼?你讀了什麼?然後,用一個更精確的問題來說明你的發現。 – Askolein
像@Askolein說的那樣,問精確的問題,並分享你的分析和發現。 –