O wersji v2 NDependa pisałem we wcześniejszym poście, jednak na sporo więcej uwagi zasługuje najnowsza, trzecia wersja tego narzędzia.
Co nowego w NDepend?
Największą i dla mnie osobiście najbardziej przydatną nową funkcjonalnością jest pełna integracja z Visual Studio 2005/2008/2010 IDE. Jeszcze nigdy używanie NDependa nie było tak naturalne w procesie tworzenia oprogramowania. Integracja wprowadza zupełnie nowy sposób pracy z kodem, gdyż do tej pory (przynajmniej w moim przypadku), statyczna analiza kodu przez NDependa była najefektywniejsza w połączeniu z Continuous Integration (analiza przeprowadzana przez VisualNDepend była przeprowadzana wyrywkowo, jak mi się przypomniało). Integrację z Visual Studio uważam za doskonały pomysł i nie spodziewałem się, że może być ona tak pomocna!
Jak to wygląda w praktyce?
Zacznijmy od zainstalowania dodatku do VisualStudio, który pozwoli na integrację NDependa z VS. Po uruchomieniu VisualNDepend.exe klikamy na przycisk instalacji:
Po czym wybieramy do jakiego środowiska ma być wykonana integracja oraz jej typ.
Do wyboru mamy: pełną integrację oraz integrację light. Integracja light polega na tym, że z poziomu Visula Studio będziemy wykonywać polecenia np. CQL (Code Query Language), które zostaną przesłane i uruchomione w otwartej osobno instancji VisualNDependa. Moim zdaniem instalacja light sprawdza się najlepiej na komputerach z niewielkimi monitorami. Mnogość okien NDependa wymaga sporej powierzchni do pracy, a gdzieś jeszcze trzeba znaleźć miejsce na wyświetlenie kodu :-) Jeśli jednak dysponujemy nieco większym ekranem, a już najlepiej dwoma, trzema, czterema, (ma ktoś pięć???) monitorami, wtedy wersja Full będzie najlepszym wyborem.
Analizę czas zacząć
Do celów edukacyjnych przeanalizujmy zobaczmy NDependa trójkę w akcji. Jak mięso armatnie użyję biblioteki Sharpy. Sharpy to implementacja ASP.NET MVC ViewEngine podobna do Smarty dostępnego dla PHP. Jednak w tym momencie nie jest to istotne. Po załadowaniu źródeł należy podłączyć NDependa do otwartego pliku solution, co czynimy bezpośrednio z poziomu menu VisualStudio (przed samym załadowaniem należy wykonać Build projektu):
W tym momencie NDepend automatycznie przeskanuje projekty i zaproponuje je do analizy (przypominam, że wersji v2 trzeba było “ręcznie” utworzyć projekt) i to już pierwsze, ogromne udogodnienie:
Oczywiście nic nie stoi na przeszkodzie, aby dołączyć kolejne pliki, które nie znajdowały się w naszym solution. Upewniamy się, że checkbox “Run Analysis Now!” jest zaznaczony, po czym pozostaje kliknąć przycisk OK.
Po wykonaniu analizy NDepend generuje raport HTML, który pozwala na szybkie przejrzenie stanu w jakim znajduje sie kod, reszta szczegółów znajduje się już w IDE. Szybki przegląd uzyskamy za pomocą żółtego oka węża (a co!) znajdującego się w prawym, dolnym rogu IDE:
Po dwukliku na nim oczom naszym ukazuje się CQL Query Explorer:
NDepend Search
NDepend Search, to kolejny feature, który jest mega użyteczny. Mimo, że VS 2010 wprowadza możliwość “inteligentnego” wyszukiwania po nazwie metod, to NDepend Search (wywalasz z menu NDepend/NDepend Search) potrafi wyszukiwać po nazwie metody, typach, polu, assembly, przestrzeni nazw, a na dodatek pokazuje w oknie wyszukiwania złożoność danej metody / typu, a przy tym działa bardzo szybko!
Gdy jednak potrzebujemy bardziej rozbudowanego wyszukiwania pod względem złożoności wystarczy zaznaczyć po polu wyboru Serach by “Complexity”, a do dyspozycji będziemy mieli opcje służące do szybkiego odfiltrowania interesującej nas skali złożoności:
NDepend Class Browser + podgląd na żywo
Kolejnym przydatnym okienkiem jest NDepend Class Browser, który oprócz swojej podstawowej funkcjonalności jaką jest ułatwienie nawigowania po klasach i ich składowych, dodatkowo komunikuje się z pozostałymi oknami np. Dependency Matrix, Metrics itd, dzięki czemu po najechaniu na klasę w oknie Class Browser-a otrzymujemy informację np. o jej zależnościach w oknie Dependency Matrix:
Podsumowanie
Nowa wersja NDepend-a wnosi rzuca zupełnie inne światło na to narzędzie. Dzięki doskonałej integracji ze środowiskiem programistycznym pozwala na uruchomienie analizy w dowolnym wręcz momencie, a dodatkowe funkcjonalności takie jak chociażby wspomniany NDepend Search znacznie przyśpieszają codzienną pracę ze złożonym kodem. Sporo wody w Warcie upłynie zanim Visual Studio będzie wyposażone w taki kombajn.
Strona NDepend.com
NDdepend Features
Obsługa prawna Poznań