Jaka jest różnica między odwołaniem do sieci Web a odwołaniem do usługi w programie WCF? Co jest lepsze w WCF?
Jaka jest różnica między odwołaniem do sieci Web a odwołaniem do usługi w programie WCF? Co jest lepsze w WCF?
Odpowiedzi:
Odpowiedź niskiego poziomu jest taka, że odniesienie do sieci WWW utworzy klasę proxy klienta, która pozwoli Twojemu kodowi komunikować się z usługą sieciową opisaną przez WSDL i komunikującą się za pośrednictwem protokołu SOAP lub HTTP GET (inne plakaty wskazują, że jest to tylko ASMX, ale Odnośniki internetowe mogą również komunikować się z usługami sieciowymi opartymi na języku Java lub opartymi na języku Python lub Ruby, o ile wszystkie mówią w języku WSDL i są zgodne ze standardem interoperacyjności WS-I).
Odwołanie do usługi utworzy klasę proxy klienta, która komunikuje się z usługą opartą na WCF: niezależnie od tego, czy ta usługa WCF jest usługą sieci Web, czy nie.
Odsyłacz WWW umożliwia komunikację z dowolną usługą opartą na dowolnej technologii, która implementuje WS-I Basic Profile 1.1 i udostępnia odpowiednie metadane jako WSDL. Wewnętrznie używa stosu komunikacyjnego ASMX po stronie klienta.
Odwołanie do usługi umożliwia komunikowanie się z dowolną usługą opartą na dowolnej technologii, która implementuje dowolny z wielu protokołów obsługiwanych przez WCF (w tym między innymi WS-I Basic Profile). Wewnętrznie używa stosu komunikacji WCF po stronie klienta.
Zauważ, że obie te definicje są dość szerokie i obie obejmują usługi, które nie są napisane w .NET.
Jest całkowicie możliwe (choć nie jest to zalecane), aby dodać odwołanie do sieci Web, które wskazuje na usługę WCF, o ile punkt końcowy WCF używa basicHttpBinding
lub jakiegoś zgodnego wariantu niestandardowego.
Możliwe jest również dodanie odwołania do usługi, które wskazuje na usługę ASMX. Podczas pisania nowego kodu należy zawsze używać odwołania do usługi tylko dlatego, że jest on bardziej elastyczny i przyszłościowy.
Client
sufiksem.
Dokumentacja usługi to nowszy interfejs służący do dodawania odwołań do wszystkich rodzajów usług WCF (mogą nie być usługami sieci Web), podczas gdy odwołanie do sieci Web dotyczy w szczególności odwołań do sieci Web ASMX.
Możesz uzyskać dostęp do odwołań internetowych za pomocą zaawansowanych opcji w dodawaniu odwołania do usługi (jeśli dobrze pamiętam).
Użyłbym odwołania do usługi, ponieważ, jak rozumiem, jest to nowszy mechanizm dwóch.
Odwołania do usług dotyczą punktów końcowych i powiązań, które są w pełni konfigurowalne. Pozwalają wskazać serwerowi proxy klienta do WCF za pośrednictwem dowolnego protokołu transportowego (HTTP, TCP, pamięć współdzielona itp.)
Są przeznaczone do pracy z WCF.
Jeśli używasz WebProxy, prawie wiążesz się z użyciem WCF przez HTTP
Inną kwestią, którą należy wziąć pod uwagę, jest to, że nowy interfejs użytkownika dla interfejsu usługi zapewni znacznie większą elastyczność w zakresie tworzenia klasy proxy. Na przykład pozwoli ci mapować kontrakty danych na istniejące biblioteki DLL, jeśli pasują (w rzeczywistości jest to zachowanie domyślne).