簡體   English   中英

.NET替代COM嗎?

[英]Is .NET replacement for COM?

我想知道.NET和COM的目的,

  • .NET與COM的目的是否相同? 因為COM的主要目的是允許.NET的語言互操作性?
  • 如果是這樣的話為什么許多公司仍在使用COM進行開發項目?
  • 當我們可以使用.NET時,是否值得學習COM?
  1. COM的一個原因是,如果您在Borland C ++構建器中開發了C ++庫,則無法在VB6中使用它。 但你也不能在VC6中使用它(COM比這些產品更老了)。 所以COM是一個C類協議,用於應用程序和庫之間的互操作性。 .NET允許托管應用程序之間的互操作性。 如果要與C ++互操作,請使用C ++ / CLI。 但是如果你有一個希望使用.NET組件的傳統COBOL應用程序,你會怎么做? 將該組件公開為COM將是一種接近它的方法。 暴露類似API的API是另一種方式。

  2. 自從80年代末以來COM一直存在以來(我認為)很多商業價值都建立在COM技術之上,這並不令人驚訝。 它沒有任何商業意義,並且將工作應用程序重寫為.NET只是為了它的樂趣而且成本太高且風險太大。 因此,必須維護遺留應用程序的公司自然會擁有大量基於COM的工具和應用程序。

  3. 這一切都取決於您的業務案例。 你能不能只使用.NET平台我猜你不需要知道COM(雖然.NET由.NET平台使用,有時會出現錯誤泄漏)。 如果您正在使用操作系統或其他庫公開的COM庫,那么了解一些基本的COM規則是有意義的。

PS。 我喜歡COM。 我不喜歡注冊部分,我不喜歡DCOM,我認為最終COM公寓比幫助開發人員更困惑(它最初是為幫助開發人員避免競爭條件和相關問題而開發的)。 但核心COM相當不錯。 一些爭吵已經結束“是COM OO嗎?” 但歸結為我們為什么要使用OO? IMO給予封裝。 那么問題是:“COM是否提供了良好的封裝?”。 答案是肯定的(IMO)。

PS。 最后我檢查了Firefox使用了一個名為XPCOM的東西,看起來很像我的COM。

你可能會發現這個Channel9視頻很有趣。 微軟COM / WCF專家Juval Lowy說,可能每個類都有一個WCF服務,類似於DCOM

http://channel9.msdn.com/shows/ARCast.TV/ARCastTV-Every-Class-a-WCF-Service-with-Juval-Lowy/

該鏈接認為,在易用性和易於開發的性能方面做出了妥協。 隨着這種趨勢的繼續,降低了對低級COM / DCOM編程的需求。 當然,這並不涵蓋所有情況,但它確實涵蓋了許多非關鍵業務需求。

你應該學習COM嗎? 就目前而言,WCF(以及.NET的其他部分)基於COM。 了解COM將有助於解決那些突然出現的低級別問題,但除非是您的主要或次要職業重點,否則我不會花費大量時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM