Jaka jest różnica między nimi?
Kiedy wybrałbym jedno zamiast drugiego?
wcf
web-services
Deweloper
źródło
źródło
Odpowiedzi:
Ta odpowiedź jest oparta na artykule, który już nie istnieje:
Streszczenie artykułu:
„Zasadniczo WCF to warstwa usług, która umożliwia tworzenie aplikacji, które mogą się komunikować przy użyciu różnych mechanizmów komunikacyjnych. Dzięki niemu można komunikować się za pomocą sieci peer to peer, nazwanych potoków, usług sieci Web i tak dalej.
Nie można ich porównać, ponieważ WCF to platforma do tworzenia aplikacji współdziałających. Jeśli chcesz, możesz myśleć o tym jako o umożliwieniu SOA. Co to znaczy?
Cóż, WCF jest zgodne z czymś znanym jako ABC, gdzie A to adres usługi, z którą chcesz się komunikować, B oznacza powiązanie, a C oznacza kontrakt. Jest to ważne, ponieważ można zmienić powiązanie bez konieczności zmiany kodu. Kontrakt jest znacznie mocniejszy, ponieważ wymusza oddzielenie kontraktu od realizacji. Oznacza to, że umowa jest definiowana w interfejsie i istnieje konkretna implementacja, do której konsument jest zobowiązany, korzystając z tej samej idei umowy. Model danych jest wyodrębniony ”.
... później ...
„Powinien używać WCF, gdy musimy komunikować się z innymi technologiami komunikacyjnymi (np. Peer to Peer, Named Pipes) zamiast z usługą sieci Web”
źródło
Od Jaka jest różnica między WCF i Web Services?
źródło
Usługa internetowa oparta jest na protokole SOAP i zwraca dane w postaci XML. Obsługuje tylko protokół HTTP. To nie jest oprogramowanie typu open source, ale może być używane przez każdego klienta, który rozumie XML. Może być hostowany tylko w usługach IIS.
Usługa WCF jest również oparta na protokole SOAP i zwraca dane w postaci XML. Jest to ewolucja usługi sieciowej (ASMX) i obsługuje różne protokoły, takie jak TCP, HTTP, HTTPS, Named Pipes, MSMQ. Głównym problemem związanym z WCF jest jego żmudna i rozbudowana konfiguracja. To nie jest oprogramowanie typu open source, ale może być używane przez każdego klienta, który rozumie XML. Może być hostowany w aplikacji lub w usługach IIS lub przy użyciu usługi okna.
źródło
Podstawowa i podstawowa różnica polega na tym, że usługa sieciowa ASP.NET jest zaprojektowana do wymiany komunikatów SOAP tylko przez HTTP, podczas gdy usługa WCF może wymieniać wiadomości przy użyciu dowolnego formatu (domyślnie SOAP) za pośrednictwem dowolnego protokołu transportowego, tj. HTTP, TCP, MSMQ lub NamedPipes itp.
źródło
Usługa sieciowa używa tylko protokołu HTTP podczas przesyłania danych z jednej aplikacji do drugiej.
Jednak usługa WCF obsługuje więcej protokołów do transportu komunikatów niż usługi sieci Web ASP.NET. Usługa WCF obsługuje wysyłanie wiadomości przy użyciu protokołu HTTP, a także protokołu kontroli transmisji (TCP), nazwanych potoków i usługi Microsoft Message Queuing (MSMQ).
Aby opracować usługę w usłudze sieciowej, napiszemy następujący kod
Aby opracować usługę w WCF, napiszemy następujący kod
Usługa sieci Web nie jest bardziej solidna architektonicznie. Jednak usługa WCF jest bardziej niezawodna architektonicznie i promuje najlepsze rozwiązania.
Usługi sieci Web używają XmlSerializer, ale WCF używa DataContractSerializer. Który jest lepszy pod względem wydajności w porównaniu z XmlSerializer?
W przypadku wewnętrznych (za zaporą) połączeń usługa-usługa używamy powiązania net: tcp, które jest znacznie szybsze niż SOAP.
Usługa WCF jest o 25% -50% szybsza niż usługi sieci Web ASP.NET i około 25% szybsza niż usługa zdalna .NET.
WCF służy do komunikacji między innymi aplikacjami, które zostały opracowane na innych platformach i przy użyciu innych technologii.
Na przykład, jeśli muszę przesyłać dane z platformy .net do innej aplikacji, która działa na innym systemie operacyjnym (jak Unix lub Linux) i używają innego protokołu transferu (jak WAS lub TCP), to jest możliwe tylko przesyłanie danych przy użyciu WCF.
Tutaj nie ma ograniczeń co do platformy, protokołu transferu aplikacji podczas przesyłania danych między jedną aplikacją do drugiej.
Bezpieczeństwo jest bardzo wysokie w porównaniu z usługą sieciową
źródło
Główną różnicą jest przekroczenie limitu czasu, usługa WCF przekroczyła limit czasu, gdy nie ma odpowiedzi, ale usługa sieci Web nie ma tej właściwości.
źródło