Dużo piszę ostatnio o CQRS (Command Query Responsibility Segregation), ale nie pokazałem ani razu jak to podejście wygląda w praktyce. Postaram się dziś naprawić to niedopatrzenie. Posłużę się w tym celu projektem DDDSample w najnowszej wersji CQRS. Kod podzielony jest na cztery główne obszary: Domain — tutaj znajduje się logika biznesowa aplikacji, której zadaniem jest przetwarzanie transak...
Architektura 4023 dni, 17 godzin, 2 minuty temu 308 źrodło rozwiń
Parę dni temu natknąłem się na następujący problem: chciałem usunąć branch z source control TFS, ale podczas próby wykonania takiej akcji, dostawałem komunikat, że jeden z developerów z zespołu posiada locki na plikach. Z pewnych względów developer ten nie mógł zdjąć swoich locków, więc musiałem mu trochę pomóc ;)
Wydawałoby się, że ostatnio temat XNA, nieco ucichł i nie pojawiają się jakieś kluczowe informacje związane z tym frameworkiem. Gdyby jednak podsumować co już wiadomo, na temat tego, co pojawi się w związku z kolejnymi wersjami, uzbierałoby się tego całkiem sporo.Surface Cieszy fakt, iż Microsoft wraz z wprowadzeniem kolejnych platform sprzętowych, planuje wprowadzić natywną obsługę XNA przez te urządzenia. Chodzi tutaj konkretnie, o już dost...
Może pamiętacie jak kilka dni temu Mirosoft udostępnił Windows Mobile 6.5.3 Developer Tool Kit po czym instalator zniknął. Szczęśliwcy ci, którzy nie zdążyli go ściągnąć (ja się do nich nie zaliczam) i go nie zainstalowali.
Mobile development 4023 dni, 17 godzin, 2 minuty temu 69 źrodło rozwiń
Programowanie w JavaScript niesie za sobą dużą dozę swobody jeżeli chodzi o posługiwanie się funkcjami. Funkcje są wszędzie, deklarować je można na wiele sposobów, a rozsądne ich wykorzystanie jest źródłem nowych przyzwyczajeń, które chciałoby się niejednokrotnie przenieść do "rodzimego" języka programowania. W moim przypadku oczywiście C#. I dzięki wyrażeniom lambda takie szafowanie funkcjami na lewo i prawo staje się nie tylko możliwe (bo możliwe było już wcześniej od .NET 2.0 dzięki anonimowym delegat...
Architektura 4025 dni, 15 godzin, 52 minuty temu 137 źrodło rozwiń
Oryginalny post: Your Favorite NP-Complete Cheat Autor: Jeff Atwood Czy kiedykolwiek słyszałeś, żeby inżynier oprogramowania odnosił się do jakiegoś problemu mianem "NP-zupełny"? To wymyślny, żargonowy skrót do "niesamowicie trudny". Najbardziej znana cecha problemów NP-zupełnych to to, że nieznany jest sposób na ich szybkie rozwiązanie; to oznacza, że czas jaki jest wymagany na rozwiązanie danego problemu przy użyciu obecnie znanych algorytmów, wzrasta bardzo szybko w miarę wzrostu rozmiaru ...
Tę serię przede wszystkim należy zacząć od pytania – po co nam to? To z kolei możemy rozbić na dwa kolejne. Po co nam w ogóle programowanie równoległe oraz po co nam TPL – przecież już mamy dostępne narzędzia.Po co nam to w ogóle Mam nadzieję, iż tak na prawdę na to pytanie odpowiadać nie trzeba, ale dla porządku zróbmy to. Potrzebujemy bo prawo Moore’a przestaje działać. Nie możemy już powiedzieć naszemu klientowi, który narzeka na słabą wydajność aplikacji, że gdy będziemy wydawać to oprogramowanie to...
W każdy poniedziałek od 20:30 organizowane będą wirtualne spotkania. Pierwsze już się odbyło 15 lutego. Więcej na www.virtualstudy.pl
Bazy danych i XML 4026 dni, 22 godziny, 37 minut temu 66 źrodło rozwiń
Git posiada możliwość nadawania własnych aliasów jego komendom. W konfiguracji wygląda to tak: 1: [alias] 2: ci = commit A więcej na ten temat można poczytać w WIKI. Ja jednak zamiast korzystać z aliasów, napisałem swój skrypt do miniaplikacji AutoHotkey. Przechwytuje ona zdefiniowane sekwencje klawiszy, w locie zamieniając na inne akcje. (tym, którzy go nie znają, gorąco polecam ściągnięcie i kilka chwil zabawy, świetna sprawa). Mój poniższy skrypt jest banalny: ogranicza się do rozwijania 2...
W C++ nie ma mechanizmu typu garbage collector, więc jedyne automatyczne zwalnianie obiektów, jakie w tym języku występuje, dotyczy tych lokalnych - tworzonych na stosie. Dlatego wszelkiego typu pomocnicze obiekty (np. uchwyty do zewnętrznych zasobów, jak pliki) deklaruje się tu zwykle jako właśnie zmienne lokalne. W innych językach z kolei - dokładniej: w tych, w których GC występuje - praktycznie wszystkie...
Jako programista naturalne było dla mnie tworzenie przepływów pracy (ang. Workflow) z poziomu VisualStudio. SharePoint Designer w tym temacie udostępniał bardzo skromne funkcje. Miał jednak duży plus gdyż nie wymagał znajomości języka programowania przy tworzeniu prostych przepływów pracy. Daje to możliwość tworzenie przepływów pracy osobom, które nie są programistami. Jednak przepływy pracy tworzone z poziomu VisualStudio też mają jedną zasadniczą wadę. Naturalne jest, że każdy przepływ się zmienia - zm...
W poście przedstawiającym Gita wspomniałem o możliwości modyfikacji historii - i dzisiaj więcej na ten temat. Jest to funkcjonalność naprawdę nie do przecenienia. Commit nie jest już czynnością ostateczną, z którą nie można nic zrobić, jak nas przyzwyczaił SVN. Wtedy przed puszczeniem zmian trzeba się było zastanawiać i analizować dokonane zmiany. Tutaj natomiast bardzo sensownym trybem pracy jest lokalne zatwierdzanie zmian tak często jak mamy na to ochotę - ja na przykład nienawidzę mieć jednocześnie z...
Oryginalny post: Why testers? Autor: Joel Spolsky Moja siostra sprawiła swoim dzieciom szczeniaczka i one próbowały go wytresować. Aby mieszkać z psem pod jednym dachem, musisz nauczyć go, by nie skakał na ludzi, nie robił kupy w domu, siadał na zawołanie oraz nigdy, przenigdy nie przeżuwał iPada. Nigdy. Dobra dziewczynka. Z tresowaniem psów jest tak, że reakcja musi być natychmiastowa. Jeśli po powrocie do domu odkrywasz, że parę godzin wcześniej pies wywalił kubeł ze śmieciami w kuchni, jest już z...
Odliczając dni do premiery pełnej wersji pakietu Visual Studio 2010, mamy okazję zapoznać się z wersją beta tego oprogramowania oraz poznać nowe możliwości technologii Silverlight. Jej czwarta odsłona przynosi długo oczekiwaną funkcjonalność: obsługę mikrofonów oraz kamerek internetowych. Tradycyjnie dołożono starań, by interfejs był jak najbardziej przystępny dla programisty. Pokażę tutaj typowy sposób na przechwytywanie dźwięku za pomocą mikrofonu. Korzystać będziemy z przestrzeni nazw System.Windows....
Silverlight 4028 dni, 1 godzinę, 58 minut temu 34 źrodło rozwiń
Jakiś czas temu pisałem o dostępności Visual Studio 2010 Beta 2, a w ostatnim tygodniu pojawiła się kolejna przedpremierowa wersja, czyli Visual Studio 2010 and .NET Framework 4 Release Candidate (oczywiście tutaj również linki do pobierania). Miłego testowania!
Dawno już nie pisałem na blogu. Nie chcę tłumaczyć się, że zarobiony jestem i nie mam na nic czasu (choć tak jest :)) wiec postanowiłem zamiast tego wyznaczyć sobie temat, o którym będę pisał i starać się pisać przynajmniej raz w tygodniu. Dzięki temu stworzę kurs jak w przypadku WPF oraz będę dość regularnie pojawiały się nowe wpisy na blogu.O czym więc będzie kurs? Task Parallel Library (TPL) – bo o tym chcę rozpocząć nowy cykl postów to nowe podejście do programowania równoległego, które pojawiło się ...
Zespół Microsoft Learning za pośrednictwem bloga Beta Exam Announcements poinformował o rychłym udostepnieniu egzaminów beta z zakresu Microsoft Visual Studio 2010 oraz Microsoft® .NET Framework 4.
W języku C# mamy kilka mechanizmów tworzenia wątków. Różnią się one zarówno wydajnością jak i przeznaczeniem. Zacznijmy więc od najpopularniejszego sposobu a mianowicie klasy System.Threading.Thread. Stworzenie wątku polega na inicjalizacji klasy oraz wywołania metody Start:publicclass ThreadExample { public CreateThread() { System.Threading.Thread thread =new System.Threading.Thread(ThreadMethod); thread.Start(null); } privatevoid ThreadMethod(object parameters) { ...
Wspominałem o "nienajświetniejszym" działaniu Git pod Windows oraz o tym, że w Mercurialu udało mi się zrobić WIĘCEJ przez 2 godziny niż w Git przez kilka miesięcy. Główną czynnością, którą miałem wówczas na myśli, było udostępnienie swojego repozytorium na zewnątrz. Linuxowa wersja Gita rozprowadzana jest z komendą git-daemon pozwalającą na zdalne dobranie się do repo po protokole git://. Taki odpowiednik svnserve. Niestety po zainstalowaniu msysgit okazuje się, że w tej wersji deamona po prostu nie ma...
VS2010 – Cecha Dnia: Extension Manager Szybki start, wybieramy menu Tools i zaznaczoną opcję: Przydatne gdy jesteśmy podłączeni do Internetu. Wtedy nie wychodząc z Visual Studio dostajemy galerię z różnorakimi dodatkami. Są one dostępne albo bezpośrednio do pobrania lub zostaniemy pokierowani na stronę producenta, gdzie znajdziemy więcej informacji. Extension Manager to bardzo ciekawe repozytorium dóbr wszelakich. Dla przykładu, szukaliście kontrolki Captcha do Asp.Net? Jest tam: Dodatki są podziel...