NDepend

The NDepend Dependency Graph in Visual Studio

Jeśli jesteś programistą .NET, to jest wielce prawdopodobne, że jesteś użytkownikiem Visual Studio. Istnieją alternatywy dla niego, oczywiście. Ale produkt giganta z Redmond jest najlepszym rozwiązaniem, jeśli chodzi o tworzenie aplikacji dla platformy .NET.

Dla początkujących programistów może to być mylące, ponieważ Visual Studio nie jest jedną rzeczą.

Więc występuje w kilku kształtach i rozmiarach.

Który z nich powinieneś wybrać? Jakie cechy są istotne dla Twojego przypadku użycia?

W związku z tym, że Visual Studio nie jest darmowe – większość wydań nie jest, przynajmniej – chcesz uzyskać jak najlepszy efekt za swoje pieniądze.

To jest to, co ten post ma zamiar omówić. Jak sugeruje jego tytuł, skupimy się na różnicach między wersjami Enterprise i Professional zintegrowanego środowiska programistycznego (IDE).

Pod koniec tego wpisu dowiesz się wystarczająco dużo, aby podjąć świadomą decyzję, która wersja IDE lepiej odpowiada Twoim potrzebom.

Chciałbyś, aby Twoja edycja Visual Studio posiadała pełne wsparcie narzędzi architektonicznych?

Pobierz darmową wersję próbną NDepend i sprawdź wszystkie wizualizacje architektury, które możesz uzyskać bez konieczności aktualizacji swojej edycji VS. Zobacz także: Case Study: 2 Simple Principles to achieve High Code Maintainability

Zacznijmy.

Enterprise vs. Professional: Which One Is the Right Visual Studio for You?

Aby zrozumieć różnice pomiędzy profesjonalnymi i korporacyjnymi edycjami Visual Studio, musisz pamiętać, że Microsoft oferuje IDE w sposób wielopoziomowy.

  1. Visual Studio Community jest najtańsze (jest darmowe).
  2. Następne jest Visual Studio Professional.
  3. I wreszcie, Visual Studio Enterprise jest najbardziej bogate w funkcje i najdroższe.

Każda edycja posiada wszystkie funkcje edycji poniżej, plus dodatkowe.

Więc pytanie „jakie są różnice pomiędzy Visual Studio Enterprise i Professional” tak naprawdę sprowadza się do tego, co ta pierwsza potrafi, a czego nie potrafi ta druga. Przyjrzymy się temu.

Features that Only Visual Studio Enterprise Has

Zobaczmy ekskluzywne cechy Visual Studio Enterprise, podzielone na kategorie.

Integrated Development Environment Features

Zaczniemy od cech związanych z samym IDE. Visual Studio Enterprise jest szczególnie ukierunkowane na architektów oprogramowania, więc ta edycja ma oczywiście kilka cech związanych z architekturą oprogramowania.

1A. Architectural Validation and Analysis

Wyobraź sobie taki scenariusz.

Tworzysz aplikację, która podąża za n-warstwowym wzorcem architektonicznym. Chciałbyś więc uniemożliwić warstwie prezentacji bezpośredni dostęp do warstwy danych. Chciałbyś pozwolić jej na dostęp tylko do warstwy logiki biznesowej.

Od wersji 2010 Visual Studio Enterprise, możliwe jest przeprowadzenie walidacji architektonicznej aplikacji przy użyciu diagramów warstw architektonicznych. Można na przykład zintegrować tę walidację z procesem budowania. Jeśli klasa odwoływałaby się do przestrzeni nazw w jakiejś warstwie, do której nie powinna mieć dostępu, kompilacja zakończyłaby się niepowodzeniem.

W najnowszej wersji, funkcja ta została również ulepszona, aby oferować walidację zależności na żywo. Zamiast czekać na przerwanie kompilacji, Visual Studio, wykorzystując moc analizatorów Roslyn, da ci informację zwrotną w czasie rzeczywistym, gdy tylko wprowadzisz nieprawidłową zależność.

Wykres zależności i macierz zależności

1B. Wykrywanie duplikacji kodu

Dublowanie kodu jest jednym z najgorszych problemów w bazie kodu. Visual Studio Enterprise może pomóc programistom i architektom poradzić sobie z tym problemem dzięki wygodnej funkcji: analizie klonów kodu. Dzięki tej funkcji, Visual Studio może zlokalizować możliwe duplikaty kodu tak, abyś mógł je wyeliminować.

Zaawansowane debugowanie i diagnostyka

Deweloperzy spędzają znaczną ilość czasu w debugerze. Sprawdźmy więc ekskluzywne funkcje Visual Studio Enterprise dla tej domeny.

Pierwszą funkcją jest IntelliTrace. Zamiast tradycyjnego debugowania w czasie teraźniejszym, IntelliTrace pozwala na debugowanie przeszłego wykonania aplikacji. Możesz zapisać dane IntelliTrace z wielu różnych źródeł, włączając w to wdrożoną aplikację na produkcji!

W domenie debugowania, mamy również integrację z debuggerem Code Map.

Ta funkcja oferuje nowy rodzaj doświadczenia podczas debugowania, pozwalając na wizualizację bieżącej metody, a także poprzednich metod, które są nazywane diagramami, które integrują się z debuggerem i aktualizują się w czasie rzeczywistym, gdy użytkownik przechodzi przez swój kod.

Na koniec, dochodzimy do analizy zrzutu pamięci .NET. Ta funkcja pozwala na analizę plików zrzutu pamięci, aby zidentyfikować i naprawić problemy z wydajnością, takie jak wycieki pamięci lub niepotrzebne alokacje.

Narzędzia testujące

W końcu jesteśmy przy narzędziach testujących. To obszar, w którym Visual Studio Enterprise zdecydowanie przewyższa inne edycje IDE. Zaczniemy od omówienia niektórych funkcji związanych ze zautomatyzowanymi testami jednostkowymi, a następnie przejdziemy do omówienia funkcji, które mogą pomóc w testach manualnych, eksploracyjnych i UI.

3A. Zautomatyzowane testy

Testy jednostkowe

Zacznijmy od testów jednostkowych na żywo.

Testy są tym, w czym Visual Studio Enterprise przewyższa inne edycje IDE.Po włączeniu tej funkcji, Visual Studio automatycznie uruchomi testy jednostkowe, na które wpływ mają zmiany, które właśnie wprowadziłeś w swojej aplikacji i przedstawi Ci wyniki w czasie rzeczywistym. Funkcja ta obsługuje frameworki NUnit, xUnit.net i MSTest.

Ponieważ rozmawiamy o testach jednostkowych, zwróćmy teraz uwagę na temat, który z pewnością wzbudzi pewne kontrowersje: pokrycie testami.

Może uważasz, że osiągnięcie 100% pokrycia kodu jest niezbędne dla zdrowia aplikacji, a może nie. Ale najprawdopodobniej zgodzisz się, że znajomość danych dotyczących pokrycia testowego jest przydatna. Visual Studio Enterprise oferuje tę metrykę natywnie.

Gdy starasz się pisać dobre testy jednostkowe, celem, do którego zawsze powinieneś dążyć jest izolacja. Dobry test jednostkowy powinien być tak oddzielony i niezależny jak to tylko możliwe, nie tylko od innych testów, ale także od kwestii infrastrukturalnych. Szczegóły takie jak zegar maszyny czy język nie powinny wpływać na wynik testu.

Zapewnienie takiej izolacji nie zawsze jest łatwe. Visual Studio Enterprise próbuje rozwiązać ten problem za pomocą Microsoft Fakes.

Microsoft Fakes pozwala na użycie stubów i shimów do symulowania zewnętrznych zależności w kodzie.

Klasycznym przypadkiem użycia byłoby symulowanie konkretnej daty w celu przetestowania błędu wrażliwego na czas. Visual Studio Enterprise może wykroczyć poza te ramy. Dzięki IntelliTest, możliwe jest automatyczne wygenerowanie zestawu testów jednostkowych dla Twojego kodu, wraz z fałszywymi danymi testowymi.

Automatyzowane testy UI

A co z automatycznymi testami, które nie są testami jednostkowymi?

Visual Studio Enterprise może zaspokoić również te potrzeby. Z kodowanymi testami UI, możesz stworzyć zautomatyzowane testy, które prowadzą aplikację przez interfejs użytkownika. Robisz to poprzez nagranie testu manualnego i zapisanie go. Po nagraniu testu, możesz określić wartości dla parametrów i dostroić go używając specjalnego edytora.

3B. Testy manualne

Baza kodu nie powinna jednak żyć wyłącznie na testach automatycznych. Testy manualne są nadal istotną częścią kompleksowej strategii jakości, a Visual Studio Enterprise może zaspokoić również te potrzeby.

A podstawowym narzędziem służącym do tego celu jest Microsoft Test Manager, który jest kompleksowym rozwiązaniem pozwalającym użytkownikowi na wykonanie następujących zadań:

  • zapisywanie i odtwarzanie czynności wykonywanych podczas eksploracyjnych (tj,
  • tworzyć i zarządzać planami testów dla testów manualnych
  • kopiować zestawy testów i przypadki testowe w wielu projektach
  • zapisywać i zbierać dane o planowanych sesjach testów manualnych

Dzięki tej funkcji deweloper, tester lub analityk testów może mieć bardzo szeroki wgląd w to, co dzieje się w projekcie pod względem testowym. Pomyśl o tym jak o scentralizowanym panelu kontrolnym na wszystkie rzeczy związane z testami.

Visual Studio Professional Vs. Visual Studio Enterprise: The Verdict

Microsoft oferuje Visual Studio w ramach modelu warstwowego. Tak więc analiza różnic pomiędzy Visual Studio Professional a Visual Studio Enterprise (odpowiednio druga i trzecia warstwa) sprowadza się do omówienia cech obecnych w tej drugiej, a nieobecnych w pierwszej. I to właśnie zrobiliśmy w tym wpisie.

Jasne, że nie wymieniliśmy wszystkich ekskluzywnych cech Visual Studio Enterprise, ze względu na zwięzłość. Jestem jednak przekonany, że artykuł jasno pokazuje, że Visual Studio Enterprise jest skierowane przede wszystkim do architektów oprogramowania i ekspertów QA.

Jaki jest werdykt?

Powiedziałbym, że nie można się pomylić z Visual Studio Professional. Jest to doskonały wybór dla większości programistów. Jednak dla architektów oprogramowania, Visual Studio Enterprise może mieć sens, o ile masz duży budżet. Jeśli jednak nie masz, wiele wtyczek w ekosystemie Visual Studio może pomóc Ci uzyskać funkcje VS Enterprise w sposób ala carte.

Carlos Schults
Contributing Author

Carlos Schults jest programistą .NET z doświadczeniem w tworzeniu aplikacji desktopowych i internetowych, a teraz próbuje swoich sił w branży mobilnej. Jego pasją jest pisanie czystego i zwięzłego kodu, a także interesują go praktyki, które pomagają poprawić zdrowie aplikacji, takie jak przegląd kodu, zautomatyzowane testy i ciągłe budowanie. Więcej od Carlosa można przeczytać na carlosschults.net.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *