Ein Fototool entsteht – Photography Toolbox Fortschritte im Dezember 2020

Stand der Portierung nach C#

Nach der Entscheidung Mitte November, die bisherige Entwicklung von Powershell nach C# zu portieren, hatte ich schon ein wenig meine Zweifel gehabt, ob ich mir da nicht zu viel aufgehalst hatte. Aber nachdem ich Ende November schon gut die Hälfte portiert hatte, war ich zuversichtlich, Ende Januar wieder auf dem Stand von Mitte November zu sein.

Nun was soll ich sagen: der Dezember lief viel besser als erwartet und bereits Mitte des Monats waren alle Programmteile erfolgreich portiert. Wobei portiert eigentlich nicht ganz korrekt ist, denn an vielen Stellen wurde der Code nochmal grundlegend überarbeitet, um ihn besser zu strukturieren, modularer zu halten und in Teilen auch performanter zu bekommen.

Und so ist die Anwendung im Ergebnis jetzt auch in der normalen Benutzung deutlich schneller, so dass es direkt einen positiven Effekt aus der Portierung gibt.

Der einzige Bereich, der noch nicht ganz zufriedenstellend war nach der Portierung, war der Import bzw. die damit verbundene Generierung von Vorschauen und Metadaten-Filialdateien. Hier bin ich gegenüber der bisherigen Version leicht langsamer geworden. Dies liegt aber auch daran, dass ich versucht habe, die Prozessorlast etwas zu reduzieren, denn zuvor kam es schon zu einer häufigen 100%-Auslastung des Computers, und damit verbunden natürlich auch zu einer Trägheit des Gesamtsystems.

Die Generierung von Metadaten dauerte nach der Portierung 2:45min für 1000 Fotos. Die Vorschauen dauerten (wenn sie parallel zu den Metadaten generiert werden) rund 8:30min für 1000 Fotos.
Beide Werte waren aus meiner Sicht nicht optimal und zumindest im Bereich des Lesens von Metadaten konnte ich tatsächlich in den letzten Tages des Dezembers noch eine Verbesserung finden, die die Zeiten halbiert bzw. bis zu zwei Drittel reduziert.

In allen anderen Bereichen ist die Anwendung dagegen durchweg deutlich schneller was sehr erfreulich ist. Damit ist aktuell das Thema Performance für den Moment zufriedenstellend und kein Schwerpunkt für den kommenden Monat.

Die Portierung habe ich aber auch dazu genutzt, nicht mehr benötigte Funktionen zurück zu bauen. Dies betraf auch partielle Vereinfachungen der Benutzeroberfläche.

Soviel also zu Übersetzung der Anwendung nach C#. Kommen wir zu spannenderen Punkten:

Neue Funktionen im Dezember

In den Tagen, nachdem ich die Altdaten alle migriert hatte, hatte ich tatsächlich nochmal Lust etwas Neues in das Tool einzubauen und dafür habe ich mir die Kartenansicht vorgenommen.

Von Beginn an war vorgesehen, dass ich gern die GPS-Position der Bilder auf einer Karte anzeigen möchte. Dies war dann mit Hilfe einer API auch superschnell getan und ich war angespornt, noch mehr aus der Funktion herauszuholen. So ist es nun im Ergebnis auch möglich, auf der Karte zu suchen und das Suchergebnis direkt den ausgewählten Bildern zuzuordnen bzw. Bilder durch einen Rechtsklick auf die Karte mit GPS-Daten zu versorgen. Auf Wunsch werden dabei auch die Geodaten (Land, Bundesland, Stadt, Stadtteil) mit ausgelesen (sofern ein Google-API-Schlüssel vorhanden ist).
Dies war ein echtes Erfolgserlebnis für mich und bringt die Anwendung nochmals ein gutes Stück voran.

Neben dieser größeren neuen Funktion gab es aber noch weitere kleine Änderungen:

  • Die bisherigen Expander Rechts, Links, oben sowie für die Metadaten sind entfallen. Stattdessen kann man die Größe dieser Bereiche nun frei definieren. Die Möglichkeit sie per Doppelklick auf- bzw. zuzuklappen blieb dabei enthalten, ebenso die Option, dies per Tastenkombination zu tun.
  • Text- und Auswahlfelder lassen sich nun per Doppelklick leeren
  • Die Einstellung zur Schriftgröße wird auch nach Programmende beibehalten
  • Die Hierarchie in der Stichwortliste kann nun verändert werden
  • Für folgende Funktion wurde eine „Rückgängig“-Funktion ergänzt: Stichwörter einfügen, löschen, Übergeordnetes Stichwort ändern, Dateien löschen, Zeitverschiebung
  • Keywordsets können nun umbenannt werden
  • Neuer Shortcut zum Verschieben von Dateien in den Currentwork-Ordner
  • Importtemplates: hier könnt ihr eure Import-/Umbenennen-Einstellungen als Vorlage speichern
  • Validierung von Eingaben und insgesamt besseres Fehlerhandling

Mit der Version 0.51 vom 22.12. endete dann die Entwicklung für den laufenden Monat, so dass noch etwas Zeit für die Dokumentation blieb. Gleichzeitig nutzte ich die restlichen Tage auch für weitere Tests mit meinem „produktiven“ Bilderbestand.

Zwischen den Feiertagen habe ich dann sogar schon mit dem Januar-Release angefangen und soviel kann ich jetzt schon verraten: es ist wahnsinnig viel passiert!

Und was ist mit der ersten Beta-Version?

Mit einer ersten Beta-Version ist es dann dieses Jahr doch nichts mehr geworden, was nicht zuletzt auch an der ungeplanten Portierung nach C# lag. Allerdings bin ich optimistisch, dass entweder das Release Ende Januar oder Ende Februar einen Stand hat, mit dem ich dann auch aktiv andere Leute zum Testen einladen kann.