Może wszyscy o tym wiedzą i tylko ja byłem tak prostacko nieoświecony, ale niedawno znalazłem w Visual Studio funkcjonalność, która, jak się okazało, była tam od wielu lat. A ja, ślepiec nad ślepcami i ignorant nad ignorantami, podniecam się nią dopiero teraz. Podniecacz nad podniecaczami... Prędko, prędko baśń się baje, nie tak prędko... okienko "Add reference" się otwiera. O czym wie chyba każdy. Mnie na ten przykład po wielokroć krew z tego powodu zalewała, a "miesiąc nie był ... [More]

Może zdarzyć się, że w używanych dllkach napotkamy na konflikt nazw. Co przez to rozumiem? Więcej niż jedna biblioteka zawiera klasy o identycznej hierarchii klas w przestrzeni nazw. Doskonały scenariusz takiej sytuacji to konieczność wykorzystania kilku wersji tego samego komponentu (swego czasu zetknąłem się z takim czymś używając edytora tekstowego firmy Telerik w kontekście MOSS). Przykład… W pliku First.dll 1: namespace CommonNamespace 2: { 3: public class ClassWithCommonNa... [More]

Regex w Visual Studio - lazy mode

23 lutego 2009 19:14 w kategorii: pro
Bardzo przydatną funkcjonalnością w Visual Studio jest wyszukiwanie z wykorzystaniem wyrażeń regularnych: Przyzwyczajeni do .NETowej składni języka możemy natknąć się na pewien problem. Otóż standardowy tryb działania tego silnika w VS (jak i chyba wszystkich popularnych silników regex?) to tryb zachłanny, czyli "greedy". Polega on na dopasowaniu tekstu o maksymalnej długości. Składnią służącą do jego uzyskania jest gwiazdka *, tak samo jak w standardowych regexach. Jeżeli jednak napotkamy po... [More]

Czyszczenie "ostatnich" Visual Studio

23 czerwca 2008 20:35 w kategorii: pro
Visual Studio, jak właściwie każda większa aplikacja, posiada przydatną funkcjonalność zapamiętywania ostatnio używanych plików i projektów. Niestety, jak właściwie każda większa aplikacja, brakuje w nim również funkcji czyszczenia/porządkowania owej listy. Cóż mogę zrobić w sytuacji, gdy tak naprawdę pracuję hobbystycznie nad jednym projektem, a oprócz niego mam na liście śmieci pozostałe po "tymczasowych" projekcikach rozwiązujących na przykład pojedynczy problem z forum CG? Wygląda to o tak, ... [More]

Jesteśmy świadkami wydarzenia oczekiwanego na całym świecie, porównywalnego (no, trochę na wyrost:) ) z premierą VS2008, czyli Resharper 4.0! Z tej niezwykłej okazji zapraszam na trzecią, prawdopodobnie ostatnią i momentami odrobinę naciąganą, odsłonę cyklu "11 powodów do używania Resharpera". Dla przypomnienia: część 1, część 2. No to jadziem z dziadziem:1) Uruchamianie testów jednostkowychNiedawno miałem niewątpliwie szczęśliwą okazję wypróbować w żywym projekcie R# współgrającego z testami je... [More]

Wraz z Visual Studio 2005 otrzymaliśmy bardzo miły feature - automatyczne wypełnianie toolboxa własnymi kontrolkami zawartymi w aktualnie otwartej solucji. Życie stało się prostsze, ponieważ nie trzeba już wykorzystywać własnej twórczości z pominięciem designera bądź babrać się w ohydnym oknie "Choose items...": Mimo swojej cudności owo udogodnienie może być czasami prawdziwym "pain in the ass" (żeby nie napisać "hateful spear in the side"). Powód jest bardzo prosty - w rozbudowanych systemach ... [More]

Często (zawsze?) w projektach mamy do czynienia z kilkoma wersjami konfiguracji. Równie często można je kojarzyć z konfiguracjami kompilacji konkretnego buildu, na przykład konfiguracja testowa powinna być wykorzystana dla buildu w wersji DEBUG, a produkcyjna dla RELEASE. W bardzo prosty sposób można osiągnąć taki efekt z poziomu Visual Studio, bez uciekania się do zewnętrznych skryptów:1) tworzymy katalog dla plików konfiguracyjnych i umieszczamy z nim różne wersje (np różniące się wartościami ... [More]

Kilka dni temu została wydana wersja beta R# 4.0. To doskonały moment, aby opublikować drugą odsłonę moich chrapliwych "ochów" i "achów" kierowanych pod adresem tej aplikacji (pierwsza odsłona tutaj).1) Kopiowanie komentarzyDokumentowanie kodu przy pomocy odpowiedniej składni xml to dobra praktyka (w granicach rozsądku). Niestety, w przypadku nadpisania już udokumentowanej metody, jedynym wyjściem na udokumentowanie nowej wersji jest copy/paste (jest jeszcze tag <inheritdoc />, ale jego za... [More]

Kolejny Top 11. Tak jak kiedyś zapowiedziałem - dzisiaj omówię największe moim zdaniem zalety cuda znanego jako Resharper. Jest to narzędzie oferujące niesamowite możliwości programistom, którzy są "TDD-enabled". Jaki odsetek deweloperów w Polsce ma jednak szczęście pracować w ten sposób? Niewielki...  Tak więc skupiam się głównie na cechach do wykorzystania przez każdego, od pierwszych chwil. Na cechy "TDD-specific" można by pewnie poświęcić cały osobny odcinek. Tak wieć zaczynajmy, jedno urzec... [More]

11 brudnych sekretów Visual Studio

30 marca 2008 16:47 w kategorii: pro
Podobnych zestawień można znaleźć w sieci całe mnóstwo. Jednakowoż dorzucę swoje 11 kopiejek w postaci 11 punktów, o których dowiadywałem się z czasem i częstokroć niespodziewanie. Dlaczego 11? Bo nie mogłem się zdecydować na wykreślenie któregokolwiek z nich z listy. Poza tym Rammstein na każdym albumie zamieszcza 11 piosenek, które to stwierdzenie poddaje w wątpliwość sens jakichkolwiek związków przyczynowo-skutkowych zamieszczonych na niniejszym blogu.Ale nieważne. Tak czy siak bez ... [More]

W dobie tak potężnych narzędzi jak Visual Studio programiści często zdają się całkowicie na ich funkcjonalność. Jedną z (wspaniałych zresztą) cech współczesnych IDE jest Intellisense. Czy wyobraża ktoś sobie pisanie kodu bez podpowiedzi? Zobaczmy jednak, że nie zawsze można na tym elemencie polegać w 100% ze względu na "konfigurowalność" nawet tego mechanizmu VS.Dla przykładu załóżmy dwie solucje (w C# nie wystarczą 2 osobne projekty w jednej solucji, w innych językach nie sprawdzałem): ClassLib... [More]

"Zwijanie" plików w Visual Studio

4 marca 2008 20:49 w kategorii: pro
Zdarza się, że mamy w projekcie grupę plików powiązanych ze sobą logicznie. Na przykład - jeden wygenerowany automatycznie i drugi uzupełniający go własnoręcznie napisanym kodem. Przykładem "z życia" są tu klasy form z .NET, gdzie to Visual Studio standardowo pokazuje swoją ciekawą funkcjonalność "zwijania" grupy powiązanych plików. Niestety, takie zachowanie nie jest dostępne w żaden znany mi sposób z poziomu interfejsu użytkownika. Jak więc wykorzystać ten trik we własnych programach?Zamykamy ... [More]

Visual Studio Express & NUnit

27 lutego 2008 19:36 w kategorii: pro
Jeżeli chcemy wykonywać testy jednostkowe naszego kodu, ale posiadamy do dyspozycji jedynie wersję Express VS, ciągłe uruchamianie i konfigurowanie NUnit może być nieco uciążliwe. Oto krótka instrukcja ułatwienia sobie życia: 1) Z menu wybieramy Tools -> External Tools i definiujemy własne narzędzie (uwaga na wszystkie pola): 2) Po dodaniu NUnit do "External Tools" możemy przeci... [More]