FxCop
# FxCop

FxCop ist ein Analysewerkzeug für das .Net-Framework. Es prüft den CIL-Code und den Aufruf-Multigraphen der einzelnen Routinen nach Verstößen gegen die Entwurfsrichtlinien von Microsoft und auf potentielle Schwachpunkte.

## Beschreibung

Die Software ist prinzipiell konsolenorientiert. Allerdings lässt sich FxCop auch als externes Werkzeug nach dem Buildvorgang aufrufen. Ferner gibt es für Visual Studio 2008 und Visual Studio 2005 ein Plugin. In Visual Studio Team System und SharpDevelop ist es integriert. Es existiert ebenfalls eine GUI für den Standalone-Betrieb.

### Analysemöglichkeiten

FxCop analysiert primär sieben Bereiche:

* Nomenklatur (Wörterbuch und Groß-/Kleinschreibung)
* Weiterverwendbarkeit von Code und Interoperabilität
* Referenzierung von Objekten und überflüssige Allokierung
* Sicherheitsrichtlinienverstöße
* Allgemeine Designrichtlinien der Architektur
* Leistungsrichtlinien
* Globalisierungsrichtlinien

### Funktionsweise

FxCop analysiert die geladenen Assemblys. Dabei wird der CIL-Code überprüft und der Aufrufgraph analysiert. FxCop verwendet dabei Richtlinien, nach denen die einzelnen Kriterien gegengeprüft werden. In der Benutzerkonfiguration kann angegeben werden, wie eine Richtlinie gehandhabt wird. Zusätzlich lässt sich über Präprozessordirektiven die Überprüfung durch den Quellcode steuern. So können z. B. beanstandete, aber benötigte Fehler, z. B. ein bewusster und unumgänglicher Designverstoß von der Prüfung ausgenommen werden, ohne generell die Überprüfung gegen diese Richtlinie zu unterbinden.

### Implementierung

FxCop ist sowohl kommandozeilenbasiert als auch über eine GUI steuerbar. Eine Integration in Visual Studio ist möglich. FxCop lässt sich ebenso durch den Team Foundation Server auswerten. Dabei kann z. B. bei Verstoß gegen die Richtlinien ein Checkin der Software unterbunden werden. Policyverstöße lassen sich auch durch Metriken auswerten, durch die Reports in TFS integrieren und fließen somit in die Qualitätsbeurteilung einer Software mit ein.

### Unterstützte Systeme

FxCop benötigt für die Ausführung .NET 2.0, es unterstützt aber die Überprüfung aller Versionen von 1.1 bis 3.5.

