Różnica między WCF i internetowym interfejsem API
Co to jest WCF?
WCF oznacza Windows Komunikacja Foundation. Służy do tworzenia rozproszonych i interoperacyjnych aplikacji. WCF jest skuteczną platformą do tworzenia aplikacji zorientowanych na usługi. Umożliwia deweloperom tworzenie bezpiecznych, niezawodnych i wysokoprofilowych rozwiązań programistycznych, które można integrować na różnych platformach i które mogą współpracować z istniejącymi inwestycjami.
Co to jest interfejs API sieci Web?
ASP.NET Web API to framework pozwalający na budowanie usług HTTP dla przeglądarek i urządzeń mobilnych. Jest to idealna platforma do rozwoju Aplikacje RESTful na platformie ASP .NET Framework.
ASP.NET Web API to rozszerzalna struktura umożliwiająca tworzenie usług opartych na protokole HTTP, do których można uzyskać dostęp w różnych aplikacjach na różnych platformach, takich jak sieć, system Windows, urządzenia mobilne itd.
KLUCZOWA RÓŻNICA
- WCF oferuje odpowiedź na żądanie, komunikację jednokierunkową lub dupleks, natomiast interfejs Web API domyślnie obsługuje wyłącznie komunikację typu żądanie-odpowiedź.
- WCF służy do tworzenia usług opartych na protokole SOAP, podczas gdy Web API jest używany zarówno do usług opartych na protokole SOAP, jak i usług RESTful.
- WCF nie oferuje żadnej obsługi funkcji MVC, podczas gdy interfejs API sieci Web obsługuje funkcje MVC.
- WCF obsługuje protokół HTTP, UDP i niestandardowy protokół transportowy, podczas gdy interfejs API sieci Web obsługuje tylko protokół HTTP.
- WCF oferuje obsługę kodowania tekstowego, MTOM i binarnego, podczas gdy interfejs API sieci Web obsługuje format kodowania UTF-8.
- WCF obsługuje kolejki komunikatów, zabezpieczenia komunikatów, komunikację dupleksową i transakcje, podczas gdy Web API tego nie obsługuje.
- WCF oznacza Windows Komunikacja Foundation podczas gdy API oznacza interfejs programu aplikacji.
Dlaczego warto używać WCF?
Oto zalety/korzyści korzystania z WCF:
- WCF jest idealną opcją, jeśli planujesz używać NET Framework 3.5.
- WCF obsługuje wiele protokołów, takich jak HTTP, TCP, potok nazwany.
- Usługa WCF jest przydatna, jeśli chcesz zbudować usługę zgodnie ze standardami, takimi jak bezpieczeństwo transakcji i niezawodne bezpieczeństwo wiadomości.
- W ramach WCF można stosować wzorce wymiany komunikatów: żądanie-odpowiedź, jednokierunkowy i dupleks.
Dlaczego wykorzystano Web API?
Oto zalety/korzyści korzystania z internetowego interfejsu API:
- Web API zapewnia obsługę akcji CRUD opartych na konwencji, ponieważ współpracuje z czasownikami HTTP (GET, PUT, POST i DELETE).
- Można go łatwo zdefiniować, udostępnić i wykorzystać w sposób zgodny z REST.
- ASP.Net Web API pozwala prezentować dane i usługi różnym urządzeniom.
- Web API jest open source, więc jest idealną opcją do tworzenia usług RESTful na platformie .NET.
- Umożliwia skalowalne, niezależne tworzenie usług internetowych, które mogą być współużytkowane i wykorzystywane przez innych programistów w celu uzyskania dostępu do usług internetowych.
- Pomocne jest także budowanie prostych usług HTTP nieopartych na SOAP.
Charakterystyka WCF
- Wysoce konfigurowalne transporty
- Lepsze opcje serializacji
- Dobrze zintegrowany z IIS
- Łatwy do samodzielnego hostingu
- Bardzo bogate metadane
- Złożony model publikacji
- Bogate kontrakty danych
Charakterystyka Web API
- Ściśle powiązane z HTTP
- Łatwy do przetestowania
- Oferuje wsparcie w negocjacjach treści
- Umożliwia formatowanie otwarte
- Żadnego polegania na platformie
- Solidna orientacja na zasoby
- Doświadczenie na poziomie 2 z rodzącym się wsparciem hipermediów
Usługa internetowa WCF kontra usługa internetowa
Parametr | WCF | Internetowy interfejs API |
---|---|---|
Wzorzec wymiany wiadomości | Poproś o odpowiedź jednokierunkową lub dupleksową. | Domyślnie tylko żądanie-odpowiedź. Jednakże dodatkowy wzorzec komunikatów może być obsługiwany poprzez integrację z gniazdami internetowymi. |
hosting | Hosting IIS, usługi samodzielnego hostingu i aktywacji dzieł. | Hosting własny i hosting IIS. |
open Source | To nie jest oprogramowanie typu open source. | Jest dostarczany z platformą .Net. Jest również dostępny do samodzielnego pobrania. |
Obsługa funkcji MVC | WCF nie zapewnia żadnej obsługi funkcji MVC, takich jak kontrolery, routing, filtr, wyniki aukcji itp. | ASP.NET Web API obsługuje funkcje MVC, takie jak routing, kontrolery, wyniki, filtry, akcje itp. |
Obsługa kodowania | Tekst, MTOM i binarny. | Domyślna obsługa formatu kodowania UTF-8. |
Wsparcie dla | Obsługa protokołu HTTP, UDP i niestandardowego protokołu transportowego. | Obsługuje tylko protokół HTTP |
Użycie modelu | Model programowania oparty na przypisywaniu użytkownika. | Mapuje czasowniki HTTP na metody |
systemu | Używa pliku web.config i atrybutów do konfigurowania klasy HttpConfiguration, ale nie w usłudze web.config. | Web API można skonfigurować za pomocą usługi web.config. |
Usługi RESTful | Oferuje wsparcie dla usługi RESTFUL, ale z ograniczeniami. | Idealny do budowania usług RESTFUL. |
Decydujący czynnik dla WCF vs. Web API
Poniżej znajduje się krótka lista kontrolna, która pomoże Ci określić, czy użyć WCF czy interfejsu API sieci Web
Scenariusz | WCF 4.5 | Internetowy interfejs API platformy ASP.NET |
---|---|---|
Wymaga obsługi takich scenariuszy, jak kolejki komunikatów, kompleksowe zabezpieczenia komunikatów, komunikacja dupleksowa, rozproszone transakcje itp. | Wybierz | NIE wybieraj |
Jeśli masz już działające usługi WCF i chcesz dodatkowo dodać obsługę protokołu HTTP. | Wybierz | NIE wybieraj |
Jedna baza kodu zapewniająca obsługę punktów końcowych SOAP i RESTful. | Wybierz | NIE wybieraj |
Chce utworzyć usługę zorientowaną na zasoby za pośrednictwem protokołu HTTP. | NIE wybieraj | Wybierz |
Twój projekt jest aplikacją MVC i wymaga pewnych funkcjonalności za pośrednictwem protokołu HTTP. | NIE wybieraj | Wybierz |
Chcesz zbudować tylko usługi HTTP/RESTful | NIE wybieraj | Wybierz |