Kategorie szkoleń | Egzaminy | Kontakt

Odpowiedzi (4)

  • 8

 

Podstawą komunikacji z WCF Data Service jest protokół OData, który ma bardzo duży narzut na wielkość komunikatów i zabiera szerokie pasmo. Dlatego nie nadaje się do zastosowania w rozwiązaniach mobilnych, gdzie nie zawsze mamy dobre parametry połączenia. Natomiast WebAPI wykorzystuje "czysty" json lub xml i dzięki temu komunikaty są mniejsze.
 
 
Druga sprawa, to popularność. Protokół OData promowany był przez kilka lat tylko przez Microsoft i nie zdobył zbyt wielkiej popularności poza ekosystemem Microsoftu (Sharepoint).
Natomiast JSON, dzięki swej prostocie i natywnej obsłudze przez JavaScript (obiekty przechowuje w pamięci w formacie json) stał się powszechnym sposobem komunikacji.
Owszem WCF Data Service umożliwiał bardzo szybkie wystawienie bazy danych na świat, ale jeśli chcieliśmy opublikować źródło danych innego typu, to trzeba było zaimplementować własną klasę i nie było to już takie proste.
 
 
W przypadku WebAPI to nie ma większego znaczenia co publikujemy. Tworzymy kontrolery zgodnie ze wzorcem MVC i to wszystko. Resztę wykona za nas technologia.
To nie koniec zalet. Jeszcze kilka z moich obserwacji:

- brak silnego powiązania klienta z usługą (nie dodajemy usługi poprzez Add Service)
- domyślnie praca z REST API (w przypadku WCF trzeba było dodatkowo umieszczać atrybuty)
- brak potrzeby konfiguracji, która w przypadku WCF potrafi spędzić sen z powiek :)

Co ciekawe, WebAPI można również uruchomić, podobnie jak WCF, w procesie własnej aplikacji (Self-Host). Można go zatem zastosować w wielu przypadkach, na przykład we własnej aplikacji lub w  usłudze Windows (Windows Service).
  • Odpowiedział
  • @ | 06.06.2014
  • TRENER ALTKOM AKADEMII
Komentarze
  • 2

Postawione pytanie jest analogicznym do pytania typu "Czy lepszy jest młotek zegarmistrzowski czy pneumatyczny?" :)

WebAPI oraz WCF są narzędziami. Jeśli odpowiedziałem sobie na pytanie, co chcę osiągnąć oraz gdy znam zalety i wady tych narzędzi, wtedy potrafię zdecydować, które z nich będzie lepszym do realizacji założonego celu.

Zatem czego nie posiada WebAPI, a co daje WCF?

  • Odpowiedział
  • @ | 31.07.2014
  • TRENER ALTKOM AKADEMII
Komentarze
WebAPI działa tylko w oparciu o protokół HTTP natomiast WCF obsługuje również protokoły TCP, UDP.

WCF posiada obsługę komunikacji dwukierunkowej (duplex) oraz kolejkowania czego WebAPI nie ma. Wysyłanie danych z serwera do klienta można zrealizować za pomocą WebSocket lub SignalR.

WebAPI nie zastępuje w pełni WCF, ale w wielu przypadkach jest wygodniejsza.

Polecam artykuł Ricka Strahla, który opisuje gdzie najlepiej pasuje WebApi:
weblog.west-wind.com/posts/2012/Aug/07/Where-does-ASPNET-Web-API-Fit

Polecam również porównanie poszczególnych technologii:
http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-REST-and-Web-Service.html

oraz artykuł z MSDN:
http://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx


Skomentował : @ TRENER ALTKOM AKADEMII ,04.08.2014
  • 3

WebAPI działa tylko w oparciu o protokół HTTP, natomiast WCF obsługuje również protokoły TCP, UDP. 

WCF posiada obsługę komunikacji dwukierunkowej (duplex) oraz kolejkowania czego WebAPI nie ma. Wysyłanie danych z serwera do klienta można zrealizować za pomocą WebSocket lub SignalR.

WebAPI nie zastępuje w pełni WCF, ale w wielu przypadkach jest wygodniejsza.

Polecam artykuł Ricka Strahla, który opisuje gdzie najlepiej pasuje WebAPI:


weblog.west-wind.com/posts/2012/Aug/07/Where-does-ASPNET-Web-API-Fit


Polecam również porównanie poszczególnych technologii:


http://www.dotnet-tricks.com/Tutorial/webapi/JI2X050413-Difference-between-WCF-and-Web-API-and-WCF-REST-and-Web-Service.html


oraz artykuł z MSDN:


http://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx

  • Odpowiedział
  • @ | 04.08.2014
  • TRENER ALTKOM AKADEMII
  • 1

Polubiłem WCF za łatwość robienia złączeń po stronie klienta i wysyłania złożonych zapytań z pomocą OData. To mi ułatwiało robotę w aplikacjach raportowych. A teraz trudno mi się uwolnić. :)

  • Odpowiedział
  • @ | 16.06.2015
  • TRENER ALTKOM AKADEMII
Komentarze
Ależ korzystając z WebApi wcale nie musisz się rozstawać z OData.

Polecam tutoriale na stronie:
http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api

Skomentował : @ TRENER ALTKOM AKADEMII ,16.06.2015