Archiv

Archiv für die Kategorie ‘Toolbox’

NDepend 2020.1

Als ich vor kurzem gefragt wurde, ob ich meinen Test der neuen NDepend Version erneuern möchte, stimmte ich gern zu. Diese Software bezeichnet sich selbst als ein „Schweizer Taschenmesser für .NET und .NET Core Entwicklung Teams“. Es bietet vielfältige Möglichkeiten, um ein Projekt auf Code-technische Probleme und technische Schulden zu untersuchen und das auch über einen zeitlichen Verlauf in grafischer Form darzustellen bzw. die konkreten Veränderungen zu ermitteln.

Die Installation ist einfach und die Integration in Visual Studio ist optional, schnell gemacht und für mich ein echter Mehrwert, da ich bereits während der Entwicklung schnellen Zugriff auf alle relevanten Funktionen habe. Obwohl NDepend dann regelmäßig automatisch Analyseergebnisse sammelt, merkt man davon während der normalen Arbeit in Visual Studio nichts. Das ist bei Visual Studio Erweiterungen anderer Hersteller leider nicht immer der Fall.

NDepend Dashboard

Mit einem einfachen Klick auf einen großen Kreis erhält man eine kleine Übersicht, kann eine Analyse von Hand starten oder einfach ins Dashboard wechseln. Dort erhält man eine Einschätzung der Projektqualität. Das basiert auf einem sehr ausgefeilten Regelwerk, welches der Hersteller entwickelt hat. Ich habe das Regelwerk nicht selbst geändert. Ich habe schließlich das Projekt der Code-Analyse wieder aufgegriffen, weil ich das Tool als neutralen und unbestechlichen Auditor meiner Softwareprojekte sehe, der wesentlich mehr Erfahrung als ich in diesem Bereich hat. Die Darstellung des Dashboards beinhaltet eine anpassbare Übersicht. Bestandteil sind einmal Diagramme über die Entwicklung der Kennzahlen. Weiter ist, im Besonderen nach der Auswahl einer Vergleichsbasis, eine Darstellung der Projektbewertung jetzt und im direkten Vergleich zu finden. Das schließt eine nach Schweregrad gruppierte Übersicht der Anzahl der Vorfälle ein. Ein Klick auf diese Zahl bringt ein sofort in eine konkrete Übersicht der Vorfälle bzw. Probleme. Dies ist besonders dann hilfreich, wenn man eine Entwicklung einer Kennzahl vielleicht nicht so erwartet hat und man nun die Ursache ergründen möchte.

NDepend issue list

Hier beginnt jetzt aber auch der anspruchsvolle Teil! Man kann sehr leicht die einzelnen Vorfälle heraussuchen und bekommt die Fundstellen sogar angezeigt, wenn Sie nur der Vergleichsbasis zu finden waren, nun also entfernt oder korrigiert wurde. Ferner sieht man die Definition des Vorfalls in einer LINQ ähnlichen Sprache, mit einer ausführlichen Erklärung und weiteren externen Verweisen. Die Beschreibungen sind sehr gut, prinzipbedingt aber gerade am Anfang keine leichte Kost! Hier muss man schon einen festen Willen haben, das persönliche Niveau zu verbessern. Keine Verständnisprobleme bei englischen Texten sind auch hilfreich. Dann findet man in NDepend jedoch einen idealen Partner.

Ein Prunkstück, auf das der Hersteller besonders stolz ist, ist der Dependency Graph. Der Name ist Programm! Grenzen scheint es für dieses Modul nicht wirklich zu geben. Man kann mit einer sehr hohen Geschwindigkeit das Zusammenspiel der eigenen oder externen Klassen, Namensbereichen oder Funktionen anschauen und durch viele, oft sehr sinnvoll vorbelegte Optionen, übersichtlich gestalten. Das kann sehr hilfreich bei der Sichtung oder Umgestaltung von Codebereichen sein. Die Leistungsklasse wird eindrucksvoll durch die Präsentation der .NET Core 3 Klassen gezeigt. In meinen eigenen aktuellen Projekten ist mir die Struktur jedoch extrem vertraut. Darum ist steht bei mir das Modul nur in der zweiten Reihe, für viele andere Entwickler wird das sicher nicht gelten.

Kommen wir noch zur Einschätzung des Preises. Dieser liegt ungefähr im Bereich der JetBrains-Tools. Da der Kundenkreis merklich kleiner sein wird, ist das bezogen auf den Funktionsumfang mehr als fair. Positive muss hier erwähnt werden, dass NDepend einer permanenten Entwicklung unterliegt und man trotzdem nicht den Eindruck bekommt, dass die Fertigstellung erst beim Kunden geschieht. Das obligatorische Subscription-Model ist damit gerechtfertigt. Im Vergleich zu meinen älteren Versionen empfinde ich beispielsweise die Integration innerhalb Visual Studio wesentlich umfangreicher und runder.

Fazit: Vermisst habe ich lediglich die Kombination der Analyse mit einer Versionsverwaltung wie SVN oder Git. Das ist schade und stellt sicher noch ein großes Potential für die Zukunft dar. Mein persönliches Highlight von NDepend bleibt ganz klar die große Menge an vordefinierten Regeln. Diese sind sauber definiert, gut gruppiert, flexibel anpassbar und vor allen Dingen gut mit den passenden Hilfethemen verbunden.

Genaues Erstellungsdatum mit DIR anzeigen

2. August 2013 Keine Kommentare

Ich benötigte für eine Überprüfung von Dateien auf einem Server das exakte Datum der Erstellung. Ein Blick in die Optionen von DIR oder die Eigenschaften der Datei zeigte aber immer nur Informationen auf die Minute genau an, ich brauchte aber zur sinnvollen vergleichenden Bewertung der Performance die Sekunden-Bruchteile.

Nach etwas erfolgloser Suche habe ich mir das in der Powershell selbst zusammengebastelt:

Get-ChildItem | Sort-Object CreationTime |
 Format-Table Name,@{Expression={$_.CreationTime};FormatString="mm/ss/ff"}

Damit bekommt man wie bei Dir auch alle Dateien in einem Verzeichnis angezeigt, dass ganze wird nach dem Erstelldatum sortiert und mit dem Erstelldatum in Minuten/Sekunden/Sekundenbruchteilen ausgegeben. Bei der Formatierung der Uhrzeit hat man so natürlich viele Möglichkeiten.

KategorienAllgemein, Toolbox Tags:

Dark Theme VS 2008

4. September 2009 Keine Kommentare

Für Visual Studio 2008 habe ich ein dunkles Farb-Schema von Scott Hanselmann angepasst und speziell für den ReSharper noch einige Anpassungen vorgenommen.

Dunkles Schema für VS2008 und ReSharper
Das neue Farbschema kann hier heruntergeladen und in Visual Studio importiert werden.

KategorienToolbox Tags: ,

ReSharper und Probleme mit Codevervollständigung

Seit geraumer Zeit zeigte die Code-Vervollständigung unter C# folgendes Bild:
Codevervollständigung für IF

Dabei sind viele unnütze if-Kombination zu sehen, welche sich auf vorhandene Namespace-Definitionen beziehen. Nach längerer Suche konnte ich den Verursacher ausmachen. Ich verwende in den betroffenen Projekten VistaDB. In der Version 3.5 build 84 wurde die Library mittels Obfuscation unleserlich gemacht. Leider hat genau diese Verschlüsselung der Bibliothek den Effekt, dass jedes nicht öffentliche Objekt in einen eigenen neuen Namespace gelegt wird, hier also beispielsweise:

if
If
IF
@if

Diese Namespace-Definitionen bietet der Resharper per Code-Vervollständigung. Leider steht sowohl seitens VistaDB als auch seitens JetBrains eine Lösung noch aus.

Meine Top-3-Entwickler-Tools

Zur Zeit findet auf der MSDN ein Gewinnspiel statt. Darin wird man aufgefordert, einen Beitrag über seine 3 besten Entwicklungstools zu erstellen. Hier kommt meine Liste:

1. JetBrains ReSharper
Der ungeschlagene Favorit ist der ReSharper. Das Tool bietet einmal die Hervorhebung der aktuellen Zeile im Source (klingt trivial, ist mir aber wichtig). Weiterhin prüft und korrigiert es die Groß/Kleinschreibung, was den Source lesbarer macht. Es hat zudem unheimlich mächtige Navigationsfeatures (in Ableitungen springen…) und bietet eine Funktion, um alle Aufrufe einer Funktion/Property/Klasse einfach zu finden.

2. SQL Server Management Studio
Das Management-Studio ist die Software, wenn eine Datenbank für den SQL-Server administriert wird. Was das Tool so wertvoll macht, ist die unheimliche Geschwindkeit, mit der Datenbanken auch übers Web administriert werden können.

3. .NET Reflector
Wenn man unerklärlichen Problemen auf die Spur kommen möchte, oder Warnung nicht versteht, hilft manchmal der Blick in den Reflektor. Damit kann man die wirkliche Umsetzung des Kompilats nachvollziehen und auch ohne Source gelieferte Anwendungen teilweise einfach nachvollziehen.

KategorienMicrosoft .NET, Toolbox Tags:

Zwischenablage zwischen PCs synchronisieren

13. März 2009 Keine Kommentare

Wer immer wieder auf 2 Computern gleichzeitig arbeitet, vermisst evtl. auch die einfache Übertragung der Zwischenablage zwischen diesen PCs. Ich habe dafür das Tool Ditto clipboard manager entdeckt, was meiner Meinung nach eine ideale Möglichkeit bietet, die Zwischenablage aufzubohren.

Ditto kann unter SourceForge direkt herunter geladen werden. Es handelt sich dabei um ein Archiv, welches ich direkt in meine Eigenen Dateien entpackt habe, da eine Datenbank im Programmverzeichnis von Ditto schreibbar sein muss. Nach dem Start erscheint das Tool im Tray und kann in den Eigenschaften auch auf Deutsch umgestellt werden.

Zur Grundfunktion: Ditto überwacht nach dem Start automatisch die Zwischenablage und sichert diese auch automatisch in einer Datenbank (letzte 500 Einträge, letzte 5 Tage). Systemweit wird der Hotkey Strg + ö registriert. Man kann also etwas in die Zwischenablage nehmen, irgendwo hin wechseln, Strg + ö drücken und beispielsweise den vorletzten Eintrag einfügen.

Standardmäßig werden nur einige Text-Typen überwacht, dieses kann man aber in den Einstellungen von Ditto unter Unterstützte Typen einstellen. Sinnvoll ist dazu, wenn ein zu überwachender Inhalt bereits in der Zwischenablage ist, dann ist der Typ direkt wählbar:

Formate der Zwischenablage

Interessant wird es auf der Konfigurationsseite Freunde:

Konfiguration Freunde

Soll der betreffende PC Zwischenablage-Inhalte empfangen können, so muss die Option Empfang von Ausschnitten deaktivieren entfernt werden! Dann muss im unteren Abschnitt der PC, an den Zwischenablagen-Inhalt einzeln oder permanent übertragen werden, konfiguriert werden:

Hinzufügen eines Freund-PCs

Fertig: Ist alles korrekt eingestellt, überträgt ein PC seine aufgefangenen Inhalt der Zwischenablage automatisch an eine weitere Instanz von Ditto im Netzwerk. Das ganze macht das Übertragen von Komponenten im Designer fast zum Kinderspiel…

KategorienToolbox Tags: ,