Semua orang mengatakan bagaimana .NET Remoting digantikan oleh WCF, tapi saya bertanya-tanya seberapa akurat itu. Saya belum melihat kata resmi bahwa Remoting tidak digunakan lagi, dan menurut saya pasti ada skenario di mana Remoting lebih masuk akal daripada WCF. Tak satu pun dari objek atau metode terkait jauh telah dihentikan, bahkan dalam versi 4.0 kerangka kerja. Ini juga pemahaman saya bahwa System.AddIn dalam kerangka kerja 3.5 dan 4.0 menggunakan Remoting.
Apakah ada yang punya kata resmi yang bertentangan?
Dalam artikel, Memilih Opsi Komunikasi di .NET (untuk 3.0, karena itu adalah versi terbaru dari artikel itu), itu menyatakan:
8 Komunikasi domain lintas aplikasi
Jika Anda perlu mendukung komunikasi antara objek di domain aplikasi yang berbeda dalam proses yang sama, Anda harus menggunakan jarak jauh .NET.
Sekarang, tentu saja, itu tidak akurat, karena WCF tentu saja dapat digunakan untuk melintasi batas domain aplikasi, tetapi apakah itu memberikan rekomendasi resmi untuk skenario itu?
Pembaruan: Saya mengirim Clemens Vasters (yang berada di tim yang memiliki Remoting dan WCF) pertanyaan ini:
Clemens, saya mengerti Anda berada di tim yang memiliki remoting dan wcf, dan saya punya beberapa pertanyaan yang saya yakin perlu saya tanyakan ke sumbernya.
Pertama, saya memiliki pertanyaan tentang apakah remoting akan dihentikan. Secara khusus, kami memiliki aplikasi yang agak besar yang menggunakan remote secara ekstensif untuk komunikasi lintas-appdomain dalam proses, dan saya bertanya-tanya apakah penggunaan remote ini dianggap "warisan". Jika demikian, apakah AppDomain.CreateInstance dan teman-teman akan diganti dengan yang lain?
Ini jawabannya:
Remoting adalah bagian dari .Net Framework dan karenanya tidak akan hilang. COM telah ada di Windows sejak Windows NT 3.5 / Windows 95 dan belum hilang dan saya juga tidak melihat itu akan hilang dalam waktu dekat.
Meskipun demikian, investasi pembangunan yang masuk ke Remoting sangat minim. WCF adalah penerus dari Remoting dan menggantikan COM / DCOM untuk kode yang dikelola.
Untuk komunikasi lintas-domain dalam proses, Remote adalah cara komunikasi asli CLR. Jika Anda melihat masalah kinerja yang memompa data dalam jumlah besar atau sangat banyak pesan dalam waktu singkat, Anda harus memperhatikan WCF dan NetNamedPipeBinding dengan serius.