Alle Beiträge der Kategorie Klebezettel.Net

Nachdem ich heute gut 1 1/2 Stunden an der Auswahl des Datenverzeichnisses weitergearbeitet habe, bin ich zu ca. 80% fertig.

Da bei der alten Version öffentliche Beta-Tests kaum Rückmeldungen gebracht haben, teste ich nun jedes einzelne neu eingebaute Feature recht gründlich. Das benötigt zwar einiges an Zeit (60% Entwicklung, 40% Test), aber Qualität geht vor Quantität. Lieber verschiebe ich den Releasetermin um 1-2 Monate, habe dafür aber weniger Bugs in der fertigen Anwendung.

Verzeichnisauswahl

15. August 2011

Heute abend nix entwickelt, dafür fleißig geplant.

Ich habe mir mal einige Gedanken zur Auswahl des Datenpfades beim Start von Klebezettel gemacht.

Da die Option “Programmverzeichnis” bei modernen Windows-Versionen, die ordentlich konfiguriert sind (kein arbeiten mit Admin-Rechten, zumindest aktivierte Benutzerkontensteuerung ab Windows Vista), keinen Sinn mehr macht, wird diese Option nicht mehr angeboten. Statt dessen wird eine Option zum Installieren in den Ordner für die gemeinsamen Anwendungsdaten angeboten, für den Fall, dass alle User auf diesem PC mit den selben Klebezettel-Daten arbeiten sollen. Für diese Option muss Klebezettel dann einmal mit Admin-Rechten gestartet werden, damit der entsprechende Registry-Eintrag erstellt werden kann. Für die Auswahl eines benutzerdefinierten Verzeichnisses gibt es einen etwas besseren Auswahldialog.

Leider ist es doch nicht ganz so trivial, wenn man ins Detail geht. Eine einfache Navigation durch Ordner ist noch relativ einfach, aber das ist ja noch nicht alles.

Ordner erstellen? Erstmal kein Problem, könnte man denken. Allerdings: wenn man es machen will, wie es der Explorer macht, wird es schon schwierig, zumindest scheint es unter WPF so zu sein.

Nun überlege ich, ob ich erstmal den unkomfortablen BrowseFolder-Dialog von Windows verwende, oder ob ich vielleicht fertige Explorer-Komponenten lizensieren soll.
Mit denen http://www.ssware.com/megapack.htm würde es ganz einfach sein, allerdings kosten die auch nicht wenig. ~400 Euro muss man auch erstmal haben.

Ich werde nun erstmal die einfache Variante implementieren (Windows Dialog), damit die Funktionalität schonmal da ist. Optimieren kann man später immer noch. Schade, fast 6 Stunden umsonst entwickelt :-(

Nachdem ich 2 Tage wegen meinem Geburtstag nicht an Klebezettel gearbeitet habe, ist heute der neue Verzeichnisauswahl-Dialog zum wählen des Datenverzeichnisses von Klebezettel.net fast fertig geworden. Die grobe Funktionalität ist implementiert (Ordner wählen), ab morgen wird Finetuning betrieben, um den Dialog

1. Hübscher zu machen

2. Das Erstellen eines Ordners zu ermöglichen

Insgesamt hat die Entwicklung dieses Dialogs bisher fast 5 Stunden gedauert, das sind gut 300€ Entwicklungskosten. Im Nachhinein betrachtet hätte es sich eher gelohnt, eine kommerzielle Explorer-Komponente zu lizenzieren, aber das hätte ich früher wissen müssen. Jetzt ist es zu spät. Dafür habe ich einiges dazugelernt :-)

Für Klebezettel.Net habe ich eine eigene Messagebox in WPF implementiert.
Die Messagebox kann Dialoge mit beliebig beschrifteten Buttons anzeigen, mit den Dialog-Typen:
Information, Warnung, Fehler, Frage, Frage mit “Nicht mehr fragen”-Kontrollkästchen und Anwendung (Zeigt als Bild das Klebezettel-Icon).

Wahrscheinlich wird der Dialog noch um einen Button für kontextsensitive Hilfe sowie um einen Zusatzbereich “Details” zur Anzeige von längerem Text erweitert.

Messagebox beim Beenden von Klebezettel.Net mit Option "Nicht mehr fragen"

Für die Anzeige der Geburtstagsliste in Klebezettel reagiert Klebezettel auf das Aufwecken aus dem Standbymodus und Ruhezustand, um die Liste der aktuellen Geburtstage anzuzeigen.

Für die Neuentwicklung in C# habe ich dazu folgendes gefunden:

Um auf Änderungen des Powermodus zu reagieren, gibt es das Event PowerModeChanged. Diesem weist man beim Programmstart einen Eventhandler zu:

SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(SystemEvents_PowerModeChanged);
[...]

// Eventhandler, der beim Wiederaufwachen aus dem Standby / Ruhezustand eine Aktion ausführen soll
void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
        {
            if (e.Mode == PowerModes.Resume)
            {
               //ToDo: Geburtstagsliste anzeigen
            }
        }

Heute ist ein besonderer Tag: nachdem ich letzte Woche mich über die Firma Embarcadero ärgerte, da diese der Meinung war, dass es reicht, dass die Entwicklungsumgebung Delphi 2007 5 mal registriert wird und sich dann der Entwickler rechtfertigen muss, weshalb ein 6. mal registriert werden muss (bei mir war der Grund ein neuer PC), habe ich heute mit der Neuentwicklung von Klebezettel mit der Programmiersprache C# unter der Entwicklungsumgebung Microsoft Visual Studio 2010 begonnen. (weiterlesen …)