W poprzednim wpisie opisałem w jaki sposób można wykorzystać bibliotekę Fluent Validation do zorganizowania walidacji danych w aplikacji. W walidatorze możemy użyć metodę Must do definiowania własnej logiki walidacji (jak to było zrobione na przykładzie walidacji nipu). W większości przypadków takie podejście jest wystarczające. Czasami, gdy jakąś logikę musimy współdzielić między różnymi walidatorami w aplikacji (lub nawet między różnymi aplikacjami) możemy stworzyć wali...
Strona głównaUżytkownik
danielplawgo | użytkownik
Wpadłem w pułapkę relacji wiele do wielu, m:n. Po raz kolejny. Jak fretka w sidła... te same po raz n-ty (czy m-ty?). Byłem na siebie tak wściekły, że to ludzkie pojęcie przechodzi. Właściwie bardziej mi teraz szkoda nerwów niż straconego czasu. Ale o co się, panie, rozchodzi? W moim systemie miałem bardzo prostą zależność: Company (n) - (m) Customer. Firma posiada wielu klientów, a klient przypisany jest do wielu firm. Bez dodatkowych ceregieli utworzyłem:
Architektura 5011 dni, 10 godzin, 14 minut temu 321 źrodło rozwiń
Od dziś rozpoczynają się dwa równoległe cykle poświęcone programowaniu w technologii mobilnej Windows Phone 7. Pierwszy z nich będzie dostępny na portalu Channel9. Autorami webcastów są Barłomiej Zass, Michał Korzunowicz, Daniel Plawgo oraz ja Pierwszy odcinek, którego jestem autorem dostępny jest pod tym adresem. Jest on poświęcony ogólnemu wprowadzeniu w tematykę Windows Phone 7 jako platformy dla programistów, opowiadam o narzędziach. Pokazuję rowniez jak stworzyć swoją pierwszą aplikację na tą plat...
Mobile development 5030 dni, 11 godzin, 4 minuty temu 42 źrodło rozwiń
Profilowanie aplikacji przy użyciu dotTrace Przyznam się, że nie miałem w planach poruszania tematu profilowania aplikacji jeszcze przez jakiś czas. Rozpoczęcie masowego importu danych ze strony sejmu do projektu Rankingu Sejmowego zmusiło mnie do zmiany planów. Po przerobieniu przez kilka godzin około 30% danych z ostatniej kadencji Sejmu (około 20 tysięcy plików HTML ważących razem 120 MB) zacząłem zastanawiać się czy dałoby się ten proces trochę przyspieszyć. Do badania wydajności kodu posłużyły mi d...
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 5286 dni, 4 godziny, 30 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 5287 dni, 14 godzin, 29 minut temu 78 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Często buforujemy dane na stronie bądź cała stronę co pozwala na szybszy dostęp do informacji niż z pliku czy bazy danych. Poprawia to oczywiście wydajność i skalowalność jeśli chodzi o liczbę użytkowników obsługiwanych na WWW. Nasz wspaniałomyślny ASP.NET bez większego nakładu pracy (czyt. pisania kodu) pozwala obsłużyć pamięć podręczną. Wyróżniamy dwa rodzaje takiej pamięci: Application caching- kolekcja ta może przechowywać dowolny obie...
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 5293 dni, 18 godzin, 21 minut temu 67 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. W dzisiejszej lekcji powiemy sobie o wdrażaniu aplikacji internetowych w ASP.NET.Tworzenie projektu Web Setup Web setup jest narzędziem, które wspomaga wdrażanie naszej aplikacji internetowej. Projekt Web Setup jest bardzo podobny do standardowego projektu Setup, który mamy w aplikacjach Windows Forms, lecz dostarcza specjalnych właściwości wymaganych przez aplikację Web. Aby stworzyć nowy projekt typu Web Setup musimy podczas tworzenia pro...
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 5294 dni, 5 godzin, 28 minut temu 39 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. W dzisiejszej lekcji będzie na temat budowania, uruchamiania oraz testowania mobilnych wersji aplikacji webowych stworzonych w technologii ASP.NET. Tworzenie aplikacji mobilnych mocno nie różni się od tworzenia zwykłych aplikacji webowych. Trzeba tylko pamiętać, że w większości urządzenia mobilne mają większe ograniczenia w stosunku do normalnych komputerów. Dlatego wersje mobilne aplikacji powinny być jak najmniej skomplikowane oraz zawier...
Już dwa razy (tu i tu) deklarowałem gotowość do zdawania egzaminów kończących się jakimś certyfikatem. Bardzo długo na "gotowości" się kończyło. Ostatnio jednak, obserwując nieuchronny upływ czasu oraz licznik zdanych egzaminów od pięciu lat wskazujący niezmiennie wartość 1 zadałem sobie pytanie: czy istnieje prawdopodobieństwo większe od zera, że jestem w stanie poświęcić kilka tygodni/miesięcy na NAUKĘ tylko po to, aby podejść do egzaminu? Odpowiedź była prosta: zdecydowanie nie. Jakoś ciężko mi wyobra...
Tworzymy prostą stronę w ASP .NET 4.0 cz.2 Witam w kolejnym wpisie z cyklu wprowadzającego do ASP .NET. Dziś pokaże jak obsługiwać proste kontrolki oraz jak przygotować własną kontrolkę, która przyda nam się w następnym wpisie.
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. Do tej pory powiedzieliśmy sobie o profilach użytkowników, narzędziu WSAT, kontrolce Login czy też o podstawach membershipa. ASP.NET wspiera co najmniej 4 rodzaje uwierzytelniania są to:Windows authentication Forms authentication (which ASP.NET membership uses) Passport authentication Anonymous access Dzisiaj porozmawiamy w sposób ogólny jak można wykorzystać każdy z tych sposobów.Konfiguracja aplikacji webowej która wymaga uwierzytelnieni...
· 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 5304 dni, 13 godzin, 44 minuty 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 5301 dni, 22 godziny, 50 minut temu 38 źrodło rozwiń
Artykuł pochodzi w serii przygotowań do egzaminu 70-562 ASP.NET. W dzisiejszym artykule powiemy sobie o używaniu kontrolki logowania, zarządzaniu użytkownikami, informacjami na ich temat oraz o rolach. To wszystko zrealizujemy używając mechanizmu Membership.Użycie WSAT do konfigurowania zabezpieczeń Do zarządzania użytkownikami, rolami oraz zabezpieczeniami na naszej stronie możemy użyć wbudowanego narzędzia Web Site Administration Tool (WSAT).Tworzenie użytkowników Aby uruchomić WSAT należy wybrać z men...
ASP.NET udostępnia programiście mechanizm profili, który może wykorzystać do przechowywania informacji specyficznych dla poszczególnych użytkowników. Informacje przechowywane mogę być dowolne np. szablon strony, adres zamieszkania lub dowolne dane potrzebne do działania aplikacji. Dane te są przechowywane między kolejnymi wizytami użytkownika na stronie. ASP.NET automatycznie ładuje dane z źródła na podstawie tożsamości użytkownika. W tym artykule zostanie opisana praca z mechanizmem profili ASP.NET. Aby...
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 5309 dni, 14 godzin, 18 minut temu 33 źrodło rozwiń