Visual Studio to potężne narzędzie i tak na dobrą sprawę ciężko wykorzystać wiele z możliwości dostarczonych przez projektantów Microsoftu. Spora grupka programistów ogranicza się do podstawowego zakresu funkcji - Solution Explorerem>, IntelliSense i ewentualne prostego debugowania. Tymczasem liczba opcji dostępnych w tym IDE jest porażająca. Sam często odkrywam nowe funkcje przez przypadek, lub wynajduję ich opis w Internecie. Po jakimś czasie zastanawiam się tylko, jak mogłem wcześniej programować bez ...
Z komendy Make Object ID korzystam już od bardzo dawna, nie codziennie ale w niektórych sytuacjach jest ona nieodzowna. Ostatnio zorientowałem się jednak, że nawet doświadczeni użytkownicy VS mogą o niej wiedzieć i stąd pojawił się pomysł na ten post.
Jeżeli korzystamy z najnowszego Visual Studio 2012 Windows Desktop możemy się rozczarować gdy zamiast dobrze znanego okienka dostaniemy irytujące modalne okienko.
Niniejszy blog oparłem na dotnetowym CMS'ie Orchard, jednak w standardowym zestawie modułów brakowało mi takiego, który wyświetlałby najnowsze komentarze do postów w formie listy. Postanowiłem więc stworzyć własny widget, który byłby za to odpowiedzialny (efekt można obejrzeć w lewym dolnym placeholderze na tej stronie). Poniżej opis tworzenia własnego widgetu.Przygotowanie modułu Na początek należy utworzyć nowy moduł Orcharda (dokumentacja dostępa tutaj). Na początek, trzeba upewnić się, że mamy zains...
Mr Jenkins in Metro Some weeks ago I started work on Metro Apps. For me the most difficult was forget about Entity Framework or SQL Server. New framework from Microsoft is very interesting but require many changes in thinking in programming. Mobile applications cannot be so heavy as PC or web applications. Small devices even that they are stronger and stronger but they are not so strong as servers or desktops. On my blog I will try to show you my experiences with new WinRT and I will try exchange...
VSpniff is a simple tool to find missing references to files in the VS project. You could avoid excluded files problem after bad merge or something else.
I’ve just published a little project of mine on GitHub, called VsDebugFx. It’s a NuGet package which you can install into your .NET project and get more expressiveness during your debugging sessions inside Visual Studio. It’ll let you evaluate expressions that use C# features which are not normally allowed by the IDE, namely: lambda expressions, anonymous types, LINQ queries and implicitly-typed arrays. I don’t want to repeat myself (DRY anyone?), so if you’re interested in knowing more, go check out th...
W ostatnim czasie zapoznawałem się trochę bliżej z narzędziem o nazwie NDepend. Przez ten czas na pewno nie stałem się ekspertem w korzystaniu z NDepend, chciałbym jednak podzielić się moimi subiektywnymi odczuciami na jego temat. Nie będę tutaj wymieniał jego funkcji (można to znaleźć na stronie producenta lub w wielu innych wpisach), nie będę pisał jak zainstalować (bo to proste, choć mi się nie podobało - lubię instalować a nie rozpakowywać :) ), nie będę się zastanawiać czy warto tego narzędzia używ...
krótki artykuł dotyczący integracji i konfiguracji systemu SVN z TeamCity.
Opis w jaki sposób TeamCity może automatycznie zmieniać wersję aplikacji w pliku AssemblyInfo.cs
Do niedawna nie miałem pojęcia o czymś takim jak NDepend. Co prawda szperając po sieci raz na jakiś czas trafiałem na informacje o metrykach, ale jakoś niespecjalnie mnie to pociągało, ani nie odczuwałem potrzeby, aby „szukać dziury w całym” czyli we własnym kodzie. Zakładałem, że jest wystarczająco prawidłowy, a ja nie mam aż tyle czasu, aby cyzelować go do perfekcyjnej postaci. Sytuacja zmieniła się, kiedy niedawno nadarzyła się okazja zostania obdarowanym właśnie ta aplikacją...
Ten wpis o optymistycznym tytule to tylko informacja dla osób, które ostatni miesiąc przespały w jaskini :) Visual Studio 2012 zostało wypuszczone w programistyczną dzicz i od dziś jest dostępne publicznie. Jeśli ktoś jeszcze nie miał okazji się nim pobawić (osoby mające subskrypcję MSDN mogły zatopić swe zęby już miesiąc temu) powinien spróbować bo, pomijając kilka rewolucyjnych (i dyskusyjnych) zmian, uważam, że ta wersja będzie miała dobre opinie podobnie do wersji 2008.
Często słyszy się, że programiści powinni pisać kod, który nie będzie silnie zależeć od pozostałych elementów. Dobrze jakby był oparty na interfejsach, a klasy oraz metody nie były zbyt duże aby dało się go łatwo ogarnąć i zrozumieć. W ogóle - ma być cud-miód. Pytanie tylko jak tego dokonać nie zaprzęgając zbyt wielkich zasobów ludzkich do sprawdzania tego wszystkiego "ręcznie"? Z pomocą tu przychodzi NDepend - narzędzie do statycznej analizy kodu.
C# ma tę genialną zaletę, że pozwala komentować swoją treść specjalnymi znacznikami XML. Natychmiastowym efektem takich komentarzy jest ich prezentacja w postaci pomocy kontekstowej dla elementów kodu, które zostały nimi opatrzone. Drugie ich zastosowanie, to możliwość wygenerowania dla każdego pliku z treścią oprogramowania dokumentacji zawierającej elementy opatrzone wspomnianym typem komentarza. Niestety – określanie tych plików mianem dokumentacji jest nadużyciem...
Dziś przytrafiła mi się bardzo nie miła niespodzianka podczas pracy. Kiedy na zakończenie dnia chciałem pchnąć zmiany do tfs za pomocą komendy git tfs rcheckin po uprzednim ściągnięciu wszystkiego za pomocą git tfs pull i rebase, nagle z niewiadomych przyczyn rcheckin zwrócił mi kod błędu 1 i wszedł w interaktywny rebase. Za nic nie wiedziałem co jest nie tak – brak też informacji o jaki pliki chodzi (albo ja ślepy tego nie zauważyłem). Tak czy siak, skończyło się na tym, że za pomocą: git tfs ch...
Tematyka uruchamiania i debugowania aplikacji Windows 8 na zdalnym urządzeniu nie jest nowa. Niemniej jednak postanowiłem zrobić małe podsumowanie na ten temat przy okazji ukazania się finalnej wersji Windows 8. How to Create Windows 8 Bootable USB Device from ISO Image using WinUSB Maker. Mając bootowalne USB, ustawiamy w BIOS-ie kolejność bootowania, tak by pierwszym urządzeniem był nasz pendrive (przez USB podłączamy wcześniej klawiaturę). Minimalna rozdzielczość dla aplikacji Metro w Windows 8 to ...
Nie wiem czy jest polski odpowiednik strong-named(SN) wiec będę używał nazwy angielskiej albo skrótu SN. Do zrozumienia tego wpisu niezbędna jest podstawowa wiedza o asymetrycznych algorytmach szyfrowania (RSA), podpisie cyfrowym , kluczu prywatnym, publicznym oraz zasadzie działania funkcji haszującej. Nie będę tego omawiał w poście, zachęcam więc do zapoznania się na własną rękę jeśli któreś z tych pojęć jest niezrozumiałe. SN to przede wszystkim sposób na unikalne identyfikowanie bibliotek. Przed poj...
Dostałem NDepend4 w zamian za jego opis :) Nie muszę o nim mówić w samych słodkich komentarzach, także można wpis czytać do końca. NDepend służy to statycznej analizy kodu napisanego w .NET. Potrafi ocenić kod po wieloma względami, np: ze względu na skomplikowanie, ilość linii kod czy instrukcji IL, ilość zmiennych, łatwość modyfikacji, może zasugerować zmian typów z referencyjnych na wartościowe (ref type --> value type). Sama instalacja jest banalnie prosta, ściągamy paczkę ze strony, rozpakowujemy ...
Piszemy aplikację. Uruchamiamy. Działa. Wysyłamy do klienta. Uruchamia. Nie działa. Znamy to wszyscy, prawda? Powodów może być oczywiście bez liku, od specyficznej konfiguracji konkretnej maszyny po naszą głupotę. Niekiedy jednak problem jest prozaiczny - aplikacja nie może skorzystać z wymaganych dllek! Nie zawsze (a raczej: nigdy?) to co dodajemy bezpośrednio do referencji rozwiązania jest wystarczające do poprawnego działania aplikacji. Strasznie łamałem sobie kiedyś głowę nad takim scenariuszem
Jeśli znamy obiekt z którego chcemy skorzystać a nie pamiętamy w jakiej przestrzeni nazw się znajduje (nie wiemy co dopisać po "using") z pomocą przychodzi VisualStudio. Załóżmy że chcemy użyć wielowątkowości w naszym programie. Potrzebujemy dostać się do klasy Thread. Jednak w jakiej przestrzeni nazw ona się znajduje? Aby automatycznie dodać odpowiednią przestrzeń nazw wystarczy kliknąć na "Thread" prawym przyciskiem myszy i wybrać Resolve->using System.Threading; Odpowiednia przestrzeń na...