Microsoft Source Analysis Tool
Bereits am Freitag den 23. Mai 2008 wurde das Release des Microsoft Source Analysis Tools verkündet. Gestern bin ich dann auch dazu gekommen, einen kurzen Blick auf das neue Werkzeug zu werfen, welches meiner Meinung nach eine sinnvolle Ergänzung zu dem Code Analysis Werkzeug FxCop bildet. Handelt es sich bei beiden Werkzeugen um regelbasierte Tools, so führt FxCop diese Regeln auf den erzeugten Assemblies aus (es prüft den statischen Code auf Policyverstöße und Schwachstellen), während Microsoft Source Analysis for C# den wirklichen Quellcode und dessen Dokumentation analysiert.
Beide Werkzeuge dienen somit der Qualitativen Verbesserung der Entwicklung – einmal auf IL-Ebene und einmal auf Quellcode-Ebene. Soweit so gut – doch was leistet Microsoft Source Analysis for C# wirklich? Eine Übersicht findet sich auf dem Entwickler-Blog:
- Layout of elements, statements, expressions, and query clauses
- Placement of curly brackets, parenthesis, square brackets, etc
- Spacing around keywords and operator symbols
- Line spacing
- Placement of method parameters within method declarations or method calls
- Standard ordering of elements within a class
- Formatting of documentation within element headers and file headers
- Naming of elements, fields and variables
- Use of the built-in types
- Use of access modifiers
- Allowed contents of files
- Debugging text
Sehr gut gefällt mir auch die Integration per MSBuild Task – so kann das Werkzeug direkt in einen automatischen qualitäts-sichernden Prozess aufgenommen werden. Ein erster Testlauf auf ‘heimischen’ Sourcen verläuft dann doch sehr ernüchternd – 193 Fehler werden gemeldet, obwohl ich mich doch in der Entwicklung an unseren Styleguide gehalten habe:
Verfolgt man die Diskussionen im Forum, wird schnell klar, dass die aktuelle Version des Microsoft Source Analysis for C# noch viel zu starr ist und hauptsächlich den Microsoft Style Guide prüft (was auch klar ist, vor dem Hintergrund, dass dieses Werkzeug lange als StyleCop bei Microsoft inhouse verwendet wurde). Auch gibt es schon die ersten Pläne für Autokorrekturen bestimmter Regeln (wie z.B.: Tabs durch Leerzeichen zu erstzen – muss der Entiwckler dies heute doch noch von Hand machen).
Im Grunde erinnert Vieles an die erste Veröffentlichung von FxCop. Fand doch auch der Code Analyzer seinen Weg aus dem inhouse Gebrauch heraus und öffnete sich somit der breiten Masse. Eine ähnliche Entwicklung wird sicher auch der Source Code Analyzer nehmen…warten wir gespannt auf die nächsten Versionen, bis auch derjenige es produktiv einsetzen kann, der mit seinem eigenen Styleguide etnwickelt.
Nachtrag [09.06.2008]
Es gibt doch die Möglichkeit, eigene Regeln per Microsoft Source Analysis for C# ausführen zu lassen. Ein tolle Anleitung in 3 1/2 Teilen findet Ihr hier:
Part I: Creating Custom Rules for Microsoft Source Analyzer
Part II: Creating Custom Rules for Microsoft Source Analyzer
Part IIa: Creating Custom Rules for Microsoft Source Analyzer
Part III: Creating Custom Rules for Microsoft Source Analyzer
