熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

解讀.NET Framework中的COM+與MTS

2013-11-13 10:11:18  來源: .NET編程 

  NET支持COM嗎?

  COM+和MTS在NET上如何存在?

  NET組件和COM組件有什麼區別?

  COM+在NET中依然存在如果應用程序確實需要使用COM+和MTS的功能特性那麼可以選擇合適的技術與NET組件協同工作實際上組件是任何類型解決方案的一部分不管是分布式解決方案還是非分布式組件在NET環境中非常類似一個COM組件它們都是DLL包含一個或多個類能夠被其他應用程序實例化兩者主要的不同點在於它們的實現方法這裡我們不去詳細討論技術細節

  在應用程序中考慮使用什麼樣的組件有多種選擇使用COM+還是MTSCOM+和MTS都能夠與COM組件協同工作因此當創建一個組件時該組件必須符合COM的二進制標准而且需要在使用之前向注冊表注冊

  NET Framework通過COM Interop(COM互操作)技術支持COM+和MTS一個傳統的COM應用程序能夠調用一個NET組件同時NET組件(在NET中稱為NET Assembly)也能夠調用一個COM組件這一非常強大的雙向互操作特性使你可以在應用程序中混合使用兩類技術

  COM+與MTS是與COM組件協同工作的當你放置一個NET組件到到一個MTS包或者一個COM+應用程序中該組件仍然能夠以同樣的方式被一個NET應用程序調用此時你不會意識到COM+和MTS的存在

  下面我們來看一看在使用COM Interop時的性能開銷NET和COM使用不同的執行機制(NET使用通用語言運行時Common Language Runtime而COM則不是)NET組件和COM組件在不同的標准上實現(NET組件使用通用類型標准而COM使用二進制標准)兩者之間的互相調用會增加一些性能開銷事實上每執行一次互操作調用大約花費條CPU指令當你調用一個存在於COM+中的類方法時每次調用都會出現這些性能方面的開銷

  如果一定要使用COM+和MTS的功能特性請把組件存放於COM+和MTS中並確認你需要所有功能特性如果組件只在一個數據庫中執行事務處理而且一直都在單個數據庫環境中工作那麼不需要在使用COM+來完成事務管理僅僅使用ADONET就可以了反之如果需要多個數據庫間的對象池和事務處理支持那麼應用程序就需要COM+和MTS


From:http://tw.wingwit.com/Article/program/net/201311/12835.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.