NDepend

Der NDepend-Abhängigkeitsgraph in Visual Studio

Wenn Sie ein .NET-Entwickler sind, dann ist es sehr wahrscheinlich, dass Sie ein Visual Studio-Anwender sind. Es gibt Alternativen dazu, sicher. Aber das Produkt aus Redmond ist die erste Wahl, wenn es um die Entwicklung für das .NET-Framework geht.

Für Neulinge kann es allerdings verwirrend werden, da Visual Studio nicht aus einem Guss ist.

Es gibt es in verschiedenen Formen und Größen.

Welches sollten Sie wählen? Welche Funktionen sind für Ihren Anwendungsfall wichtig?

Da Visual Studio nicht kostenlos ist – zumindest die meisten Editionen nicht -, möchten Sie das Beste für Ihr Geld bekommen.

Das ist es, was dieser Beitrag behandeln wird. Wie der Titel schon sagt, konzentrieren wir uns auf die Unterschiede zwischen der Enterprise- und der Professional-Edition der integrierten Entwicklungsumgebung (IDE).

Am Ende des Beitrags werden Sie genug gelernt haben, um eine fundierte Entscheidung zu treffen, welche Version der IDE besser zu Ihren Bedürfnissen passt.

Wünschen Sie sich, dass Ihre Edition von Visual Studio volle Architekturunterstützung bietet?

Laden Sie eine kostenlose Testversion von NDepend herunter und sehen Sie sich die Architekturvisualisierung an, die Sie erhalten können, ohne Ihre VS-Edition aktualisieren zu müssen. Siehe auch: Fallstudie: 2 einfache Prinzipien, um eine hohe Code-Wartbarkeit zu erreichen

Lassen Sie uns loslegen.

Enterprise vs. Professional: Welches ist das richtige Visual Studio für Sie?

Um die Unterschiede zwischen den Professional- und Enterprise-Editionen von Visual Studio zu verstehen, müssen Sie zunächst bedenken, dass Microsoft die IDE gestaffelt anbietet.

  1. Visual Studio Community ist die günstigste (sie ist kostenlos).
  2. Danach folgt Visual Studio Professional.
  3. Und schließlich ist Visual Studio Enterprise die funktionsreichste und teuerste Version.

Jede Version verfügt über alle Funktionen der darunter liegenden Version und zusätzlich über weitere.

Die Frage „Was sind die Unterschiede zwischen Visual Studio Enterprise und Professional?“ läuft also darauf hinaus, was die erste Version kann, was die zweite nicht kann. Schauen wir uns das an.

Funktionen, die nur Visual Studio Enterprise hat

Lassen Sie uns die exklusiven Funktionen von Visual Studio Enterprise sehen, aufgeteilt in Kategorien.

Funktionen der integrierten Entwicklungsumgebung

Wir beginnen mit den Funktionen, die sich auf die IDE selbst beziehen. Visual Studio Enterprise hat einen besonderen Fokus auf Softwarearchitekten, so dass diese Edition natürlich mehrere Funktionen hat, die sich auf die Softwarearchitektur beziehen.

1A. Architekturvalidierung und -analyse

Stellen Sie sich folgendes Szenario vor.

Sie entwickeln eine Anwendung, die dem n-schichtigen Architekturmuster folgt. Sie möchten also verhindern, dass die Präsentationsschicht direkt auf die Datenschicht zugreift. Sie möchten ihr nur den Zugriff auf die Geschäftslogikschicht erlauben.

Seit der Version 2010 von Visual Studio Enterprise ist es möglich, eine Architekturvalidierung für eine App mithilfe von Architekturschichtdiagrammen durchzuführen. Sie könnten diese Validierung zum Beispiel in Ihren Build-Prozess integrieren. Wenn eine Klasse einen Namespace in einer Schicht referenziert, auf den sie nicht zugreifen darf, würde der Build fehlschlagen.

In der neuesten Version wurde diese Funktion auch verbessert, um eine Live-Abhängigkeitsvalidierung anzubieten. Anstatt darauf zu warten, dass der Build abbricht, gibt Visual Studio mit Hilfe des Roslyn-Analyzers eine Echtzeit-Rückmeldung, wenn Sie im Begriff sind, eine ungültige Abhängigkeit einzuführen.

NDepend Dependency Graph and Dependency Matrix

1B. Erkennung von Code-Duplikation

Code-Duplikation ist eines der schlimmsten Probleme in einer Code-Basis. Visual Studio Enterprise kann Entwicklern und Architekten da draußen mit einer praktischen Funktion helfen, dieses Problem zu lösen: der Analyse von Code-Klonen. Mit dieser Funktion kann Visual Studio mögliche Code-Duplikate lokalisieren, so dass Sie diese eliminieren können.

Erweitertes Debugging und Diagnose

Entwickler verbringen einen erheblichen Teil ihrer Zeit im Debugger. Schauen wir uns also die exklusiven Visual Studio Enterprise-Funktionen für diesen Bereich an.

Das erste Feature hier ist IntelliTrace. Anstelle des traditionellen Debuggens in der Gegenwart ermöglicht IntelliTrace das Debuggen einer vergangenen Ausführung Ihrer App. Sie können IntelliTrace-Daten aus vielen verschiedenen Quellen speichern, einschließlich einer deployten App in der Produktion!

Auch im Bereich Debugging haben wir die Code Map Debugger-Integration.

Dieses Feature bietet eine neue Art von Erfahrung beim Debuggen, indem es Ihnen erlaubt, die aktuelle Methode – und auch die zuvor aufgerufenen Methoden – als Diagramme zu visualisieren, die in den Debugger integriert sind und sich in Echtzeit aktualisieren, während Sie sich durch Ihren Code bewegen.

Schließlich kommen wir zur .NET Memory Dump Analysis. Mit dieser Funktion können Sie Speicherabbilddateien analysieren, um Performance-Probleme zu identifizieren und zu beheben, wie z.B. Speicherlecks oder unnötige Zuweisungen.

Testing Tools

Wir sind endlich bei den Testing Tools. Dieser Bereich ist zweifelsohne derjenige, in dem Visual Studio Enterprise die anderen Editionen der IDE in den Schatten stellt. Wir beginnen mit einigen Funktionen, die sich auf automatisierte Unit-Tests beziehen und fahren dann mit Funktionen fort, die bei manuellen, explorativen und UI-Tests helfen können.

3A. Automatisierte Tests

Unit-Tests

Lassen Sie uns mit Live-Unit-Tests beginnen.

Das Testen ist der Bereich, in dem Visual Studio Enterprise andere Editionen der IDE in den Schatten stellt.Wenn Sie diese Funktion aktivieren, führt Visual Studio automatisch Unit-Tests aus, die von den Änderungen betroffen sind, die Sie gerade an Ihrer Anwendung vorgenommen haben, und präsentiert Ihnen die Ergebnisse in Echtzeit. Diese Funktion unterstützt die Frameworks NUnit, xUnit.net und MSTest.

Da wir gerade über Unit-Tests sprechen, wollen wir uns nun einem Thema zuwenden, das sicher einige Kontroversen auslösen wird: der Testabdeckung.

Vielleicht denken Sie, dass eine 100%ige Codeabdeckung für die Gesundheit einer Anwendung unerlässlich ist, oder vielleicht auch nicht. Aber Sie werden wahrscheinlich zustimmen, dass die Kenntnis der Testabdeckungsdaten dennoch nützlich ist. Visual Studio Enterprise bietet Ihnen diese Metrik nativ an.

Wenn Sie gute Unit-Tests schreiben wollen, ist ein Ziel, das Sie immer anstreben sollten, die Isolation. Ein guter Unit-Test sollte so separat und unabhängig wie möglich gehalten werden, nicht nur von anderen Tests, sondern auch von Infrastrukturbelangen. Details wie die Uhr des Rechners oder die Sprache sollten das Testergebnis nicht beeinträchtigen.

Eine solche Isolation zu gewährleisten ist allerdings nicht immer einfach. Visual Studio Enterprise versucht, dieses Problem mit Microsoft Fakes zu lösen.

Microsoft Fakes erlaubt es Ihnen, Stubs und Shims zu verwenden, um externe Abhängigkeiten in Ihrem Code zu simulieren.

Ein klassischer Anwendungsfall dafür wäre, ein bestimmtes Datum zu simulieren, um auf einen zeitkritischen Fehler zu testen. Visual Studio Enterprise kann sogar noch weiter gehen. Mit IntelliTest ist es möglich, automatisch eine Unit-Test-Suite für Ihren Code zu generieren, zusammen mit gefälschten Testdaten.

Automatisierte UI-Tests

Was ist mit automatisierten Tests, die keine Unit-Tests sind?

Visual Studio Enterprise kann auch diese Bedürfnisse erfüllen. Mit kodierten UI-Tests können Sie automatisierte Tests erstellen, die die Anwendung über ihre Benutzeroberfläche steuern. Dazu nehmen Sie einen manuellen Test auf und speichern ihn ab. Nachdem der Test aufgezeichnet wurde, können Sie Werte für Parameter angeben und ihn mit einem speziellen Editor feinabstimmen.

3B. Manuelle Tests

Eine Codebasis sollte allerdings nicht allein von automatisierten Tests leben. Manuelle Tests sind immer noch ein wichtiger Teil einer umfassenden Qualitätsstrategie, und Visual Studio Enterprise kann auch diese Anforderungen erfüllen.

Und das primäre Werkzeug dafür ist der Microsoft Test Manager, eine umfassende Lösung, die es dem Benutzer ermöglicht, folgende Aufgaben zu erledigen:

  • Aufzeichnen und Wiedergeben von Aktionen, die während explorativer (d.h.,
  • Aufzeichnung und Wiedergabe von Aktionen, die während explorativer (d.h. nicht skriptgesteuerter) Testsitzungen durchgeführt werden
  • Erstellung und Verwaltung von Testplänen für manuelle Tests
  • Kopieren von Testsuiten und Testfällen über viele Projekte hinweg
  • Aufzeichnung und Sammlung von Daten über geplante manuelle Testsitzungen

Durch den Einsatz dieser Funktion kann ein Entwickler, Tester oder Testanalyst einen sehr umfassenden Überblick über das Projektgeschehen in Bezug auf Tests erhalten. Betrachten Sie es als zentrales Kontrollzentrum für alle testbezogenen Dinge.

Visual Studio Professional Vs. Visual Studio Enterprise: Das Fazit

Microsoft bietet Visual Studio in einem abgestuften Angebotsmodell an. Die Analyse der Unterschiede zwischen Visual Studio Professional und Visual Studio Enterprise (bzw. der zweiten und dritten Stufe) läuft also darauf hinaus, die Merkmale zu erfassen, die in der zweiten Stufe vorhanden sind, in der ersten aber fehlen. Und genau das haben wir in diesem Beitrag getan.

Natürlich haben wir der Kürze halber nicht alle exklusiven Features von Visual Studio Enterprise erwähnt. Aber ich bin sicher, dass der Artikel deutlich gemacht hat, dass sich Visual Studio Enterprise in erster Linie an Softwarearchitekten und QA-Experten richtet.

Wie lautet also das Urteil?

Ich würde sagen, dass Sie mit Visual Studio Professional nichts falsch machen können. Es ist eine ausgezeichnete Wahl für die meisten Entwickler. Für Softwarearchitekten könnte Visual Studio Enterprise jedoch Sinn machen, solange Sie über ein ausreichendes Budget verfügen. Wenn Sie das nicht haben, können Sie mit einer Reihe von Plugins im Visual Studio-Ökosystem die Funktionen von VS Enterprise ala carte nutzen.

Carlos Schults
Mitwirkender Autor

Carlos Schults ist ein .NET-Softwareentwickler mit Erfahrung sowohl in der Desktop- als auch in der Web-Entwicklung, und er versucht sich jetzt auch im mobilen Bereich. Er hat eine Leidenschaft für das Schreiben von sauberem und prägnantem Code und interessiert sich für Praktiken, die helfen, den Zustand von Apps zu verbessern, wie z.B. Code Review, automatisierte Tests und Continuous Build. Sie können mehr von Carlos auf carlosschults.net lesen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.