Jan 25
Um mittels NaturalDocs automatisch eine Dokumentation zu erstellen, muss auf der Kommandozeile eine ganze Latte an Argumenten übergeben werden: Das Verzeichnis, in dem der zu dokumentierende Quelltext steht, das Ausgabeverzeichnis für die Doku und ein Verzeichnis für die Konfiguration. Praktisch sieht ein Aufruf von NaturalDocs bei mir ungefähr so aus:
F:\Software\NaturalDoc\NaturalDocs.bat -i c:\xampp\htdocs\meinProjekt -o HTML c:\xampp\htdocs\meinProjekt\_dokumentation\output -p c:\xampp\htdocs\meinProjekt\_dokumentation\config -cs UTF-8
So einen Aufruf automatisiert man doch. Also mal schnell eine kleine .bat-Datei geschrieben - und dabei festgestellt, dass ich a) die Syntax gar nicht mehr drauf habe (unter DOS habe ich regelmäßig Batch-Dateien geschrieben) und b) die guten alten .bat-Dateien sowas von beschränkt sind…
Daher habe ich mir die Windows PowerShell 1.0 herunter geladen. Startet man die PowerShell, sieht sie auf den ersten Blick genau so aus, wie die gute alte cmd.exe in blau. Aber davon darf man sich nicht täuschen lassen - das Teil ist mächtig. Richtig mächtig.
Die integrierte Skriptsprache hat erstmal alle Basics an Bord - arithmetische Operationen, reguläre Ausdrücke, Schleifen, Fallunterscheidungen, … Wem das nicht reicht, kann immer noch analog zu WSH-Skripten sämtliche COM- und ActiveX-Objekte nutzen. Und wenn man dort an die Grenzen stößt - es stehen auch alle Klassen und Funktionen des .NET-Frameworks zur Verfügung. Es dürfte sich eigentlich keine Automatisierung finden, die nicht mittels Windows PowerShell gelöst werden könnte.
Ich werde mich jedenfalls mal so richtig intensiv mit der Shell beschäftigen. Ergebnisse hier
Jan 25
Heute habe ich mich mal auf die Suche nach einem Software-Dokumentationswerkzeug gemacht, das aus Quellcodekommentaren automatisch eine Dokumentation erstellt. Da ich verschiedene Sprachen zum Entwickeln verwende (angefangen beim guten alten PHP bis hin zu den ersten Gehversuchen in C#) wäre ein Tool, das verschiedene Programmiersprachen unterstützt, sehr willkommen.
Gefunden habe ich zwei Kandidaten: Doxygen und Natural Docs. Hängen geblieben bin ich bei Natural Docs, das auf die sonst üblichen, von JavaDoc bekannten Dokumentationsdirektiven (@author etc) verzichtet und eher auf “natürliche” Sprache setzt:
-
/*
-
Function: Multiply
-
-
Multiplies two integers.
-
-
Parameters:
-
-
x - The first integer.
-
y - The second integer.
-
-
Returns:
-
-
The two integers multiplied together.
-
-
See Also:
-
-
<Divide>
-
*/
-
int Multiply (int x, int y)
-
{ return x * y; };
Mal schauen, wie es sich in der Praxis schlägt
Nov 11
Am Samstag lag die Jubiläumsausgabe der c’t im Briefkasten - mit dabei eine DVD mit 86 Vollversionen und 39 Spezialversionen. Ein Programm erregte meine besondere Aufmerksamkeit - Basic4PPC, ein BASIC-Dialekt inklusive IDE für Windows Mobile Handys.
Schon länger haben wir das Problem, dass es keinen brauchbaren Wecker für Win Mobile Smartphones gibt. Die eingebaute Erinnerung ist zwar ganz nett, aber auf drei Einträge und eine Auswahl von System-Sounds beschränkt. Die Applikation meiner Frau (Name vergessen [der Applikation, nicht von Simone!], sorry) spielt zwar ein frei wählbares Musikstück ab, ist jedoch Shareware. Also klingelt jeden Mittwoch und Donnerstag um 23 Uhr das Handy, um uns an Harald Schmidt zu erinnern. Ebenfalls nicht das Wahre.
Eigentlich kann es doch nicht so schwer sein, einen Wecker selbst zu schreiben… denkste!
Erster Ansatz war, das Programm einfach unter .NET selbst zu schreiben. Immerhin ist beruflich C# die Sprache der Wahl. Doch sowohl mit Visual C# Express als auch mit #Develop brachten mich an den Rand der Verzweiflung - wollte es mir doch einfach nicht gelingen, das .NET Compact Framework als Ziel-Framework zu bestimmen.
In der Hoffnung, dass ich mit Basic4PPC einfacher eine Mobilapplikation zum Laufen bringe, habe ich mir das Programm installiert. Der Einstieg ist wirklich einfach und schnell zu schaffen - Basic sei dank. Wie praktisch - es gibt sogar im Hardware-Objekt eine Methode “RunAppAtTime”. Die führt ein Programm zu einem bestimmten Datum aus. Perfekt für einen Wecker, mag man meinen. Der Haken: es funktioniert nicht. Zumindest nicht auf meinem HTC Touch Vodafone VPA Touch.
Also muss ich wohl doch schauen, dass ich mit C# voran komme. Zumal mir die Performance der Basic4PPC-Applikation ohnehin nicht sonderlich gut erschien. Zum Glück hat ein Kollege schon Erfahrung mit .NET Compact. Muss ich den mal anhauen.