niedziela, 17 kwietnia 2011

70-513 - Odcinek 5 - Wersjonowanie serwisu przy użyciu IExtensibleDataObject

Jedną z głównych korzyści używania WCF’a jest możliwość łatwego oddzielenie serwisu od aplikacji klienckich. Sprawia to, że klient, który używa takiego serwisu wie jedynie o formacie danych jakie należy przesłać lub odebrać z serwisu a co za tym idzie, aplikacja napisana w innym języku niż serwis może z łatwością z tego serwisu korzystać. Niekiedy zdarza się jednak, że w miarę upływu czasu serwis i aplikacja ewoluują, pewne nowe funkcjonalności lub dodatkowe struktury danych zostają do nich dodane, niektóre usunięte. Celem odpowiedniej komunikacji jest uzyskanie tzw. „version tolerance” poprzez umożliwienie serwisowi i aplikacji klienckiej na rozwijanie swoich własnych wersji kontraktów. Generalnie sprawa sprowadza się do tego iż każda aplikacja kliencka powinna być w stanie komunikować się z każdą wersją serwisu, którego używa.  Aby umożliwić taką „tolerancję na wersję”, WCF daje nam narządzie do wspierania czegoś co nazywa się „kompatybilnością w przód i w tył”.

sobota, 16 kwietnia 2011

70-513 - Odcinek 4 - MessageContractAttribute

Podczas tworzenia serwisu w WCF, udekorowanie pewnej struktury danych atrybutem „DataContract” pozwala zdefiniować strukturę danych, która będzie przesyłana w ciele wiadomości SOAP. Dzięki używaniu [MessageContract] zamiast [DataContract], użytkownik przy tworzeniu swojego serwisu ma większą kontrolę nad wiadomościami SOAP oraz ich nagłówkami (headers).

70-513 - Odcinek 3 - DataContractSerializer vs XmlSerializer

W tym poście postaram się zaprezentować różnice pomiędzy dwoma typami "Serializerów" dostępnych w WCF - DataContractSerializer oraz XmlSerializer.
Tworząc serwis w WCF mamy do czynienia z protokołem SOAP (Simple Object Access Protocol). Jest on protokołem bazującym na XML-u pozwalającym komponentom oraz aplikacjom komunikować się używając standardowego protokołu http. SOAP umożliwia komunikację pomiędzy aplikacjami działającymi na różnych systemach operacyjnych, z różnymi technologiami i różnymi językami programowania. SOAP specyfikuje, że wiadomość przesyłana zapisana jest jako XML. W naszym serwisie i lub aplikacji klienckiej korzystamy z obiektów. WCF dostarcza mechanizm, który tłumaczy nasze obiekty na wiadomości XML. Proces ten nazywany jest serializacją. Proces odwrotny nazywany jest deserializacją. W WCF’ie mamy dostępne dwa typy serializacji – DataContractSerializer oraz XmlSerializer.

piątek, 15 kwietnia 2011

70-513 - Odcinek 2 - Message Exchange Patterns czyli typy komunikacji w WCF

W niniejszym poście postaram się opisać dostępne w Windows Communication Foundation rodzaje komunikacji.
Dzięki WCF, komunikacja między aplikacjami klienckimi a serwisem może zachodzić na kilka różnych sposobów. WCF dostarcza tzw: "Message Exchange Patterns (MEP)", który opisuje protokół wymiany wiadomości. MEP określa, że w WCF komunikacja może zachodzić z użyciem trzech następujących wzorców:
  • Request/Response (żądanie/odpowiedź)
  • OneWay
  • Duplex 

70-513 - Odcinek1 - Tworzenie serwisu WCF oraz określanie FaultContract

W tym poście postaram się zaprezentować jak należy tworzyć serwis WCF oraz definiować metody jakie serwis udostępnia. Dodatkowo, bazując na "training kit" postaram się opisać najważniejsze aspekty, parametry i atrybuty, których programista serwisu WCF używa na co dzień.

Przygotowania do egzaminu MCTS 70-513 - Windows Communication Foundation Development with Microsoft .NET Framework 4

Tym postem chciałbym zapoczątkować serię postów, w których będę pisał o moich przygotowaniach do egzaminu 70-513: Windows Communication Foundation Development with Microsoft .NET Framework 4, do którego chciałbym podchodzić w najbliższym czasie. W szczególności będą to posty "ku pamięci", po to bym w każdej chwili mógł tutaj wrócić, skorzystać z wyszukiwarki i znaleźć interesujące mnie informacje.
Moim planem jest aby każdy post zawierał informację z danej specjalności określonej w wymaganiach egzaminacyjnych, które można sprawdzić na tej stronie
Posty będą zawierały raczej wiedzę teoretyczną na temat Windows Communication Foundation (gdyż pytania na egzaminie są raczej teoretyczne), które będą pomocne w praktycznej nauce i zastosowaniu serwisów tworzonych za pomocą WCF. Wiadomo, praktyka czyni mistrza ale niejednokrotnie zetknąłem się z opinią iż aby zdać egzamin należy posiadać bardzo dobrą wiedzę teoretyczną. Dodatkowo dzięki serii postów zamieszonych na tym blogu chciałbym usystematyzować swoją wiedzę oraz zgłębić tajniki WCF, których do tej pory nie poznałem. Przekonałem się, że takie podejście jest odpowiednie przygotowując się do egzaminu 70-511 - Windows Applications Development with Microsoft .NET Framework 4. Mimo iż posiadałem 2 letnie doświadczenie w programowaniu w WPF'ie i ponad 4 letnie komercyjne doświadczenie w .NET Framework, przygotowania do tego egzaminu pozwoliły mi zaznajomić się z nowymi aspektami frameworka (jak UAC Guideline, CAS czy UI Automation) i dodatkowo usystematyzować posiadaną wiedzę. Muszę przyznać, iż takie podejście procentuje. Zatem, zapraszam do lektury.