Ostatnio przeglądałem kilka bibliotek wspomagających tworzenie aplikacji z użyciem wzorca MVVM. Najbardziej do gustu przypadł mi Cinch w wersji V2. Framework ten działa razem z biblioteką MEFedMVVM. Użycie obu bibliotek jest bardzo proste. Najpierw tworzymy klasę, która będzie naszym modelem widoku: [ExportViewModel("MainViewModel")] [PartCreationPolicy(CreationPolicy.NonShared)] public class MainViewModel : IN...
Strona głównaUżytkownik
http://dariusztarczynski.blogspot.com/ | użytkownik
Oryginalny post: Code Reviews: Just Do ItAutor: Jeff Atwood W artykule The Soft Side of Peer Reviews Karl Wiegers zaczął od mocnego oświadczenia: Wzajemne przeglądy -- czynność, podczas której osoby inne niż autor kawałka kodu przyglądają się mu pod kątem błędów oraz możliwości poprawy -- są jednym z bardziej potężnych, dostępnych narzędzi do podtrzymywania jakości kodu. Wzajemne przeglądy zawierają w sobie inspekcje, kontrole ogólne, wzajemne symulowanie logiki i inne podobne czynności. ...
Już nie pamiętam ile razy zasiadałem do projektowania po czym, podczas programowania porzucałem bądź radykalnie modyfikowałem projekt, ponieważ.. Zapomniałem o czymś bardzo ważnym Znalazłem inne, łatwiejsze rozwiązanie To co robiłem, nie miało sensu Na nowo wynajdywałem koło, a powinienem był znaleźć gotowca w sieci Hej, przecież nawet nie muszę tego robić jako pierwsze! W prawdziwym świecie istnieje ciasna pętla przyczynowo-skutkowa pomiędzy fazą implementacji a projektowania. Jeśli używasz Ph...
Autor: Jakiś czas temu na devpytaniach Maciej Zbrzezny pytał o to, jak zmienić język zgłaszanych wyjątków w .NET. Dziś podczas jednego z podobnych poszukiwań natknąłem się na serwis FindErr. Jeden z komentarzy zadowolonych użytkowników: I have spent numerous hours trying to translate error messages logged by application deployed at my Chinese client. After long hours of frustration, I finally found this site. So far, this ...
W minioną sobotę miałem przyjemność uczestniczyć w krakowskiej edycji Visual Studio Community Launch [...] Przykłady kodu dla obu prezentacji umieściłem na MSDN Code Gallery odpowiednio tutaj i tutaj. Zapewne duża część z Was nie była na konferencji, dlatego postanowiłem owe przykłady omówić tutaj, na blogu. Dziś – EF4.
Bazy danych i XML 5311 dni, 21 godzin, 45 minut temu 310 źrodło rozwiń
Na początek podam czystą definicje z wiki: “Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów.” Początkowo za wiele ta tajemnicza definicja nie mówiła mi. Innymi słowy, klasa dziedzicząca powinna rozszerzać możliwości klasy bazowej a nie całkowicie zmieniać jej funkcjonalność. Sposób korzystania z klasy potomnej powinien być analogiczny do wywoływania klasy bazowej...
Architektura 5321 dni, 9 godzin, 41 minut temu 101 źrodło rozwiń
Zasada O\C mówi, że oprogramowanie powinno być otwarte na rozszerzenia a zamknięte na modyfikacje. Innymi słowy programista powinien być w stanie uzyskać zamierzony efekt poprzez rozszerzenie klasy czy przeładowanie metody a nie zmianę już istniejącego kodu. Zasada jest szczególnie istotna w przypadku kodu produkcyjnego, w którym wszelkie możliwości modyfikacji kodu są ograniczone. Zasada pozwala budować modularne systemy. Użycie ENUM moim zdaniem jest złamaniem Open\Closed principle. Wykorzystując w kod...
Architektura 5323 dni, 11 godzin, 2 minuty temu 93 źrodło rozwiń
Zasada mówi żeby tworzone przez programistę interfejsy były odpowiedzialne za jak najmniejsza funkcjonalność. Użytkownik chcąc zaimplementować taki interfejs nie powinien pisać metod, których nie potrzebuje. Jeśli znajdują się w nim niepotrzebne metody to wtedy nazywamy go interfejsem “fat” lub “polluted”. Najlepiej rozważyć to na klasycznym przykładzie (z oodesign):interface IWorker { void Work(); void Eat(); } class Worker: IWorker { publicvoid Work() { } publicvoid ...
Architektura 5316 dni, 10 godzin, 59 minut temu 94 źrodło rozwiń
Każdy z nas zna to na pamięć. Bohater filmu podchodzi do komputera. Ikony wielkości dłoni, tak aby nie można się pomylić. W tym momencie rozlega się głośne “you’ve got mail!” i na ekranie (od razu) pojawia się mail. Times New Roman, 200 pikseli. Żeby było łatwiej przeczytać rzecz jasna. Mail oczywiście jest dowodem zdrady męża, ale zupełnie nie...
Oryginalny post: HTML Validation: Does It Matter? Autor: Jeff Atwood Sieć jest, ujmijmy to litościwie, raczej wyrozumiałym miejscem. Możesz karmić przeglądarki internetowe prawie każdym rodzajem kodu HTML czy JavaScript, a one dzielnie postarają się zrobić z tym coś sensownego i wyrenderować to w najlepszy możliwy sposób. Dla porównania, większość języków programowania jest niemal srodze bezlitosna. Jeśli choć jeden znak nie jest na swoim miejscu, Twój program prawdopodobnie się nie skompiluje, a tym b...
Ewolucyjne podejście do schematu baz danych Ten post chciałem napisać od czasu, gdy sprzedałem zawarty w nim pomysł Michałowi na jednym ze spotkań PG.NET w końcu się udało Jeśli myślisz, że raz stworzysz schemat bazy danych dla swojej aplikacji i już nigdy go nie będziesz zmieniać to jesteś w błędzie. W czasie produkcji może się okazać, że coś zostało pominięte, coś można rozwiązać lepiej, jest błąd albo po prostu trzeba dodać nową funkcjonalność wymagającą zmian w schemacie.
Bazy danych i XML 5452 dni, 4 godziny, 50 minut temu 138 źrodło rozwiń
Wymień jakąkolwiek ważną technologię oprogramowania, a znajdziesz odpowiednią ścieżkę certyfikacyjną. Odpłatną oczywiście. To dezorientujący i zastraszający szereg akronimów: MCSD, SCJD, RHCE, ACSA. A firma oferująca daną certyfikację jest najczęściej tą samą firmą, co firma sprzedająca dany produkt. Nie ma tu konfliktu interesów. Ale czy te certyfikaty w rzeczywistości sprawdzają się? Czy są uzasadnionymi referencjami?
Prawdopodobnie wielu z Was zna bądź słyszało już o społeczności StackOverflow, której wspólnymi siłami, w bardzo krótkim czasie, udało się stworzyć jedną z najciekawszych i najprzydatniejszych stron typu Q&A (pytania i odpowiedzi). Dzięki uprzejmości twórców tego serwisu, mamy przyjemność zaprezentować Wam jego polską wersję — devPytania. Ogólną ideę przyświecającą temu przedsięwzięciu najlepiej chyba przedstawił Jeff Atwood (jeden z tworców SO): StackOverflow najłatwiej chyba zdefiniować jako prze...
Wielokrotnie zdarzało mi się, że budziłem się rano i na samą myśl o kolejnym dniu w pracy robiło mi się niedobrze. Czy też tak czasami macie? Pomimo całej świetności naszego zawodu, ogromnej gamy wyzwań i oczekujących na rozwiązanie pasjonujących problemów, bycie programistą może czasami dać się nieźle we znaki. Post ten jest kierowany nie tyle do samych developerów, co do ludzi o "jeden stopień wyżej". Menadżerów? Team leaderów? Architektów? Zwał jak zwał. Poniżej zebrałem kilka rzeczy, którymi możecie...
Przyspieszamy ASP.NET - AJAX Web Services W tej części cyklu “Przyspieszamy ASP.NET” omówię kolejne rozwiązanie z serii “wilk syty, owca cała”. Tym razem za pomocą asynchronicznego odwołania do Web Service’u sprawimy, że klient otrzyma dane szybciej, generując przy tym mniejszy ruch i mniej obciążając serwer niż w przypadku klasycznego postbacku. Co więcej, w jego odczuciu strona będzie działa bardziej dynamicznie. Jednak nie ma róży bez kolców…Gdzie jest problem i co chcemy osiągnąć? Przypuśćmy, że twor...
Wstęp do wzorca MVP filed in .NET, Programowanie on Aug.23, 2009 Jestem leniem. Tak przyznaję się bez bicia. Ile razy piszę jakąś aplikację, czy to na własny użytek czy na zajęcia uczelniane, tak bardzo staram się skupiać na niezłym dizajnie logiki biznesowej, że jak przychodzi do napisania interfejsu graficznego po prostu olewam sprawę i idę po najniższej linii oporu. Przykładowo w aplikacjach WinForms-owych pakuję wszystko jak leci pod event handlery nie zastanawiając się nawet nad konsekwencjami…bo i...
Architektura 5590 dni, 9 minut temu 413 źrodło rozwiń
Bartłomiej Szafko: O tym, że można wykryć czy .NET albo dowolny inny pakiet jest zainstalowany pisałem w jednym z poprzednich wpisów. Pisałem również, że z poziomu MSI nie można odpalać instalacji innych pakietów. Dzisiaj pokaże jak szybko stworzyć bootstrappera do plików MSI. W tym celu będę używał bootstrappera znanego z ClickOnce. Pierwszym krokiem jest wyedytowanie pliku .wixproj i ...
Mono to otwarta implementacja środowiska .NET tworzona przez Novella – działa na linuxach i mac os. Z ostatnich wiadomości: Microsoft obiecał, że nigdy nie będzie ścigał projektu mono o licencję, można przeczytać o tym na blogu Miguela, to może umocnić pozycję tego projektu, do tej pory niespecjalnie było wiadomo czy MSFT pozwie novella i zmusi do zamknięcia, więc raczej nie pod...
Jeff Atwood i jego Coding Horror, Joel Spolsky i jego Joel On Software i inni - po polsku, na bieżąco.