Często spotykamy się, że różne programy, w których wyświetlają się okna dialogowe (pop-up) można zamykać m.in klawiszem ESC. Jest to fajne, szybkie i intuicyjne. Natomiast denerwuje mnie, gdy jakiś program nie ma takiej funkcjonalności i trzeba wycelować kursorem w krzyżyk albo klawisz Close. W tym poście opiszę jak przy pomocy kawałka kodu zamykać okna w Silverlight’cie, aczkolwiek w ten lub analogiczny sposób można to zrobić to WPF czy np. WindowsForms.
Silverlight 4713 dni, 5 godzin, 16 minut temu 234 źrodło rozwiń
Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/prism–nawigacja-na-podstawie-zdefiniowanych-stanow.aspx
autor: Nie jest to moje pierwsze TFSowe randewu. Wcześniej korzystałem z niego dwukrotnie - zawsze babrając się jako programista tylko w kontroli wersji, bez łorkajtemów, uzerstoris etc. Efektem była gruba, kolczasta, płonąca i ociekająca żerczym kwasem ściana nienawiści między nami. Przyrzekałem sobie że "nigdy więcej", aż tu nagle... No ale, życie przynosi niespodzianki. Z pewnym zaskoczeniem zauważam, że do tej pory prawie nie poruszałem tego tematu na blogu, znalazłem raptem jeden post z tagiem "tfs...
Jakiś czas temu pokazałem w tym artykule sposób rozszerzenia możliwości obiektu zalogowanego użytkownika (Context.User). Problemem tamtego rozwiązania jest to, iż na końcu każdego żądania tworzony jest na nowo obiekt CustomPrincipal, co w finalnym efekcie znacząco wpływa na wydajność aplikacji. Oczywiście jest to zależne od ilości rzeczy implementowanych przez nasz obiekt. W celu naprawy tego niedociągnięcia należy nieznacznie zmodyfikować kod klasy z pliku Global.asax.cs - zapras...
Dziś będzie o jeszcze jednym typie breakpointu. Kiedy może się on przydać zobaczmy na przykładzie. Automatycznie właściwości Wszyscy kochamy automatyczne właściwości, oszczędzają one nam czas i redukują ilość kodu jaki musimy napisać. Jedyną (?) ich wadą jest niemożliwość ich debuggowania. Często, tego nie potrzebujemy, ale czasem przydaje się możliwość ustawienia breakpoint'a na set lub get i np. podejrzenie call stack'a. Zwykłe postawienie w tym miejscu pułapki skutkuje następującym stanem. W Visu...
Już dawno minęły te czasy, gdy javascript pełnił funkcję prostego języka w przeglądarce. Teraz duża część aplikacji webowych jest wykonywana po stronie klienta. Właśnie dla tego dziś opowiem w jaki sposób sprawdzić poprawność kodu javascript'a podczas build'owania aplikacji.
Zapraszam do poczytania o komendach i zdarzeniach dostarczonych przez framework PRISM: http://msdn.microsoft.com/pl-pl/library/zdarzenia-i-komendy-w-prism
Jak zdeserializować plik XML jeżeli nie posiadamy klasy, która została zserializowana.
Bazy danych i XML 4716 dni, 22 godziny, 55 minut temu 198 źrodło rozwiń
autor: Ostatnio przeglądając kod udało mi się znaleźć następujący fragment:lock(this){// Do something} Do zsynchronizowania dostępu do współdzielonego zasobu używany jest obiekt, w którym występuje ten fragment kodu. Teoretycznie fragment ten jest poprawny. Co więcej w programie nie wystąpił żaden problem z zakleszczeniem. Przeglądając literaturę możemy natrafić na następujące przykłady: 1. W O’Reilly Programming C# można spotkać następujący przykład użycia słowa kluczowego ...
Programowanie rozproszone 4717 dni, 59 minut temu 396 źrodło rozwiń
Czy na pewno code review to strata czasu? Cóż może być nudniejsze i bardziej kosztowne niż przeglądanie cudzego kodu źródłowego? Chyba już tylko poprawnianie w nim błędów. Jeszcze kilka lat temu koncepcja przeglądania mojego kodu przez kolegów z zespołu była dla mnie totalną abstrakcją. Aczkolwiek, z czasem zrozumiałem, że w tym szaleństwie jest metoda. W kilku punktach chciałbym przedstawić benefity, które może wprowadzić Code Review do Twojego ekosystemu projektowego drogi Czytelniku. Edukacja M...
Ostatnio pod wpisem: "[WPF 3D] Malujemy scenę 3D pędzlem" dostałem w ramach komentarza pytanie związane z obrazkami w WPF i ścieżkami w nich. Nie jest to wielki problem, ale postaram się odpowiedzieć. Otóż problem wyglądał następująco: czytelnik tworzył pędzel przy pomocy kodu: ImageBrush brush = new ImageBrush(new BitmapImage(new Uri(BaseUriHelper.GetBaseUri(this), "Images/test.png"))); Niestety tak utworzony pędzel nie zawsze generował obraz, taki jak to było oczekiwane. Jak temu zaradzić. Otó...
Klasa Barrier umożliwia synchronizacje kilku wątków. Mechanizm bardzo znany np. z Ady pozwala dopuścić wykonanie kodu wyłącznie jeśli inne wątki na to się zgadzają. Załóżmy, że mamy 4 wątki robiące równoległe jakieś obliczenia. Po ich zakończeniu chcemy scalić wynik ale musimy poczekać aż wszystkie zadania zostaną ukończone. W C# 4.0 można wykorzystać tzw. taski, ale w tym artykule skupimy się na Barrier, która służy to dużo bardziej skomplikowanych zadań. Przypuśćmy, że nasz algorytm składa się z kilku...
Macie czasem tak, że podczas długiej sesji z debuggerem, wiedząc, że jakiś breakpoint nie wskoczy prędko przełączacie się z VS aby później zorientować się, że breakpoint już dawno czekan na waszą reakcję a wy po prostu nie zauważyliście tego małego migoczącego znaku VS w pasku? O właśnie o ten mrygacz chodzi :) Jeśli tak to ten post jest dla was - jeśli nie poczytajcie jak wkurzyć kolegów :) Okazuje się, że VS prócz standardowych opcji, które możemy ustawić w Tools->Options posiada kilka dodatkowyc...
Nowy emulator dla Windows Phone dostarcza możliwość testowania aplikacji wykorzystujących akcelerometr. Okazuje się, że możemy przy jego pomocy uruchamiać sekwencje zmian wektora grawitacji, co pozwala uprościć proces testowania. Jak to zrobić? W dodatkowym panelu emulatora w zakładce Accelerometer mamy dostęp do sekcji Recorded Data. Domyślnie zawiera ona jedną możliwą wartość i nazwie Shake. Jest to predefiniowany zestaw danych, które są przetwarzane i przesyłane do naszej aplikacji podczas uruchomien...
Mobile development 4721 dni, 4 godziny, 16 minut temu 100 źrodło rozwiń
Na wstępie skrótowo wytłumaczę, co rozumiem pod pojęciami zawartymi w tytule. Programowanie imperatywne polega na tym, że kod programu składa się z instrukcji (czyli rozkazów). Najbardziej typowe instrukcje to przypisania, wywołania procedur / metod, instrukcje warunkowe czy pętle. W programowaniu imperatywnym zmieniający się stan programu jest czymś naturalnym, a niedeterministyczne działanie procedur i metod - czymś często występującym. Zupełnie innym podejściem jest programowanie deklaratywne. W ...
W tym wpisie postaram się krótko przedstawić blok bezpieczeństwa (Security Block) z biblioteki Microsoft Enterprise Library. Biblioteki tej użyjemy do sprawdzania rol i reguł dostępu do funkcji serwisu WCF. Najpierw oczywiście musimy pobrać bibliotekę Microsoft Enterprise Library, znajduje się ona pod tym adresem. http://www.microsoft.com/download/en/details.aspx?id=15104. Biblioteka ta jest również dostępna z poziomu NuGeta, jednakże instalacja poprzez ten plugin dorzuca do projektu tylko dll-ki. W p...
Silverlight 4721 dni, 4 godziny, 16 minut temu 61 źrodło rozwiń
W poprzednim wpisie przedstawiłem w jaki sposób zaimplementować mechanizm logowania po stronie serwera. Wykorzystałem do tego celu WCF RIA oraz znane z ASP MembershipProvidery. Tym razem przedstawię jak wymusić logowanie po stronie klienta, oraz w jaki sposób można dynamicznie zmieniać providerów, którzy walidują usera. Poprzednim razem stworzyliśmy już szkielet aplikacji, zatem mamy projekt klienta oraz projekt serwera. Zacznijmy od "włączenia" FormsAuthentication po stronie klienta. W pliku App.xaml.c...
Silverlight 4721 dni, 4 godziny, 16 minut temu 48 źrodło rozwiń
W dzisiejszym wpisie postaram się przedstawić moją koncepcję logowania do aplikacji Silverlightowej z wykorzystaniem MembershipProviders oraz własnego AuthenticationService. Zacznijmy od stworzenia bazy danych, w której będziemy przetrzymywać informacje o użytkownikach - hasła, role itp. Bazę danych stworzymy przy użyciu narzędzia aspnetregsql.exe, które to wygeneruje schemat bazy danych dostosowany do możliwości SqlMembershipProvider-a. aspnetregsql.exe znajduje się w katalogu C:\WINDOWS\Microsoft.NET...
Silverlight 4721 dni, 4 godziny, 16 minut temu 128 źrodło rozwiń
Wiele osób z pewnością kojarzy pliki PDB, przynajmniej z nazwy. Myślę, jednak, że w praktyce mało kto zdaje sobie sprawę co one zawierają i kiedy mogą się przydać programiście. W poście zatem chciałbym przybliżyć praktyczne korzyści z używania Program Database Files. Z pewnością PDB kojarzy się z debuggowaniem i niestety z czymś niepotrzebnym w środowisku produkcyjnym – co jak się okaże jest nieprawdą! Zacznijmy od wprowadzenia teoretycznego, PDB dla .NET zawiera:Nazwy plików z kodem źródłowym.Nazwy lo...
Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8]), dotyczyć on będzie możliwości wykorzystania LINQ na obserwowalnych kolekcjach i w RX. W uproszczeniu Language INtegrated Query (LINQ) to część technologii .NET i umożliwia zadawanie pytań na obiektach, a składnia LINQ przypomina trochę SQL (patrz Wikipedia). Cechą charakterystyczną LINQ jest to, że operuje ona na dowolnych kolekcjach oferujących iterator (czyli operuje n...
Programowanie rozproszone 4724 dni, 1 godzinę, 10 minut temu 87 źrodło rozwiń