Herkes .NET Remoting'in WCF ile nasıl değiştirildiğini söylüyor, ancak bunun ne kadar doğru olduğunu merak ediyorum. Remoting'in kullanımdan kaldırıldığına dair resmi bir kelime görmedim ve bana öyle geliyor ki Remoting'in WCF'den daha anlamlı olduğu senaryolar var. Remoting ile ilgili nesnelerin veya yöntemlerin hiçbiri, çerçevenin 4.0 sürümünde bile kullanımdan kaldırılmadı. 3.5 ve 4.0 çerçevelerinde System.AddIn'in Remoting kullandığını da anlıyorum.
Aksine resmi bir sözü olan var mı?
Yazılarında, .NET İletişim Seçenekleri Belirleme (o yazının son versiyonu olarak, 3.0 için) belirtir:
8 Uygulamalar arası etki alanı iletişimleri
Aynı işlem içinde farklı uygulama etki alanlarındaki nesneler arasındaki iletişimi desteklemeniz gerekiyorsa, .NET uzaktan erişimini kullanmanız gerekir.
Şimdi, bu, elbette, doğru değil, çünkü WCF kesinlikle uygulama alanı sınırlarını aşmak için kullanılabilir, ancak bu senaryo için resmi bir öneri veriyor mu?
Güncelleme: Şu soruyu (Remoting ve WCF'nin sahibi olan ekipte bulunan) Clemens Vasters'a gönderdim:
Clemens, anladığım kadarıyla hem remoting hem de wcf'ye sahip olan bir takımdasın ve kaynağa gitmem gerektiğini düşündüğüm birkaç sorum var.
Öncelikle, uzaktan kumandanın ortadan kalkıp kalkmayacağıyla ilgili bir sorum var. Spesifik olarak, süreç içi uygulamalar arası iletişim için kapsamlı bir şekilde uzaktan erişim kullanan oldukça büyük bir uygulamamız var ve bu uzaktan erişim kullanımının "eski" kabul edilip edilmediğini merak ediyordum. Eğer öyleyse, AppDomain.CreateInstance ve arkadaşlar başka bir şeyle değiştirilecek mi?
Cevabı şu:
Uzaktan erişim, .Net Framework'ün bir parçasıdır ve bu nedenle ortadan kalkmaz. COM, Windows NT 3.5 / Windows 95'ten beri Windows içindedir ve ortadan kalkmadı ve bunun da yakın zamanda ortadan kalkacağını düşünmüyorum.
Bununla birlikte, Remoting'e giden çok az geliştirme yatırımı var. WCF, Remoting'in halefidir ve yönetilen kod için COM / DCOM'un yerini alır.
Süreç içi, uygulama alanları arası iletişim için Uzaktan erişim, CLR'nin doğal iletişim yöntemidir. Kısa sürede büyük miktarda veriyi veya çok fazla mesajı pompalayan performans sorunları görüyorsanız, WCF ve NetNamedPipeBinding'e ciddi bir göz atmalısınız.