WCF vs REST dzisiaj

Nie jestem specjalistą od WCF – właściwie to nawet nie za bardzo lubiłem tę technologię. Było w niej dużo konfigurowania i XMLi, a ja jednak wolę pisać kod.

Serwis w WCF

WCF

Popełniłem kiedyś Serwis, który potem trzeba było utrzymywać. Wszystko było dobrze dopóki inne .NETowe końcówki się z nim łączyły. Dodaje się referencję poprzez „Add service reference” — generują się wszystkie potrzebne klasy — można od razu korzystać. Wyjątki przechodzą przez takiego WCFa, szybciej debuguje się taki Serwis. Sielanka jednak nie trwa długo.

Przychodzi czas, że kolejna osoba chcę się połączyć z takim Serwisem. No i nie potrafi. Mówisz, że gdzieś na necie są przykłady jak to robić w PHP. Na firmowym Wiki jest przykład jak połączyć się z Serwisem z poziomu kodu C#, ale przecież nie będziemy tego robić na wszystkie możliwe języki programowania. Przecież to jest Web Service i właśnie po to został stworzony, żeby dogadywać się z innymi technologiami (Interoperability). Może progamista PHP jakoś się przemęczy i sobie poradzi.

Ulica domaga się REST API

Cóż zrobić, ale tamtym programistom z innego działu się nie chce 😉 i tylko przebąkują o REST. Do tego może ktoś z Androida, iPhona, Ruby’ego, Pythona, JavaScriptu będzie chciał się połączyć z Serwisem. Każdy z wymienionych znowu zapyta o REST api… Tylko o REST. Taki znak czasów.

A może służą do innych rzeczy?

Te technologie nie są do końca wymienialne. W REST (REpresentational State Transfer) chodzi bardziej o modyfikowanie zasobów, a w WCF o usługi/wywoływanie metod. Tzw Service-Oriented Architecture (SOA).

Ja wolę REST

RESTful API design

WCFa widziałem ostatnio może z rok temu. Architektury REST używam na okrągło (BackEnd w NancyFx, klienci JavaScript). Jestem więc stronniczy 😉 Wiem, że coś co można zrobić w WCF można też zrobić korzystając z requestów POST i wymieniając się JSONami (może nie do końca zgodnie z założeniami autorów tych architektur — patrz poprzedni akapit).

WCF oczywiście rozwiązał wiele problemów tworząc standard dla Microsoftu już wiele lat temu i będzie jeszcze służył wiele lat. Coś jednak czuję, że będą to głównie technologie wewnątrz .NETowe.

Reklamy
Ten wpis został opublikowany w kategorii Programowanie i oznaczony tagami , , . Dodaj zakładkę do bezpośredniego odnośnika.

5 odpowiedzi na „WCF vs REST dzisiaj

  1. Pingback: dotnetomaniak.pl

  2. psz750 pisze:

    Zgadzam się w 100%. Ja przez kilka lat tworzyłem standardowe usługi WCF ale od pewnego czasu całkowicie przestawiłem się na REST. Teraz nawet tworząc klientów dla istniejących serwisów wolę żądania i odpowiedzi obsługiwać bezpośrednio przez http (WebRequest i WebResponse) niż korzystać z WCF-a;). Pozostaje tylko zacytować temat prezentacji Tomka Kopacza z kilku konferencji: „SOA umarło. Niech żyje REST” 🙂

  3. Przyznam się że jestem swojego rodzaju Hipsterem pośród informatyków ponieważ „Robiłem REST-y zanim to było modne”, dawno dawno temu w czasach gdy zarzucano RPC na rzecz SOAP-a (jakieś 5-6 lat temu) jako student wysyłałem z Flexa innych technologii do serwisu (najczęściej w PHP-ie) prostego xml-a i podobnego xml-a otrzymywałem w odpowiedzi, podstawową zaletą tego podejścia dla mnie była prostota, jak coś nie działało to zazwyczaj przyczyna była prosta w znalezieniu i naprawieniu. A potem nachodziłem się na grupy .Net, MTS-y, szkolenia i wpojono mi że to jest złe 😉

  4. Arek Bal pisze:

    REST się za to gryzie z modelem RPC, inaczej „push model” który nie w jednym scenariuszu aplikacji web jest potrzebny.

  5. @Arek Mógłbyś rozwinąć o jakim „push model” myślisz? Na pierwszy rzut oka nie widzę co się tu gryzie. Przykładowo http://www.pubnub.com/http-rest-push-api/ postujesz dane, dostajesz id wysłanego powiedzmy „eventu”.

Możliwość komentowania jest wyłączona.