Neues Ablagesystem für VCR.NET

Beginnend mit VCR.NET 4.0 werden alle Informationen, die bisher in verschiedenen Dateien an verschiedenen Orten gespeichert wurden (Konfiguration, aktive und archivierte Aufträge, Protokolle, Programmzeitschriften) in einer einzige Microsoft SQL Compact Edition (SqlCe 4.0) Datenbank abgelegt. Die Übernahme erfolgt beim ersten Starten automatisch. Die Datenbank ist integraler Bestandteil der VCR.NET Installation (Private Mode des SqlCe), so dass keine weiteren Schritt bei einer Erstinstallation oder einem Upgrade notwendig sind. Kurz: technisch sollten die Anwender von der Änderung gar nichts bemerken.

Die Umstellung wurde durch die (sehr zähen und langsam fortschreitenden – ich weiß … leider!) Arbeiten am neuen Zeitplaner sinnvoll. Allerdings habe ich trotz erfolgreicher Umstellung der aktuellen Funktionalitäten noch nicht das endgültige Datenbankschema erreicht. Daher wird es vorerst auch kein Preview geben – ich selbst nutze die Version noch nicht produktiv. Nach einer Aktualisierung auf das neue Ablagesystem gibt es auch kein Zurück mehr und ich möchte nicht schon in der Beta Phase Schemamigrationen machen müssen. Etwas Geduld also…

Die Wahl genau dieser Datenbank ergibt sich aus dem Umfeld (privates Lernprojekt, tagesaktuelle Anforderungen) und daher sind andere Datenbanken wie MySQL und Konsorten kein Thema. Die Implementierung ist zwar an vielen Stellen ADO.NET basierend allgemein gehalten, allerdings musste ich insbesondere aus Performancegründen bei der Programmzeitschrift einige Kompromisse schliessen und direkt gegen SqlCe programmieren. Auf der einen Seite stehe ich noch ganz am Anfang und möchte daher nicht die Hoffnung aufgeben, dass bis zum Release von VCR.NET 4.0 etwas Ordentliches daraus wird. Aber auf der anderen Seite ist das für 4.0 nur ein kleiner Nebenschauplatz, an dem ich eigentlich gar nicht lange verweilen wollte. Naja, man kann es sich selbst auch nicht Recht machen, oder…

Soweit zur Information

Jochen

ListBox, ComboBox oder was?

Im Rahmen meiner Einarbeitung in Silverlight / WPF bin ich auf eine Idee gestossen, die ich einmal an einem rudimentären Beispiel als Anschauungsmaterial implementiert habe. Die Aufgabenstellung an sich ist eigentlich sehr einfach: aus einer begrenzten Liste von Auswahlelementen soll eines vom Anwender ausgewählt werden. Ganz klar die Aufgabe einer ComboBox. Die Auswahl soll zudem graphisch und nicht in Textform präsentiert werden – auch keinerlei Herausforderung für Silverlight / WPF. Wie das Beispiel zeigt, kann man sich das auch optisch ein wenig anders vorstellen – zu den einzelnen Elementen der Testseite gleich mehr.

Startzustand

Im initialen Zustand wird die Auswahlliste als ListBox dargestellt – ohne die typische Sondervisualisierung der ComboBox mit dem Auswahlfeld zum Aufklappen. Verändert sich die Auswahl, so übernimmt die Listbox die Anzeige – auf Aspekte des ausgewählten Eintrags kann im XAML wie gewohnt referenziert werden, wie das Bild links oben und der relative Pfad des Bildes daneben zeigt. Das ist nun wirklich nichts Besonderes bis hierhin.

Aufgeklappt

Die Besonderheit zeigt sich aber, wenn man die Auswahl bestätigt. Die ListBox klappt dann scheinbar zu und zeigt nun nur noch den ausgewählten Eintrag.

Zugeklappt

Das Beispiel kann man sich selbst einmal hier anschauen, die Quellen gibt es hier. Es handelt sich wirklich nur um eine sehr elementare Implementierung, sicher nicht um ein vollwertiges Control. Was tut das Beispiel jetzt schon:

  • Beim Starten ist einer der drei Alternativen ausgewählt – sieht im Beispiel etwas häßlich aus, da meine Beispielbilder einen teilweise transparenten Hintergrund haben und die Auswahleinfärbung der Listbox auch im zugeklappten Modus erscheint: einfach vorstellen, dass der Hintergrund der Visualisierungselemente nicht transparent ist (man kann irgendein FrameworkElement verwenden).
  • In der oberen Zeile wird die Auswahl zur Demonstration als Bild und Pfad zusätzlich angezeigt.
  • Ein einfacher Klick auf die gewählte Alternative (großes Bild) öffnet die Auswahlliste.
  • Die Navigation in der Liste mit Maus oder Tastatur verändert die Auswahl, insbesondere kann diese wie gewohnt mit Strg-Click aufgehoben werden.
  • Ein Doppelklick oder die Taste ENTER beendet die Auswahl und schließt die Liste, es wird nun die letzte Auswahl angezeigt.
  • Die Eingabe des Pfades in der oberen Zeile kann zur Änderung der Auswahl verwendet werden – uh, Injection Attack möglich, schert hier aber nicht.
  • Hat die zugeklappte Liste den Fokus, so kann die Auswahl weiterhin mit der Maus verändert werden – die Liste klappt dazu automatisch auf.
  • Im XAML der Seite sieht man, dass die Auswahl vorbelegt werden kann, was natürlich optional ist.

Happy Coding

Jochen

DVB.NET 4.0 Zeitplaner für VCR.NET – erste Schritte

In DVB.NET 4.0 wird es wie bereits angekündigt einen neuen Zeitplaner für Aufzeichnungen und Aufgaben geben, den auch VCR.NET 4.0 verwenden soll. Ich habe auf der vorläufigen Web Site von DVB.NET 4.0 einige Überlegungen zusammengestellt – leider noch etwas krude, aber für mehr reicht die Zeit in diesem Moment nicht, später gibt es hoffentlich noch eine ordentliche Überarbeitung in Form und Inhalt. Auch mit der Implementierung bin ich noch nicht wirklich zufrieden, da der verwendete Algorithmus gerade bei einer größeren Zahl gleichartiger Geräte und mehreren überlappenden Aufzeichnungen leicht in hohen Ressourcenbedarf (Laufzeit und Hauptspeicher) getrieben werden kann. Da ich aber nicht weiß, wann ich zum nächsten Schritt komme, gebe ich einfach den aktuellen Stand mal zu Spielen frei – ich werde demnächst im Forum etwas mehr dazu schreiben, wie mich VCR.NET Anwender in dieser frühen Entwicklungsphase unterstützen und darüber vielleicht sogar noch eigene Anforderungen einbringen können.

Zuerst einmal kann das Testprogramm auch ohne DVB.NET / VCR.NET Installation ausgeführt werden, wenn Silverlight 4 im Web Browser unterstützt wird. Dazu kann man die Startseite des Testprogramms direkt auf meiner Web Site aufrufen. Zwar geht das Planen nicht ohne Geräteprofile, aber auch dafür braucht man keine DVB.NET Installation. Ich habe die Beispielprofile, die auch in der Beschreibung des Zeitplaners referenziert werden, zum Download bereit gestellt. Einfach irgendwo hin lokal kopieren und von dort in das Testprogramm laden – los geht es.

Für den rein lokalen Betrieb einfach die XAP und HTML vom Download Bereich auf die Festplatte kopieren – bevorzugt in das Installationsverzeichnis des VER.NET Recordings Service, in den Beispieltexten wurde die start.html unter dem Namen ScheduleUITestPage.html abgelegt, der Name der Silverlight XAP darf nicht verändert werden. Für den VCR.NET Betrieb benötigt man allerdings zumindest das Halloween 2011 Preview der Version 4.0, damit die Aufzeichnungen und Aufgaben ausgelesen werden können – DVB.NET und VCR.NET.

Bis bald

Jochen

Silent Running

Ja, es ist im Moment etwas still geworden um die Weiterentwicklung von VCR.NET 4.0. Leider bin ich doch deutlich mehr anderweitig gebunden, als ich gehofft habe und komme nur langsam voran. Aber um mich mal zu melden hier ein kurzer Status: wie im Forum angesprochen ist ein für mich wichtiges Thema eine neue Aufzeichnungsplanung. Diese wird nach völlig anderen Konzepten vorgehen als alle bisherigen Lösungen und soll vor Allem die Nutzung mehrerer Karten erleichtern. Ich bereite im Moment im Rahmen der Tests ein kleines Silverlight Tool vor, das es den Beta-Testern erlauben wird, mit zur Weiterentwicklung von VCR.NET beizutragen. Etwas einfacher als das Bildchen unten es zeigt soll der Aufruf einer HTML Seite mit dem Silverlight Tool darauf darstellen, wie VCR.NET eine vorhandene Liste von Aufzeichnungen in Zukunft planen würde – ohne lästige Zuordnung einzelner Geräte. Schauen wir mal, ob das klappt.

Bis bald (hoffentlich nicht erst wieder in einem Monat)

Jochen

So könnte das Tool aussehen