Niniejszy post jest pewnego rodzaju kontynuacją cieszącego się popularnością artykułu pod tytułem: „Jak uczyć się C#?”. Chciałbym wskazać kolejną garść rad, które nasunęły mi się od czasu napisania poprzedniego artykułu. Tym razem jednak nie jest on raczej skierowany do początkujących programistów, a raczej bardziej zaawansowanych czytelników. Dlaczego? Otóż chciałem dziś poruszyć dwie kwestie... Pierwszą są certyfikaty. Teraz już nie mal, że słyszę pytanie: ale co one mi dają?, czy ktoś na nie zwraca uw...
Tak jak zapowiadaliśmy wcześniej, mamy dla Was niespodziankę! Mamy do rozdania kilka nagród:2 vouchery na dowolny egzamin (ważne do 30 lipca 2010) 2 vouchery na kurs e-learningowy 6364: Visual Studio 2008 ASP.Net 3.5 (ważne do 30 czerwca 2010) Konkurs na najlepszą “zajawkę” Waszym zadaniem jest napisanie notki z linkami (70-536, 70-562, 70-503) do naszych kursów w jakimś blogu/serwisie. Najlepsza “zajawka” będzie nagrodzona: voucherem na egzamin, a kolejna voucherem na kurs e-learningowy. Termin zgłaszan...
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Ci z Was, którzy obsługiwali już wątki w .NET wiedzą, że nie jest to specjalnie skomplikowane. Najczęściej problemy występują przy obsłudze kontrolek Windows Forms, ponieważ ich właściwości mogą być zmieniane tylko w wątku, który je stworzył. Innym problemem jest wykorzystywanie lokalnej pamięci wątków do przechowywania informacji o kontekście, gdy proces nieoczekiwanie zmienia wątki, te dane mogą zniknąć. Z te...
Programowanie rozproszone 5323 dni, 8 godzin, 31 minut temu 76 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Współbieżność (ang. concurrency) w serwisie WCF występuje, kiedy jednocześnie więcej niż jedno wywołanie ma miejsce. Celem serwisu WCF jest przetwarzanie przychodzących żądań. Kiedy żądanie przychodzi do serwisu, serwis rozdziela (ang. dispatch) komunikaty na własne wątki, które brane są z puli wątków. Z każdym żądaniem powiązany jest obiekt serwisu – instancja klasy, która implementuje interfejs serwisu. W WCF...
Programowanie rozproszone 5324 dni, 18 godzin, 31 minut temu 78 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. No to wiemy już jak włączyć transakcje i co trzeba zrobić, zarówno po stronie serwisu jak i po stronie klienta, aby informacje o transakcji były przekazywane w obie strony. Dzisiaj dowiemy się więcej o obsłudze transakcji od strony kodu.Transakcje otoczenia W .NET Framework 2.0 w przestrzeni nazw System.Transaction zostały wprowadzone tzw. transakcje otoczenia (ang. Ambient Transactions). Polega to na tym, że ...
Programowanie rozproszone 5330 dni, 22 godziny, 23 minuty temu 67 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Podstawową funkcją transakcji jest zagwarantowanie zasad ACID:atomowości (ang. atomicity),spójności (ang. consistency),izolacji (ang. isolation),trwałości (ang. durability). Kiedy operacje związane z bazą odbywają się na wielu maszynach i wielu zbiorach danych, nie jest to takie proste. WCF wspomaga programistę w tym zadaniu. W celu spełnienia zasad ACID najczęstszym podejściem jest wykorzystanie dwuetapowego ...
Programowanie rozproszone 5331 dni, 9 godzin, 29 minut temu 39 źrodło rozwiń
· Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Wiemy już, że WCF może tworzyć oddzielne instancje klasy serwisu dla poszczególnych wywołań, dla poszczególnych sesji lub używać tylko jednej instancji do obsłużenia wszystkich klientów i ich wywołań. Dzisiaj dowiemy się jak zarządzać poszczególnymi instancjami klasy serwisu.Zabezpieczanie serwisu W rzeczywistym świecie głównym problemem są ataki typu “Odmowa usługi” (ang. Denial of service). Ataki te powoduj...
Programowanie rozproszone 5341 dni, 17 godzin, 45 minut temu 43 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. WCF jest odpowiedzialny za wiązanie przychodzącego komunikatu do określonej instancji serwisu. Tryb wystąpienia (ang. instance mode) określa związek pomiędzy klientem a instancją serwisu (np. czy istniejąca instancja serwisu jest w stanie przetworzyć żądanie). Ta lekcja przedstawia, różne rodzaje możliwych wystąpień, sposób w jaki są tworzone i konsekwencje wyborów. Dla InstanceContextMode dostępne są trzy wybo...
Programowanie rozproszone 5339 dni, 2 godziny, 51 minut temu 38 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Dzisiaj dowiemy się jak obsługiwać wyjątki serwisu po stronie klienta. WCF sygnalizuje wyjątki wykorzystując błędy SOAP. Wyróżniamy dwa typy błędów które mogą być wykorzystane: błędy typowane/deklarowane (ang. typed faults/declared SOAP faults) i beztypowe/niedeklarowane (ang. untyped faults/nondeclared SOAP faults).Odbieranie błędów Teoretycznie podczas korzystania z WCF’a możliwie jest występowanie wielu róż...
Programowanie rozproszone 5346 dni, 18 godzin, 20 minut temu 33 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Już mniej więcej wiemy czym dysponujemy w zakresie zabezpieczeń zarówno warstwy transportowej jak i samych wiadomości. No to teraz dowiemy się jak określać dostęp do określonych metod serwisu w zależności od tego kim jest ten, który się do niego podłączył.Autoryzacja Wiemy już km jest osobnik podłączony do serwisu, ale jeszcze nie wiemy co możemy mu udostępnić. W skład obsługi autoryzacji w WCFie wchodzą trzy e...
Programowanie rozproszone 5351 dni, 1 godzinę, 6 minut temu 62 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. W tej lekcji zajmiemy się tematyką uwierzytelniania – określaniem kto jest kim (potwierdzaniem tożsamości), czy szyfrowaniem. Uwierzytelnianie będzie obejmowało zarówno weryfikację klienta przez serwis, jak i serwisu przez klienta. WCF oferuje następujące mechanizmy uwierzytelniania:Brak uwierzytelniania (No authentication) – dostęp anonimowy bez potwierdzania tożsamości,Uwierzytelnianie Windows (Windows authen...
Programowanie rozproszone 5354 dni, 1 minutę temu 69 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. W poprzedniej lekcji dowiedzieliśmy się jak zabezpieczyć komunikacje na poziomie protokołu transmisji.Podstawy WCF udostępnia trzy tryby zabezpieczeń: Transport (który poznaliśmy w poprzednim artykule), Message, TransportWithMessageCredential. Trzeci jest połączeniem dwóch poprzednich. Główną różnicą między zabezpieczeniami na poziomie transportu i na poziomie wiadomości jest to, że przy zabezpieczeniu na pozio...
Programowanie rozproszone 5359 dni, 9 godzin, 35 minut temu 44 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Bezpieczeństwo tworzonych serwisów to podstawowa sprawa, która powinna odgrywać znaczącą już od samego początku projektu. W tym artykule skupimy się na bezpieczeństwie związanym z infrastrukturą – jak ograniczyć dostęp nieuwierzytelnionym użytkowników. Większość bindingów ma wbudowane możliwości związane z bezpieczeństwem – może to być SSL, IPsec, może też ich nie być wcale. wsDualHttpBinding to przykładowy bin...
Programowanie rozproszone 5361 dni, 9 godzin temu 42 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Z opcji śledzenia aplikacji pozostało nam już tylko śledzenie “zdrowia” aplikacji, czyli liczniki wydajności i logowanie zdarzeń do Windows Event Log i Windows Management Instrumentation.Liczniki wydajności WCF zawiera dużą ilość wbudowanych liczników wydajności. Sama obsługa liczników, przeglądanie przy pomocy aplikacji Performance Monitor jak i modyfikowanie przy pomocy obiektów klasy PerformanceCounter wykra...
Programowanie rozproszone 5364 dni, 16 godzin, 14 minut temu 61 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. We wcześniejszych wpisach omówiony został mechanizm śledzenia (ang. tracing). Co jeśli pracujemy z serwisem, do którego kodu nie mamy dostępu, a nie zostało włączone w nim śledzenie? Rozwiązaniem może być wykorzystanie potoków WCF (ang. WCF pipeline). WCF jest rozszerzalny na wielu płaszczyznach. Kwestią do rozstrzygnięcia pozostaje tylko to, gdzie dodatkowa funkcjonalność powinna zostać wstrzyknięta. Rysunek ...
Programowanie rozproszone 5366 dni, 2 godziny, 1 minutę temu 48 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Trochę po świętach mi sie przysnęło i dlatego artykuł pojawił sie dopiero o tej porze:) Znamy już podstawy konfigurowania “źródeł” i “słuchaczy” (jeśli chcemy stworzyć kilka źródeł dla jednego listenera to musimy użyć sekcji sharedListeners w pliku konfiguracyjnym – Kamil w poprzednim artykule to pominął, więc zainteresowanych odsyłamy do dokumentacji). Mamy informacje o przebiegu aplikacji. Jak teraz powiązać...
Programowanie rozproszone 5372 dni, 17 godzin, 9 minut temu 29 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Mechanizm śledzenia (ang. tracing), wykorzystaywany w WCF oparty jest o klasy, które możemy znaleźć w przestrzeni nazw System.Diagnostics. Zakładamy, że mamy pewną aplikację, która dostarcza informacje na swój temat, mamy też coś, co jest zainteresowane otrzymywanie informacji o tym, co aplikacja robi. To coś, co nasłuchuje to tak zwany listener, a może nim być aplikacja konsolowa, okienkowa, dziennik zdarzeń (...
Programowanie rozproszone 5372 dni, 18 godzin, 55 minut temu 53 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Jak zapewne zauważyliście z wcześniejszych lekcji, siła WCFa pochodzi między nimi z możliwości zmiany parametrów “transmisji” bez zmiany ani jednej linijki kodu, rekompilacji, … Od tego mamy przecież plik konfiguracyjny. Możemy sobie napisać jedną aplikację, którą będziemy używać w wielu instancjach jednocześnie i wcale nie będą sobie przeszkadzać. O tym było w poprzednich lekcjach. Dziś pokażę jak stworzyć so...
Programowanie rozproszone 5377 dni, 19 godzin, 1 minutę temu 26 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Konfiguracja punkty wyjściowego (ang. endpoint) po stronie klienta przypomina tą, którą określa się w serwisie. Tak zwane ABC konfiguracji serwisu to address, binding, oraz contract. Konfiguracja może zostać przeprowadzona w sposób deklaratywny – z wykorzystaniem plików konfiguracyjnych, lub imperatywnie – przez kod. Przykładowa deklaracja w postaci znaczników XML: 1: W C# będzie to wyglądało następująco: 1...
Programowanie rozproszone 5379 dni, 18 godzin, 17 minut temu 33 źrodło rozwiń
Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. A co jeśli mamy serwis, który nie ma nic wspólnego z WCF’em? Nie ma najmniejszego problemu, żeby takie serwisy wykorzystać w aplikacji klienckiej. Taki standardowy serwis udostępnia nam tylko definicję w postaci WSDL, odpada więc tworzenie klas proxy przez ChannelFactory lub ręcznie. Zostaje nam tylko użycie polecenia svcutil lub dodanie referencji serwisu do projektu w Visual Studio.Standardy Tak jak w przypad...
Programowanie rozproszone 5389 dni, 3 godziny, 19 minut temu 32 źrodło rozwiń