NDepend: Tool zur statischen Code-Analyse

NDepend ist ein Tool für die statische Codeanalyse. Mit NDepend können Entwickler und Architekten Code-Strukturen analysieren, Code-Regeln definieren und deren Einhaltung prüfen, Code-Reviews und Refactorings durchführen. NDepend ist vollständig in Visual Studio integriert, lässt sich aber auch als Stand-Alone Applikation ausführen. Dies ist vor allem dann von Vorteil wenn auf dem entsprechenden Rechner keine Entwicklungsumgebung installiert ist (z.B. auf einem Buildserver). Das Tool lässt sich darüber hinaus in den Build-Prozess integrieren was kontinuierliche Analysen des Quellcodes ermöglicht. Hier mal einige Features:

  • Auswertung div. Softwaremetriken
  • Visualisierung von Abhängigkeiten (Abhängigkeitsgraph und Abhängigkeitsmatrix)
  • Unterstützung von Code-Regeln
  • Visual Studio Integration
  • Build-Prozess Integration
  • Umfangreiche Reporting-Möglichkeiten

In dem folgenden Beitrag wird nun ein Beispielprojekt mit NDepend analysiert und die daraus resultierenden Ergebnisse erläutert. Darüber hinaus werden einige Features von NDepend näher beschrieben.

Read more »

0  

Scrum – auf dem Bierdeckel erklärt

Der dpunkt.verlag bietet eine kostenlose Broschüre „Srum – auf dem Bierdeckel erklärt“ als kostenlosen Download an. Diese Broschüre richtet sich vor allem an Scrum-Neulinge, die sich einen kurzen Überblick über die Scrum-Methodik verschaffen wollen. Neben den Begrifflichkeiten und Konzepten werden auch die einzelnen Scrum-Rollen, -Artefakte und -Meetings näher erläutert. Es werde auch einige Tipps für die Scrum-Einführung gegeben. Den Download gibt es hier:

http://dpunkt.de/material/Scrum/

0  

C#: Grundlagen LINQ to XML

Im Beitrag C#: CSV-Datei mit LINQ einlesen wurde beschrieben wie man mit LINQ eine CSV-Datei einlesen kann. Nun gibt es mit LINQ to XML-API eine komfortable Möglichkeit XML-Dateien zu verarbeiten. Damit ist es möglich LINQ-Abfragen für das XML-Dokument zu schreiben, um Auflistungen von Elementen und Attributen abzurufen. Darüber hinaus werden Methoden für das Editieren (wie z.B. Hinzufügen oder Löschen) bereitgestellt. Dazu werden keine Kenntnisse in XPath, XQuery oder DOM benötigt, was den Umgang mit XML-Dokumenten ungemein erleichtert. Dabei kommt man in fast allen Fällen mit deutlich weniger und besser verständlichem Quellcode zum Ziel, als dies mit den vorgenannten Technologien der Fall ist. In diesem Artikel werden nun einige Beispiele gezeigt wie man mit der LINQ to XML-API XML-Dokumente einlesen, erstellen und editieren kann.

Read more »

0  

Visual Studio 2015: PowerShell Tools

Die Windows PowerShell ist eine taskbasierte Befehlszeilenshell und Skriptsprache, die speziell für die Systemverwaltung entwickelt wurde. Die PowerShell basiert auf dem .NET Framework (es lassen sich quasi alle .NET-Funktionen nutzen (z.B. Dateioperationen, Netzwerk, usw.)) und unterstützt den Benutzer beim Steuern und Automatisieren des Windows-Betriebssystems. Mit der Windows PowerShell können viele Probleme ganz einfach gelöst werden. Sie bietet mehr Möglichkeiten als die klassische Kommandozeile CMD und gewinnt daher immer mehr an Bedeutung. Die PowerShell gehört seit Windows 7 zum Betriebssystem und ist somit schon vorinstalliert. Mit der Windows PowerShell Integrated Scripting Environment (ISE) liefert Microsoft standardmäßig zwar schon eine Entwicklungsumgebung mit aus, jetzt gibt es aber auch etwas für die Visual Studio Benutzer und zwar die PowerShell Tools für Visual Studio.

Read more »

0  

.NET Framework 4.6.1 erschienen

Microsoft hat das .NET Framework 4.6.1 veröffentlicht. Dieses Update enthält u.a. die folgenden Neuerungen:

  • Performanceverbesserungen für die Nutzung von Touch in der Windows Presentation Foundation (WPF)
  • Unterstützung für X509-Zertifikate mit Elliptic Curve Digital Signature Algorithm (ECDSA)
  • Performance- und Stabilitätsverbesserungen bzgl. RyuJIT, GC, WPF and WCF
  • Verbesserungen für Profiler-Werkzeuge im Fall von fehlenden PDB-Dateien
  • Verbesserungen bzgl. einiger Netzwerkprotokolle (z.B. HttpListenerRequest)

GitHub-Repository mit WPF-Beispielen: https://github.com/Microsoft/WPF-Samples

Download

Detaillierte Informationen sind hier zu finden: http://blogs.msdn.com/b/dotnet/archive/2015/11/30/net-framework-4-6-1-is-now-available.aspx

0  

C#: Transient Fault Handling

Im Beitrag Enterprise Library: TransientFaultHandling Application Block wurde beschrieben wie man mit Hilfe des TransientFaultHandling Application Block der Enterprise Library flüchtige (engl. transient) Fehler behandeln kann. Neben dem TransientFaultHandling Application Block gibt es noch einige Alternativen, die ich in diesem Beitrag kurz vorstellen möchten. Das wären:

Read more »

0  

C#: CSV-Datei mit LINQ einlesen

LINQ (Language Integrated Query) bietet eine standardisierte Möglichkeit, nicht nur Tabellen in einer relationalen Datenbank, sondern auch Textdateien, XML-Dateien und andere Datenquellen in einer SQL-ähnlichen Syntax abzufragen. LINQ vereinfacht diese Situation durch die Bereitstellung eines konsistenten Modells zum Arbeiten mit Daten und dabei werden immer dieselben grundlegenden Codierungsmuster für die Abfrage verwendet. Von LINQ existieren nun mehrere Ausprägungen in Form von verschiedenen Providern, z.B. LINQ to Objects (arbeitet mit Collection die IEnumerable implementieren), LINQ to XML (Zugriff auf XML-Strukturen), usw. Ich möchte in diesem Artikel jetzt nicht auf Details zu LINQ bzw. auf die einzelnen Provider eingehen, sondern auf Basis eines kleinen Beispiels zeigen wie einfach es mit LINQ ist eine CSV-Datei einzulesen. Gerade CSV-Dateien werden oft für den Datenaustausch verwendet und können mit LINQ auf einfache Art und Weise verarbeitet werden.

Read more »

1  

Visual Studio 2015: Breakpoint Generator Extension

Vor Kurzem bin ich auf eine recht neue Visual Studio Erweiterung namens Breakpoint Generator gestoßen, die ich hier jetzt einmal kurz vorstellen möchte. Als Entwickler hat man es oft mit Quellcode/Projekten zu tun, die man nicht kennt und muss in den meisten Fällen auch noch Änderungen daran vornehmen (Bugfixing oder Erweiterung). Oftmals handelt es sich bei diesen Projekten um „gewachsenen“ Quellcode mit einer umfangreichen Codebasis. Dann taucht unweigerlich die Frage auf: Wo fange ich an und genau hier kann dann die Breakpoint Generator Extension weiter helfen.

Read more »

0  

Enterprise Library: TransientFaultHandling Application Block

Gerade bei vernetzten oder cloudbasierten Anwendungen ist es wichtig eine Strategie für flüchtige/vorübergehende (engl. transient) Fehler zu haben. Aber was genau versteht man denn jetzt unter dem Begriff „flüchtiger Fehler“? Unter flüchtigen Fehlern versteht man zum Beispiel:

  • Netzwerkverbindung unterbrochen
  • Service nicht erreichbar (z.B. Service welcher Wetterdaten oder Aktienkurse liefert)
  • Datenbank nicht verfügbar

Damit die Anwendung jetzt etwas nachgiebiger auf solche Fehler reagiert bedarf es einer geeigneten Strategie. Typischerweise führt man die Operation, die den entsprechenden Fehler verursacht hat, nochmals oder solange durch bis der Fehler nicht mehr auftritt. Gerade bei Netzwerkproblemen ist dies eine gängige Vorgehensweise. Der TransientFaultHandling Application Block der Enterprise Library bietet hier nun einige Funktionen und Strategien, die man leicht in die eigene Anwendung integrieren kann. Zusätzlich können diese Funktionen/Strategien einfach erweitert und konfiguriert werden.

Read more »

1  

PRISM: Commands global verfügbar machen

Gerade in größeren, modularen WPF-Anwendungen möchte man einige Commands applikationsweit zur Verfügung stellen, z.B. um Messages anzuzeigen, bestimmte Dialoge zu öffnen (Hilfe oder Info-Dialoge) usw. In einer PRISM-Anwendung mit mehreren Modulen werden die einzelnen Commands evtl. nicht nur durch das Hauptprojekt (Shell) zur Verfügung gestellt, sondern durch die einzelnen Module. So wäre es denkbar, dass man die Hilfe für die Anwendung in ein eigenes Modul auslagert und ein Command zur Verfügung stellt, welches dann die Hilfe (evtl. je nach gegebenem Kontext) aufruft. In diesem Artikel wird nun beispielhaft gezeigt wie man ein solches Szenario umsetzen kann.

Read more »

0  
Fork me on GitHub