Man ist ja selbst etwas faul. Meist weiß man, was sein Code so macht (oder besser machen sollte) und man kommentiert daher nur sehr sporadisch. Wenn man den Code dann eine Weile später wieder zur Hand nimmt, fällt es einem oft schwer seinen alten Code zu verstehen.
Daher gibt es Kommentare, in C# in Form des „<summary>„-Tags. Drei Slashes und Visual Studio fügt schon automatisch das Grundgerüst ein.
Damit nun auch wirklich jede public / internal Methode / Property kommentiert wird, muss man den Kompiler sagen, dass er fehlende Summaries als Fehler an erkennen soll.
Dazu geht ihr in die Projekteigenschaften und aktiviert unter dem Reiter „Erstellen“ den Hacken bei „XML-Dokumentationsdatei“. Nun erstellt er euch aus den Kommentaren bei jedem Build eine solche XML-Datei. Im Editor wird nun auch schon angemeckert, dass die XML-Kommentare fehlen. Um euch nun wirklich zu zwingen, sollte die Solution gar nicht erst gebaut werden, wenn die Kommentare fehlen. Das Fehlen wird als Warning gemeldet, daher sagen wir den Kompiler einfach, er soll Warnings als Fehler behandeln.
Dies geschieht ebenfalls in den Projekteigenschaften unter „Erstellen“. Evtl. kann man das noch verfeinern, indem man nur bestimmte Warnungen als Fehler behandelt, jedoch konnte ich auf die schnelle keine entsprechenden Informationen dazu finden. Ich versuche diese nachzureichen.
Von nun an lässt sich die Solution also nicht mehr kompilieren, sofern nicht überall Kommentare verfasst wurden. Um sich das Leben an dieser Stelle deutlich einfacher zu machen, empfehle ich die kostenlose Visual Studio Erweiterung GhostDoc. Mit ihr könnt ihr per Rechtsklick oder Tastenkombination eure Methode oder Property kommentieren. Dabei werden zum Beispiel schon vorhandene Kommentare aus Interfaces über Überladungen übernommen. Ansonsten erstellt er anhand des Methodennamen eine entsprechende Dokumentation. Man kann sich auch eigene Templates anlegen (habe ich mir sagen lassen). Gebündelt mit einem ordentlichen Programmierstil (bei der Namensgebung) kann man so bestimmt 80% automatisch kommentieren. Eine unglaubliche Zeitersparnis.