Anbieter zum Thema
Silverlight für Embedded – bessere Performance und direkter Zugriff auf Win32-APIs
Silverlight für Windows Embedded basiert auf der Desktop-Variante mit den gleichen Werkzeugen: „Expression Blend 3“ und der gleichen Beschreibungssprache XAML. Der Desktop-Entwickler braucht keine weiteren Vorkenntnisse.
Der wesentliche Unterschied besteht darin, dass die Applikationslogik bei Silverlight für Windows Embedded im nativen C++ beschrieben ist. Dadurch wird eine bessere Performance erreicht sowie ein direkter Zugriff auf alle Win32-APIs und schließlich auf die Hardware-Peripherie. Der Geschwindigkeitsvorteil kommt dadurch zu Stande, dass es unter C++ keinen „Garbage Collector“ gibt.
Der „Garbage Collector“ von .NET Framework verwaltet den Arbeitsspeicher, in dem er Anwendungen belegt oder frei gibt. Wird ein neues Objekt erstellt, belegt die Common Language Runtime Speicher für das Objekt aus dem verwalteten Heap. Solange ein Adressbereich im verwalteten Heap verfügbar ist, reserviert die Laufzeit Arbeitsspeicher für neue Objekte. Die CPU-Geschwindigkeit und der Arbeitsspeicher auf Embedded-Geräten ist jedoch nicht unendlich.
Durch dieses Konzept fallen die teilweise sehr abstrakten Zwischenschichten innerhalb des .NET Frameworks weg, was die Implementierung in C++ in Verbindung mit der unter „Windows Embedded Compact 7“ zur Verfügung stehenden Hardwarebeschleunigung effizienter macht.
Lücke zwischen Expression Blend 3 und der Embedded-Entwicklungsumgebung schließen
- Die Tools überprüfen die eingehenden XAML-Dateien auf die Verwendung mit Silverlight für Windows Embedded und generieren einen Error, falls die Objekte nicht unterstützt werden
- Aus den XAML-Quelldateien werden automatische native C++-Code-Vorlagen erstellt
- Objekte lassen sich leicht auswählen und ein Event-Handler für die Expression Blend 3-Anwendung kann hinzugefügt werden
- Veränderungen im Expression Blend 3-Projekt werden automatisch erkannt und in die Projekt-Ressource-Dateien hinterlegt
Der Vorteil der Silverlight Tools für große Expression Blend 3-Projekte
Wenn es keine Silverlight Tools für Embedded geben würde, müsste manuell jede eingehende XAML-Datei analysiert werden, um die Objekte zu identifizieren. Für große Expression Blend 3-Projekte wäre das ein langwieriger und fehleranfälliger Prozess.
Die erzeugten Code-Dateien von Expression Blend sind für den Einsatz mit Windows Embedded nicht geeignet. Ändert ein Designer etwas am Expression Blend-Projekt, müsste manuell nach allen Änderungen gesucht werden und diese im Projekt einbauen. Durch die Embedded Tools ist es möglich, die Expression Blend-Projekt-Updates nur mit einem Mausklick in dem Platform Builder durchzuführen.
Was die Embedded Silverlight Tools nicht können
- keine XAML-Dateien erzeugen
- keinen Managed-Quellcode generieren. Das Tool erzeugt nur native C++-Code für Windows Embedded
- keine Anwender Controls generieren
- unterstützen keine manuelle Änderungen, die in einem Silverlight-Projekt außerhalb von Expression Blend durchgeführt wurde. Die Werkzeuge sind kein Ersatz für Expression Blend, Visual Studio, oder Platform Builder, es ergänzt diese Werkzeuge durch einen effizienten Weg, um Expression Blend-Projekt-Dateien zu erstellen als Grundlage für die Windows Embedded-Anwendungen.
Wie ein Projekt in Expression Blend 3 angelegt wird
In Expression Blend 3 wird ein Projekt erstellt (Bild 1), indem ein entsprechendes Template „Silverlight for Windows Embedded Application“ ausgewählt wird. Das Projekt wird unter dem Verzeichnis Loaction „WinEC7_Silverlight“ angelegt.
- File -> New Project -> (mit Name, Ort und Sprache)
- Die zu realisierende Anwendung besteht darin, dass durch Betätigung des Buttons die Windows Embedded Compact 7 Kursbeschreibung in ein Text-Fenster eingeblendet wird. Auf dem User-Interface können alle verfügbaren Elemente auf die Oberfläche des Expression Blend 3 gestaltet und bezeichnet werden, damit der Programmierer auf die Elemente zugreifen kann. Im Bild 2 befindet sich der Button "Windows Embedded Compact 7 Kurs und ein Textfeld mit "Kursbeschreibung". Der Button bekommt den Namen „kursButton“. Durch Betätigung des Event-Button wird ein Event-Handler erzeugt.
- Im Platform Builder von Windows Embedded Standard 7 wird ein Image-Projekt (x86_VPC_Emulator) erzeugt, das Silverlight unterstützt. Für die Applikation, die auf den Button-Klick reagieren soll, wird ein Subprojekt mit “Tools->Windows Embedded Silverlight Tools->Create Platform Builder Subproject” angelegt. Ein Wizard zeigt die erforderlichen Einstellungen. Im Solution-Explorer des Image-Projektes „x86_VPC_Emulator“ befindet sich das Subproject-Verzeichnis. Mit einem Rechtsklick auf dieses Verzeichnis wird das erzeugte Subprojekt (WinEC7_EB_Appl) hinzugefügt.
- Bild 3 zeigt die notwendige Applikationslogik. Das Programm sucht aus der XAML-Datei das Objekt „kursText“ und initialisiert den Pointer „m_pkursText“. Durch einen Klick auf den Button wird der dazugehörige Eventhandler ausgeführt „kursKlick()“. Durch Einsatz der Methode „m_pkursText -> SetText((WCHAR*) TEXT("Nach dem Kurs");“ SetText wird der Kursbeschreibungstext ausgegeben.
- Im VirtualPC-Emalator (Bild 4) wird das erstelle Projekt getestet und dargestellt
* * Rudi Swiontek ist bei der Firma HILF! für die Schulung und Entwicklung zuständig. Er ist außerdem erfahrener Produktspezialist für Windows-Embedded-Betriebssysteme. Ralf Ebert ist Produktspezialist beim Microsoft-Embedded-Distributor Avnet Silica. Dort ist er für das Design-In und Beratung zuständig.
(ID:27859050)