Dawid Cieszyński

.NET/PHP Software Developer

Niedawno dostałem do przetestowania najnowszą wersję narzędzia NDepend.

Make your .NET Code Beautiful with NDepend

NDepend jest narzędziem Visual Studiodo zarządzania skomplikowanym kodem .NET umożliwiającym osiągnięcie wysokiej jakości kodu. Dzięki NDepend możemy określić jakość oprogramowania przy pomocy metryk kodu, wizualizacji powiązań na wykresach lub "mapach drzew" (treemaps) oraz standardowych i niestandardowych reguł (np. wskazujących zbyt rozbudowane klasy).

Po zainstalowaniu dodatku, wystarczy utworzyć nowy projekt (menu NDepend->NDepend Project->New project) i już możemy analizować nasz kod. W prawym dolnym rogu pojawia się małe kółko z informacją o stanie kodu, możemy podejrzeć co należało by poprawić, ewentualnie zignorować wybrane reguły.

Rules ExplorerW najnowszej wersji została dodana możliwość tworzenia reguł w języku CQLinq (w poprzednich wersjach był to język CQL zbliżony do SQL). Wszystkie reguły standardowe również zostały przekształcone do CQLinq, dzięki czemu łatwiej jest napisać coś własnego na przykładach. Dodatkowo mnóstwo informacji znajdziemy na stronie producenta.

Sam edytor reguł ma wszystko co potrzeba: podpowiadanie składni intellisense, podpowiedzi o poszczególnych dostępnych obiektach.

Przykładowa reguła - ostrzeżenie o singletonach:

//<Name>Avoid the Singleton pattern</Name>
warnif count > 0
from t in Application.Types
where !t.IsStatic && !t.IsAbstract && (t.IsClass || t.IsStructure)

// All ctors of a singleton are private
where t.Constructors.Where(ctor => !ctor.IsPrivate).Count() == 0

// A singleton contains one static field of its parent type, to reference the unique instance
let staticFieldInstances = t.StaticFields.WithFieldType(t)
where staticFieldInstances.Count() == 1
select new { t, staticFieldInstance = staticFieldInstances.First() }

// The Singleton pattern consists in syntactically enforcing that a class 
// has just one unique instance.
// At first glance, this pattern looks appealing and it is widely used.
// However, we discourage you from using singleton classes because experience
// shows that singletons often result in less testable and less maintainable code.
// More details available in these discussions:
//  http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members/
//  http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/

Każda reguła oprócz tego, że ma opis poszczególnych fragmentów, to jeszcze na końcu znajdziemy dokładne wyjaśnienie czemu ta reguła jest ważna wraz z odnośnikami do artykułów szerzej opisującymi problem.

Narzędzie warte uwagi, zwłaszcza przy większych projektach tworzonych przez zespół ludzi. To co tutaj poruszyłem to tylko wierzchołek tego co potrafi to narzędzie, najlepiej samemu je przetestować na własnych aplikacjach.

Kacper TomaszewiczZbliża się koniec roku, a w nowym roku trzeba będzie zapłacić podatek. Jeśli nie macie co zrobić ze swoim "procentem" pomóżcie Kacprowi. Kacper jest chory na dziecięce porażenie mózgowe, wychowuje go samotnie jego mama. Więcej informacji na stronie: https://kacper.crystalcode.pl

Ci co używają mojego Chess Monitora (o ile są tacy) pewnie zauważyli że już nie działa. A nie działa dlatego że hosting dla projektów z Imagine Cup 2010 niedawno się skończył.

Przeniosłem tą aplikację na serwer StudentLive.pl. Więc zamiast cieszakteam.imaginecup2010.net proszę się kierować na http://cieszak.studentlive.pl/.

I jeszcze pytanie do Was: Czy macie jakieś sugestie lub propozycje co do tej aplikacji? Ostatnio zastanawiam się co z nią zrobić...

Życzę udanych potyczek szachowych :)

ProgrammingTimer nie umarł!

Właśnie udostępniłem wersję 1.5.0.0 programu służącego do pomiaru czasu pracy przy projektach. W tej wersji dodałem wsparcie dla Visual Studio 2010 oraz usunąłem obsługę Software Updatera (gdyż nie będę już go więcej wspierał).

I również aktualizacja TextFileViewer. Dodałem wsparcie dla UAC systemu Windows Vista  / 7 i kilka rozszerzeń plików Microsoft Visual Studio 2010.

Niedługo będę tworzył kolejną wersję aplikacji PowRek (kto wie co to za aplikacja to wie ;)).

A wczoraj wspólnie z resztą zespołu CrystalCode Studio skończyliśmy wersję RC naszego CMS'a. Aktualnie dopracowujemy szczegóły i szukamy klientów.

Pierwszą stroną jaka została postawiona na naszym CMSie jest strona aplikacji PowRek.

Kiedyś gdy jeszcze pisałem programy w Delphi stworzyłem kilka fajnych programów. Aktualnie pewnie i tak nikt ich nie używa. Ale chciałem Wam przypomnieć o jednym z nich.. którego używam nadal (na Windows 7 x64).

Tym programem jest Text File Viewer. Ostatnia wersja była utworzona 2007-01-22 więc ponad 3 lata temu. Aplikacja umożliwia zobaczenie podglądu pliku tekstowego (kilkadziesiąt-set pierwszych znaków treści pliku) po najechaniu na niego myszką. Szalenie ułatwia to przeglądanie plików gdyż nie trzeba we wszystkie po kolei klikać. A jeśli do danego typu pliku mamy podpiętą jakąś ciężką aplikację typu Visual Studio to też nie musimy jej odpalać, albo klikać prawym i wybierać otwórz w Notepad++.

Jeśli jeszcze nie miałeś okazji korzystać z tego programu to zapraszam do spróbowania.

2010-08-27 14:03:

Zapomniałem poinformować:

Nie instalujcie SoftwareUpdatera! Aktualnie nie jest wspierany.

Dodatkowo jak będziecie chcieli zmienić konfigurację, to aplikację konfiguracyjną trzeba uruchamiać jako administrator.

Oprócz tego wszystko powinno działać.

Wczoraj zakończył sie konkurs ImagineCup 2010. Jak już wcześniej było wiadomo Polacy zdobyli wszystkie miejsca w kategorii Internet Explorer 8 Award. Niestety drużyna fteams nie znalazła się na podium.

Zdjęcia możecie znaleźć na flickr’ze: ImagineCup's photostream

Wczoraj doszedł mi jeszcze jeden MCTS: .NET Framework 3.5, ASP.NET Applications

Muszę się Wam czymś pochwalić :) Właśnie pojawiła się lista finalistów Imagine Cup

Zająłem 3 miejsce w edycji światowej Imagine Cup - Internet Explorer 8 Award !!