.NET Remoting
.NET Remoting 是微軟 .NET Framework 中的一種網路通訊技術,與 XML Web Service 不同的是,它可以使用 SOAP 以外的協定來通訊,而在伺服端和用戶端之間所操作的方法近乎相同,用戶端可以不必考慮使用的協定,即可存取伺服端所開放的物件。這個技術與是由Distributed COM所發展而來的,與DCOM最大的不同是,DCOM有限制使用 TCP Port,但.NET Remoting 可以選擇使用 TCP 或 HTTP 的方式通訊,而資料可以利用 SOAP 或二進位傳輸方式在網路上流動,二進位的傳輸效能是 SOAP 所不能比的,但 SOAP 卻可以得到和 Web Service 相互溝通的能力,因此 .NET Remoting 的設計彈性較大。
.NET Remoting 技術目前已整合到 Windows Communication Foundation 中。
原理

.NET Remoting 使用了 Channel 和 Serialization 機制來串接兩台機器間的物件,Channel 是負責處理網路通訊的部份,而 Serialization 則是處理物件與串流資料的處理工作。
- Channel 支援了 IPC (行程間通訊)、TCP 與 HTTP 通訊協定。
- Serialization 支援二進位 (binary) 或 XML (SOAP) 通訊協定的資料串流。
.NET Remoting 的設計理念,就是為了要簡化網路上的物件通訊,而且要讓開發人員不必太過於在通訊的底層傷腦筋,因此在網路通訊協定上做了許多的包裝,並且允許在 Configuration File (app.config) 中直接設定,或是由 .NET Remoting 的 Configuration API 來設定即可,故組態設定的選項複雜度較高,設計較複雜的 .NET Remoting 應用程式在組態的設定上往往會相當複雜。
活化模型
活化 (Activation) 是指用戶端啟動伺服端元件的方式,.NET Remoting 中支援了兩種方式:
- Single-Call: 在每一次用戶端呼叫時都生成一個執行個體。
- Single-ton: 在第一次呼叫時就生成執行個體,之後每一次呼叫都使用相同的執行個體。