COM+ 在 .NET 中依然存在。若應用程式確需 COM+/MTS 服務 (物件集區、分散式交易、即時事件等),可透過 COM Interop 與 .NET 組件協作。
| 特性 | .NET 組件 | COM 組件 |
|---|---|---|
| 檔案形式 | DLL/EXE | DLL/EXE |
| 內含 | 一或多個類型、中繼資料 | 一或多個類別、二進位介面 |
| 實作標準 | Common Type System (CTS) | COM 二進位標準 |
| 執行機制 | Common Language Runtime (CLR) | COM 執行環境 |
| 註冊 | 不需註冊表 (依賴 GAC/應用程式基底) | 需向註冊表註冊 |
將 .NET 組件置於 COM+ 應用程式或 MTS 套件中:
[Transactional]、[ObjectPooling] 等屬性並註冊至 COM+ 目錄| 情境 | 建議 |
|---|---|
| 單一資料庫本地交易 | 直接使用 ADO.NET SqlTransaction,無需 COM+ |
| 跨多資料庫/資源管理員分散式交易 | 需要 COM+ (自動登記 DTC 交易) |
| 物件集區、即時事件、安全性角色 | 需要 COM+ |
| 純 .NET 內部元件通訊 | 使用 .NET Remoting / WCF / gRPC,避免 COM Interop 開銷 |
COM+/MTS 非被 .NET 取代,而是透過 Interop 共存。僅在確需企業級服務 (分散式交易、物件集區) 時引入,否則純 .NET 方案更輕量高效。