WCF'de web referansı ile hizmet referansı arasındaki fark nedir? WCF'de hangisi tercih edilir?
WCF'de web referansı ile hizmet referansı arasındaki fark nedir? WCF'de hangisi tercih edilir?
Yanıtlar:
Buradaki düşük seviyeli cevap, bir Web Referansının, kodunuzun WSDL aracılığıyla açıklanan ve SOAP veya HTTP GET aracılığıyla iletişim kuran bir Web Hizmeti ile konuşmasına izin veren bir istemci proxy sınıfı oluşturacağıdır (diğer posterler bunun yalnızca ASMX olduğunu belirtir, ancak Web Referansları, hepsi WSDL konuştukları ve WS-I birlikte çalışabilirlik standardına uydukları sürece Java tabanlı Web Hizmetleri veya Python tabanlı veya Ruby ile de konuşabilir.
Bir Hizmet Referansı, WCF tabanlı bir hizmetle iletişim kuran bir istemci proxy sınıfı oluşturur: bu WCF hizmetinin bir Web Hizmeti olup olmadığına bakılmaksızın.
Web Referansı, WS-I Temel Profil 1.1'i uygulayan herhangi bir teknolojiye dayalı herhangi bir hizmetle iletişim kurmanıza olanak tanır ve ilgili meta verileri WSDL olarak gösterir. Dahili olarak, istemci tarafındaki ASMX iletişim yığınını kullanır.
Bir Hizmet Referansı, WCF tarafından desteklenen (WS-I Temel Profil dahil, ancak bununla sınırlı olmamak üzere) birçok protokolü uygulayan herhangi bir teknolojiye dayalı herhangi bir hizmetle iletişim kurmanıza olanak tanır. Dahili olarak, istemci tarafındaki WCF iletişim yığınını kullanır.
Bu tanımların her ikisinin de oldukça geniş olduğunu ve her ikisinin de .NET ile yazılmayan hizmetleri içerdiğini unutmayın.
WCF uç noktası basicHttpBinding
veya bazı uyumlu özel varyantları kullandığı sürece, bir WCF hizmetine işaret eden bir Web Referansı eklemek tamamen mümkündür (ancak önerilmez) .
Bir ASMX hizmetine işaret eden bir Hizmet Referansı eklemek de mümkündür. Yeni kod yazarken , daha esnek ve geleceğe yönelik olduğu için her zaman bir Servis Referansı kullanmalısınız .
Client
eki olan bir sınıf arayın .
Hizmet referansı, WCF hizmetlerinin her türüne (web hizmetleri olmayabilir) referans eklemek için daha yeni bir arabirim iken, Web referansı özellikle ASMX web referansları ile ilgilidir.
Servis referansı ekle'deki gelişmiş seçenekler aracılığıyla web referanslarına erişebilirsiniz (doğru hatırlıyorsam).
Servis referansını kullanırım çünkü anladığım kadarıyla bu, ikisinin daha yeni mekanizması.
Hizmet referansları, tamamen yapılandırılabilir olan uç noktalar ve bağlamalarla ilgilenir. Herhangi bir aktarım protokolü (HTTP, TCP, Paylaşılan Bellek, vb.) Aracılığıyla istemci proxy'nizi bir WCF'ye yönlendirmenize izin verirler.
WCF ile çalışmak üzere tasarlanmıştır.
Bir WebProxy kullanıyorsanız, kendinizi HTTP üzerinden WCF kullanmaya büyük ölçüde bağlıyorsunuz
Dikkate alınması gereken bir diğer nokta da, Servis Arayüzü için yeni kullanıcı arayüzünün, proxy sınıfınızı nasıl oluşturmak istediğiniz konusunda size çok daha fazla esneklik sağlayacağıdır. Örneğin, eğer eşleşiyorlarsa, veri sözleşmelerini mevcut dll'lerle eşleştirmenize olanak tanır (aslında bu varsayılan davranıştır).