Zapewne wszyscy zdają sobie sprawę, że nasz breakpoint możemy uczynić warunkowym tak aby VS zatrzymało się na nim tylko w specyficznej sytuacji a nie za każdym razem. Gdy breakpoint jest warunkowy jego ikona posiada mały biały plusik tak jak na obrazku w tym paragrafie abyśmy mogli odróżnić go od innych. Dziś pokażemy sobie, że warunkowy breakpoint może być użyty także do innych, mniej oczywistych (mam nadzieję) celów. Załóżmy, że jesteśmy w trakcie debuggowania dość skomplikowanego kodu (ten poniżej tak...
IntelliTrace jest doskonałym narzędziem ułatwiającym debuggowanie przez tzw. “time travel”. Umożliwia to podczas debuggowania np. cofnięcie się do poprzedniej linii lub prześledzenie nagranej wcześniej sesji (w przypadku np. awarii systemu). W tym poście jednak nie będziemy zajmować się obsługą tego narzędzia a scenariuszem w którym mamy zainstalowany program na innym komputerze, na którym nie jest dostępny Visual Studio. Przede wszystkim na dany komputer należy skopiować następujące pliki (wymagane prz...
Ostatnio odkryłem na nowo funkcjonalność definiowania własnym szablonów kodu. Funkcjonalność ta jest bardzo często nie wykorzystywana przez programistów, ale potrafi zdziałać cuda. W pisaniu aplikacji biznesowej zawsze przychodzi taki moment, że trzeba napisać kod służący do zapisywania danych do bazy, jak równię ich odczytywania.
Tworząc oprogramowanie bardzo trudno ustrzec się przed stworzeniem aplikacji niezgodnej z zasadami sztuki. Przez zasady sztuki rozumiem tutaj tworzenie zbyt długich funkcji, tworzenie bardzo zagmatwanego kodu (np. składającego się z kilkunastu if-ów jeden w drugim) czy niekomentowanie metod i funkcji. Nie pilnując jakości kodu możemy bardzo łatwo doprowadzić do sytuacji, w której utrzymanie kodu będzie co najmniej bardzo pracochłonne. Dlatego wiele większych firm wprowadza zasady tworzenia kodu. Co takie...
Marcin Wolański's blog: Kiedy VisualSVN Server zainstalowałem tak, jak chciałem, zachciało mi się systemu do zarządzania błędami. Padło na Trac. Do instalacji postanowiłem wykorzystać Apache VisualSVN Servera. Wiem, że mógłbym wziąć sobie paczkę z Trac dla VisualSVN Server, ale nie zrobiłem tego, bo po pierwsze, nie zawiera najnowszej, stabilnej wersji Trac, a po drugie – niezależna instalacja Trac uprości aktualizację narzędzi w przyszłości.Przygotowanie środowiska Zainstalowałem po kolei używając defau...
Agenda • Czy jest aplikacja modułowa ? • Inicjalizacja modułów Czym jest moduł ? Pozwoliłem sobie na przetłumaczenie pierwszego akapitu z 4 rozdziału ebooka o Prism 4. Oto on. Aplikacja modułowa to aplikacja podzielona na zestaw funkcjonalnych jednostek (zwanych modułami), które mogę być zintegrowane w jedną większą aplikację. Moduł jest swego rodzaju kontenerem części funkcjonalnościcałej aplikacji i zazwyczaj stanowi zbiór powiązanych ze sobą zagadnień. Moduł taki może zawierać zbirór ele...
autor: Wspominałem już kiedyś o FAKE - F# Make. Jest to narzędzie do wykonywania buildów, tak jak MSBuild, nAnt, Rake, psake czy wiele innych. Przez krótki czas (przy jednym projekcie) miałem okazję się nim pobawić, i bardzo przypadło mi do gustu. Dzisiaj pokażę jak można z niego skorzystać. Na początek jednak kilka linków: * FAKE na Githubie * blog autora * Google group * historia stabilnych buildów na CodeProject TeamCity - trzeba zalogować się jako gość, wybrać najnowszy build, i... ściągać najnowsz...
Tematem części 1 będzie, krótki opis na temat tego czym jest Prism, oraz opis Boostrapera. Co to jest Prism ? Prism to framework zawierająy szereg narzędzi ułatwiających budowę aplikacji składających się z niezależnych modułów. Wbrew pozorom, tak jak wiele osób uważa, Prism nie jest kolejnym frameworkiem MVVM. Wiele z ficzerów (Unity, EventAggregator) wchodzących w skład Prisma jest wykorzystywanych we własnych implementacjach MVVM typu Cinch, Caliburn etc. Dlaczego warto korzystać z Prism’a ? Gł...
W trakcie rozwijania algorytmów na potrzeby pracy magisterskiej pojawiło się zapotrzebowanie na zdecydowane przyspieszenie jednego z nich. Algorytm polegał na liczeniu pewnych własności dla każdego punktu regularnej siatki. Zrównoleglenie było naturalnym rozwiązaniem, ponieważ elementy nie zależały od siebie nawzajem. Zdecydowałem się na użycie Parallel Extensions (Wiki, MSDN) ze względu na prostotę. Przedstawię szkielet rozwiązania, które może zostać zastosowane pr...
Ostatnio cały czas bawiłem się XAML-em, by w końcu doprowadzić system GUI to względnej używalności. Temat ten jest na osobną notkę, która możliwe, że pojawi się niedługo XAML w standardzie jest już dość rozbudowany. Lecz gdyby to nam nie wystarczało(a czasami nie wystarcza), daje nam możliwość jeszcz...
Zasiedziało mi się dziś jak zawsze przed kompem i przeglądając wiadomości ze świata natrafiłem na oto ten artykuł . Opisuje on jak dwóch byłych studentów Uniwersytetu Warszawskiego – Tomasz Błaszczyk i Tomasz Waleń opracowali aplikację mającą z automatu odrzucać kiepskich programistów. Jeśli interesuje Was powstanie tego pomysłu zapraszam do lektury artykułu. Ja za to opiszę sam test.
TeamCity umożliwia uruchamianie buildów za pomocą wielu różnych narzędzi, m.in. MSBuild, nAnt czy Rake. Ja jednak postanowiłem kontynuować swoją, rozpoczętą kilka miesięcy temu, przygodę z FAKE - F# Make. Wcześniej pracowało mi się z tym narzędziem bardzo przyjemnie i odświeżenie znajomości tym razem nie zaszkodzi (a może i wyniknie z tego jakiś post:) ). Dziwnym nie jest, że "out of the box" TC nie wspiera FAKE, jest to w końcu projekt raczej niszowy. Jedyne wyjście to wskazanie własnego skryptu Build....
Pięknego niepodległego wieczora zainstalowałem sobie TeamCity - bardzo przyjemny serwer Continuous Integration od Jetbrains (w dodatku do moich potrzeb - całkowicie darmowy!). Od półtora roku używam go (z wielką satysfakcją) jako dev, ale nie miałem jeszcze wcześniej przyjemności zagłębić się w jego konfigurację i administrowanie. Generalnie: polecam. Chciałem pisać specjalnego posta o instalacji i konfiguracji TC, ale okazało się że za bardzo nie ma o czym. Z poziomu strony WWW bardzo czytelnie można ws...
Od dawna używam tego super narzędzia bez którego nie wyobrażam sobie pracy z prywatnymi projektami jak i w pracy. Człowiek się niesamowicie przyzwyczaja do potężnej dawki pomocy jakie niesie za korzystanie z tego darmowego dodatku. A to przecież tylko wersja darmowa, strach pomyśleć co może zrobić wersja pełna ale płatna :/ Sam z pewnością zakupie wersje płatną, gdy tylko jej cena będzie się mieścić w moim budżecie a...
Autor: Dzisiaj chciałbym Wam przedstawić kilka ciekawych (darmowych) dodatków do Visual Studio 2010, z których od pewnego czasu korzystam. 1. devcolor URL: http://visualstudiogallery.msdn.microsoft.com/en-us/7dbae8b3-5812-490e-913e-7bfe17f47f1d Plugin bardzo przydatny podczas pracy z kolorami w aplikacji www. Tworzy on podkreślenie pokazujące kolor reprezentowany przez kod: Dodatkowo możemy skorzystać z edytora kolorów:2. ItalicComments URL:...
Internet obfituje w bardzo wiele interesujących treści, jednak niejednokrotnie sposób ich przedstawienia wizualnego może... zniechęcić. Źle dobrane tło, niepraktyczna czcionka, męczące kontrasty (tak, wiem, wiem, część z tego można znaleźć również na moim blogu:))... Ale niedawno znalazłem rozwiązanie tych problemów. Mowa o projekcie Readability od firmy arc90.
W Entity Framework 4 została dodana obsługa klas POCO. Samo pisanie takich klas oraz odpowiedniej klasy dziedziczącej po ObjectContext (klasa ta zapewnia „most” pomiędzy klasami POCO a EntityFramework) może być czasochłonne. Na ratunek przychodzi jednak POCO Entity Generator. Po jego instalacji wystarczy przejść do edytora naszego modelu, otworzyć menu kontekstowe, wybrać „Add Code Generation Item…”, a następni...
Autor: Tematykę IntelliTrace poruszałem już kilkukrotnie. Dzisiaj chciałbym powrócić do zagadnienia opisanego w poście Logi IntelliTrace bez tajemnic czyli analizy logu przy pomocy IntelliTrace API. Tym razem napiszę w jaki sposób dostać się do informacji o tym kiedy została wywołana jakaś metoda, jaki wynik zwróciła i jakie były parametry wywołania. Informacje te są prezentowane w oknie Calls View w Visual Studio 2010 ale można je analizować w ograniczonym stopniu. Poniższe informacje przydadzą się każd...
Od dość długiego czasu (ok. 3 miesięcy) szukałem miejsca, w które mógłbym "wepchnąć" wszystkie swoje projekty online. Do tej pory wszelkie repozytoria trzymałem lokalnie na dysku zabezpieczając się backupem w postaci doskonałego narzędzia Dropbox (polecam!). Postanowiłem jednak, że bardziej "profesjonalnie" będzie jeśli pod adresem http://[nazwaprojektu].maciejaniserowicz.com (czy coś w ten deseń) będę mógł udostępnić klientowi repozytorium z kodem, bugtracker i wszelki inny przydatny przy realizacji pro...
W testach jednostkowych czasami warto testować również prywatne metody. Wynika to z zasady atomowości. Prywatne metody z reguły zawierają atomowe operacje, wykorzystywane potem w metodach publicznych. Jednym ze sposóbów jest użycie mechanizmu refleksji. W tym poście zajmiemy jednak się narzędziem publicize.exe, służącym do zmieniania modyfikatorów prywatnych na publiczne. Załóżmy, że mamy taką klasę: