SOAP XML WCF służy do  tworzenie usług sieciowych w .NET . ASP.NET MVC fantastycznie nadaje się do tworzenia aplikacji sieciowych REST. Co znaczy, że WCF w  wypadku usług typu REST nie jest  już tak bardzo potrzebny. Ma on jednak wciąż swoje miejsce w rodzinie .NET jako framework do tworzenia usług typu SOAP.


Protokół SOAP został stworzony przez Microsoft i mimo swojej nazwy nie jest jednak taki prosty jak mydło.  SOAP wysyła wiadomości wyłącznie w formacie XML. Microsoft stworzył SOAP z myślą o zastąpieniu jeszcze starszych technologii jak DCOM,  czy protokołów binarnych przekazu informacji, jak np. CORBA. (Common Object Request Broker Architecture).  

SOAP dostał swój standard i śmiało można z niego korzystać nawet dziś. Główną jego zaletą jest  większe bezpieczeństwo niż w usługach typu REST. Posiada też wbudowaną obsługę błędów. 

SOAP w swoich komunikatach zwrotnych jak i zapytaniach wymaga dużej ilości informacji w formacie XML. Komunikaty więc są dużo bardziej pojemniejsze niż w usługach REST. Co więcej przez to skomplikowanie powstała idea, aby na podstawie pliku WSDL tworzyć obiekty klas w Javie i w C#, które później za nas zostały przetłumaczone na odpowiedzi lub zapytania XML do usługi SOAP.

Taki styl programowania jest preferowany. Pisanie swojego kodu wysyłającego XML do usługi wydaje się dodatkową pracą, ale czy zawsze tak jest?

WCF I IISMasz nową maszynę testujesz aplikację WCF na swoim serwerze IIS i… i nic bo leci błąd 404.3 – no found.

W czym jest problem?

IIS w ogóle nie wiem jak interpretować plik SVC. Dlaczego tak jest?

Nie masz zainstalowanego WCF w swoim systemie operacyjnym.

SignalRPróbowałeś kiedyś napisać chat. Co ile sekund ma on wyciągać dane od serwera? Nie to z góry kiepski pomysł.

Lepszą techniką jest “long polling”. Otwieramy połączenie i utrzymujemy je otwarte zmuszając klienta (przeglądarkę) do czekania udając ,że dane połączenie rzeczywiście trwa długo.

Jeżeli połączenie jest zerwane wtedy połączenie jest otwierane ponownie po obu stronach(klient serwer). W przyszłość WebSockety  rozwiążą ten problem lepiej.

WCF AwaitPisząc ostatnio wpis o WCF zauważałem ,że Visual Studio 2012 domyślnie generuje klasy proxy dla usługi w stylu “Task”. Ten styl wymaga użycia słów kluczowych async i await. 

Pomyślałem dlaczego nie zrobić o tym wpisu i przy okazji same siebie przyzwyczaić do nowej składni języka C# 5.0.

StronicowanieW poprzednim wpisie udowodniłem ,że nawet na moim obecnym super sprzęcie i systemie 64 bitowym nie jestem wstanie przesłać 2.000.000 rekordów w WCF za jednym zamachem. W tym wpisie pokaże jak za pomocą “stronicowania” (paginacji) można rzeczywiście przesłać ,aż tyle informacji.

Oto drugi wpis z cyklu “WCF Big Large Data”.

Try Sending Wczoraj kolega zrzucił mi wyzwanie. Spytał mnie czy kiedyś przez WCF wysłałem 600.000 rekordów. Oczywiście tego nie robiłem ponieważ dlaczego usługa typu REST dla telefonu Android powinna przekazywać 600.000 rekordów.

Wyzwanie jest wyzwaniem. Udowodnię kto z nas jest lepszym programistą raz na zawsze.

WCF CirWczoraj mój najlepszy przyjaciel przedstawił mi problem związany referencją cykliczną i WCF.

Mój kolega wie ,że pisałem wcześniej aplikacje w WCF i spodziewał się ,że znam już odpowiedź na to pytanie. Oczywiście tak nie było ,ale ponieważ mam większe doświadczenie w tej technologii znalezienie odpowiedzi nie trwało długo.

MSMQ

Niezawodność to jedna z najbardziej wymagających cech, które musi posiadać dzisiejsze oprogramowanie. Ta cecha jest nawet punktem krytycznym dla rozproszonych biznesowych aplikacji. Jeśli jeden człon rozproszonego systemu przestanie działać  cały przepływ akcji  się zawala.

WCF

W dzisiejszych  czasach nie ma aplikacji, która działaby w kompletnej izolacji. Różne organizacje posiadają już programy, które wykonują  różne operacje biznesowe X i chcą aby  stare programy doskonale łączyły się z nowymi aplikacjami niezależnie od platformy, czy języka programowania.
 
Jednym słowem w dzisiejszych czasach programy wykonujące różne operacje powinny komunikować się ze sobą bez względu na to, w czym są napisane.
 
W erze internetu korporacje  często wybierają rozwiązania   pochodzące od osób trzecich. Na zasadzie po co mam pisać program, który już ktoś zrobił. Musimy tylko wykupić taką usługę i w ten sposób zaoszczędzimy “X” czasu.
 
Wyzywanie polega na tym, jak połączyć te elementy w taki sposób aby komunikowały się ze sobą oraz współpracowały.