Nützliche Add-Ons für Visual Studio 2010–StyleCop

by Bernhard Wurm 4. December 2010 04:33

In diesem Beitrag wurde auf die Microsoft Productivity Power Tools hingewiesen.

Heute wollen wir uns kur StyleCop widmen:
image

Warum StyleCop?

Stylecop ermöglicht es Programmierrichtlinien konsequent umzusetzen. In einem Team ist es wünschenswert dass die Struktur eines Programmcodes ident ist unabhängig von welchem Entwickler der Code erstellt wurde.

StyleCop setzt genau hier an und überprüft den Code auf die Einhaltung von Regeln. Dabei kennt StyleCop kein Pardon und sieht richtig schnell rot und liefert sofort Warnungen.

Der Einsatz

Rechte-Maustaste auf das Projekt und im Context-Menü findet sich der Eintrag “Run StyleCop”. Bei so ca. 800 Warnungen bricht dieser ab – also glaubt nicht  das sei es gewesen Winking smile

Im Projektverzeichnis wird eine Datei Settings.StyleCop angelegt welche die Einstellungen für dieses Projekt beinhaltet – falls Regeln deaktiviert werden etc.

Kurz-Fazit

StyleCop zwingt die Entwickler eine Struktur. Der Code wird vereinheitlicht. Allerdings sollte StyleCop sofort und nicht erst später in einem Projekt eingesetzt werden, da das ausmerzen der alten Unschönheiten weder lusting, noch spannend ist. Gleichzeitig wird die Einführung dadurch sehr negativ behaftet sein und eher auf wenig Akzeptanz stoßen.

Categories: Visual Studio | Tools

Nützliches Add-On für Visual Studio 2010

by Bernhard Wurm 1. August 2010 05:15

Die Microsoft Productivity Power Tools sind ein nützliches Add-On für die Entwicklung.

Eigentlich gibts gar ned viel zu sagen, da die Features übersichtlich auf  der Webseite dargestellt sind: http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef.

Meine Empfehlung: Herunterladen und installieren!

Tags:
Categories: Visual Studio

Nützliches im Visual Studio – Conditional Breakpoints

by Bernhard Wurm 1. July 2010 15:28

Mein Kollege Georg hat mich heute auf ein tolles Feature im Visual Studio aufmerksam gemacht: Bedingungen bei Breakpoints!

Was bringt das?

Nehmen wir an wir debuggen durch eine Schleife mit vielen Durchläufen. Es ist außerst mühsam sich bis zur 187 Iteration zu debuggen, oder jedes Mal zu prüfen, ob eine  bestimmte Bedingung erfüllt ist, um einen Fehler zu finden. Abhilfe schaffen hier Conditions bei Breakpoints:

image

Dort können beliebige bool’sche Ausdrücke eingefügt werden z.B.: i == 50. Es gibt sogar Intellisence und Abfragemöglichkeiten auf komplexe Objekte!

Das Contextmenü bietet aber noch mehr: Hit Count für die Anzahl von Schleifendurchläufe etc.

Heute erst gelernt und schon frage ich mich: Wie konnte ich früher ohne dieses Feature leben? Und warum habe ich noch nie auf die Einträge im Kontextmenü geachtet? – Wie auch immer: danke Georg!

Tags:
Categories: Visual Studio

XSLT 2.0

by Bernhard Wurm 21. May 2010 18:57

Visual Studio hat eigentlich einen tollen XSLT Support, wie die folgenden zwei Punkte belegen:

  1. Intellisence
    Jeder Programmierer kennt es und jeder liebt es. Auch für XSLT gibt es Intellisence, auch wenn es lediglich das normale Intellisence ist, welches für XML-Dateien verfügbar ist, sobald ein Schema angegeben wird, aber was will man mehr?
    Das zugehörige Schema liegt übrigends unter C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\xslt.xsd
  2. Debugging
    Jeder Fehler wird sofort angezeigt und das XSLT kann im Debug-Modus schrittweise ausgeführt werden, wodurch die Fehlersuche erleichtert wird. Bei so manchen Fehlern ist auch dies ein echt super Feature!

Um so mehr ist es ernüchternd, wenn XSLT2.0 Features benötigt werden. Ab diesem Zeitpunkt versagt jegliche Unterstützung :-(

Folgendes Szenario: Aufgrund einer XML-Datei sollen mehrere XML- oder HTML-Dateien generiert werden. Ab diesem Zeitpunkt ist XSLT 2.0 notwendig: <xsl:result-document>

Die Konsequenz aus dieser Problematik ist, dass keinerlei Support von Visual Studio (auch nicht VS 2010) verfügbar ist, weder im Bereich Intellisence, noch im Bereich der Ausführung.

Wie also mithilfe von XSLT 2.0 Dateien transformieren? Saxon.NET hilft dabei. Mit wenigen Zeilen .NET-Code oder auch per Commandline lassen sich damit die Datei transformieren; auch wenn das Debugging schwer vermisst wird!

Der Code für die Verwendung ist relativ simple, doch damit nicht lange gesucht werden muss, hier eine Abwandlung von Terry’s Worklog-Blog veröffentlichen Code:

Processor processor = new Processor();
using (System.IO.StreamReader reader = new System.IO.StreamReader(XmlFile, System.Text.Encoding.UTF8)) {
    using (System.IO.TextWriter stringWriter = new System.IO.StringWriter()) {
        stringWriter.Write(reader.ReadToEnd());
        stringWriter.Close();

        reader.Close();

        using (System.IO.TextReader stringReader = new System.IO.StringReader(stringWriter.ToString())) {
            using (System.Xml.XmlTextReader reader2 = new System.Xml.XmlTextReader(stringReader)) {
                reader2.XmlResolver = null;

                XdmNode input = processor.NewDocumentBuilder().Build(reader2);

                // Create a transformer for the stylesheet.
                XsltTransformer transformer = processor.NewXsltCompiler().Compile(new System.Uri(Xslt2File)).Load();
                transformer.InputXmlResolver = null;

                // Set the root node of the source document to be the initial context node
                transformer.InitialContextNode = input;

                Serializer serializer = new Serializer();
                serializer.SetOutputFile(“c:\\myfile.xml”);

                // Do the xslt transformation
                transformer.Run(serializer);
            }
        }
    }
}

Tags: , ,
Categories: Visual Studio