Silverlight für VFP Entwickler

Venelina Jordanova, Uwe Habermann

Die meisten VFP Entwickler sind in den letzten Jahren auf der Suche nach neuen Entwicklungswerkzeugen. Während sich einige von uns bereits frühzeitig für andere Entwicklungsplattformen wie Java oder Visual Studio entschieden haben, befinden sich die meisten VFP Entwickler noch immer in der Orientierungsphase. Das Warten hat sich gelohnt! Endlich ist eine Technologie verfügbar, durch deren Anwendung VFP Entwickler die Nase wieder nach ganz vorn bekommen. Die modernsten Benutzeroberflächen mit Animationen, Transitionen und Multi-Touch Unterstützung erstellen, Internet Anwendungen programmieren und weiterhin mit VFP Datenbanken und sogar mit VFP Code arbeiten. Mit Silverlight ist das alles möglich. Mit diesem Artikel starten wir eine Serie von Artikeln, mit denen wir VFP Entwickler mit Silverlight vertraut machen wollen.

Einführung

Bevor wir auf Silverlight näher eingehen, wollen wir das Ziel beschreiben.

VFP Anwendungen heute

VFP Anwendungen entsprechen heute nicht mehr dem neuesten Stand der Technik. Die Benutzeroberfläche der Entwicklungsumgebung von VFP 9 ist auf dem Niveau von Office 97. Mit den erstellten Anwendungen sieht es meist nicht besser aus. Oft sind Menüs und Symbolleisten zur Steuerung der Anwendung vorhanden, die in den letzten 10 oder mehr Jahren nicht verändert wurden. Einige Entwickler verwenden die von DBI mit Sedna kostenlos bereitgestellten ActiveX Steuerelemente, mit denen Menüs und Symbolleisten im Stil von Office 2003 erstellt werden können. Auch ein Navigationsbereich, so ähnlich wie in Outlook, lässt sich mit den DBI Steuerelementen realisieren. Auf diesem Weg lassen sich Benutzeroberflächen erstellen, die „nur“ sieben Jahre alt aussehen. Auf der Codeplex Webseite sind zahlreiche Projekte für VFP frei verfügbar, mit denen modernere Benutzeroberflächen erstellt werden können. Mit der Nutzung von GDI+ lassen sich Formularhintergründe mit Farbverläufen erstellen und anspruchsvolle Geschäftsgrafiken können erstellt werden. Auf Codeplex ist auch eine Multifunktionsleiste im Stil von Office 2007 verfügbar. Wer alle diese Werkzeuge nutzt, kommt zu einer relativ aktuellen Benutzeroberfläche. Aber die Entwicklung bleibt nicht stehen. Mit Office 2010 ist eine neue Multifunktionsleiste verfügbar, bei der die Bedienbarkeit erheblich verbessert ist.

Multifunktionsleiste im Stil von Office 2007 in einer VFP 9 Anwendung

VFP Entwickler erhalten von ihren Kunden immer mehr Anfragen zur Entwicklung von Anwendungen mit reicher Benutzeroberfläche oder zur Entwicklung von Internet Anwendungen. Diesen Anforderungen können wir nicht gerecht werden. Dazu kommt, dass VFP leider nicht weiterentwickelt wird, wie wir alle wissen. Wir müssen uns also nach neuen Entwicklungswerkzeugen umsehen, um die Wünsche unserer Kunden erfüllen zu können. Mit Silverlight haben wir die Möglichkeit dazu.

Das Ziel

Unser Ziel ist es, einen Migrationspfad für VFP Entwickler zu Silverlight zu beschreiben und Werkzeuge zu entwickeln, die diesen Weg erleichtern.

Als Ergebnis schwebt uns eine Silverlight Anwendung vor, die im Internet Browser als Internet Anwendung ausgeführt wird und somit weltweit auf allen Geräten mit Internetanschluss verfügbar ist. Die gleiche Anwendung soll ohne Änderung des Codes als Desktop Anwendung installiert werden können und so auf einzelnen PCs, auch ohne Internetanschluss, eingesetzt werden können. Dazwischen liegen der Einsatz im Intranet sowie der Einsatz als Netzwerkanwendung.

Wir wollen Silverlight Anwendungen entwickeln, die alles können, was VFP Anwendungen können und außerdem natürlich alle Vorteile und Neuheiten von Silverlight nutzen. Es soll möglich sein Datenbankanwendungen zu entwickeln, die auf eine VFP Datenbank oder eine SQL Server Datenbank zugreifen.

Am liebsten wäre uns natürlich, wenn wir auch weiterhin mit VFP die Geschäftslogik und vielleicht auch den Datenzugriff implementieren könnten. Wie wir noch sehen werden, bietet Silverlight die Möglichkeit VFP Code in einem COM Server auszuführen. Spätestens jetzt sollte jeder VFP Entwickler hellhörig werden, denn hiermit gehen alle Träume und Wünsche in Erfüllung.

Eine Neuentwicklung von großen VFP Anwendungen mit Silverlight kommt für die meisten von uns nicht in Frage. Oft stecken viele Mannjahre in den mit VFP entwickelten Anwendungen. An eine Neuentwicklung mit einer noch fremden Umgebung ist nicht zu denken. Trotz aller Vorteile von Silverlight, müssen wir also einen schmackhaften Weg bereiten

Wir müssen einen Weg finden, mit dem VFP Anwendungen weitgehend automatisch nach Silverlight migriert werden können. Wir brauchen Werkzeuge, die diese Migration vornehmen.

Programmierung mit C# soll vermieden werden, aber ganz ohne Code geht es natürlich nicht. Wir wollen ein Vorlageprojekt erstellen, das so generisch ist, dass es von anderen VFP Entwicklern für Geschäftsanwendungen in der Regel nicht verändert werden braucht. Natürlich kann der Code in C# ergänzt und erweitert werden, wenn Geschäftslogik erforderlich ist. Es soll aber auch möglich sein, VFP Code in einem COM Server auszuführen. Der COM Server soll in VFP entwickelte Geschäftslogik und auch den Datenzugriff beinhalten können.

Typisches VFP Formular

Mit einem Werkzeug nach Silverlight migriertes Formular

Migration von Formularen

Tatsächlich stehen in Silverlight die meisten Steuerelemente zur Verfügung, die wir aus VFP kennen. Und Silverlight Steuerelemente haben auch viele der Eigenschaften, die wir aus VFP kennen. Wenn man das Verhalten und die Eigenschaften aller Steuerelemente analysiert, kann man die Umsetzung von VFP nach Silverlight beschreiben.

Was liegt näher, als ein Werkzeug zu entwickeln, das ein VFP Formular zu einer Silverlight Seite migriert? Nun, die Entwicklung eines solchen Werkzeugs ist bereits in Arbeit. Die Migration des Formulars selbst sowie aller darauf befindlichen Steuerelemente, wie Seitenrahmen, Labels und Textboxen, ist bereits möglich. Wie auf den Abbildungen zu sehen ist, fehlen im Silverlight Formular noch einige Elemente, zum Beispiel das Icon und die Schaltflächen, um das Formular zu minimieren und maximieren. Demnächst wird unser Werkzeug aber auch diese Bedienelemente unterstützen.

Migration von Berichten

Mit Berichten können wir einen ähnlichen Weg beschreiten. Die Definition von VFP Berichten lässt sich aus der FRX Tabelle auslesen. In Silverlight wird ein Bericht genauso beschrieben, wie eine Seite, die auf dem Bildschirm angezeigt wird. Der Weg der Konvertierung des Layouts ist also einfach. Ein wenig Programmierung ist erforderlich, weil der Detailbereich so oft wiederholt werden muss, wie Details auf eine Seite passen. Die Berichtsbeschreibung in Silverlight ist seitenorientiert und unterscheidet sich hierin von VFP.

Migration von Code

Wie wir schon erwähnt haben, kann in Silverlight Anwendungen VFP Code aus einem COM Server ausgeführt werden. Wenn eine VFP Anwendung nach Silverlight migriert werden soll, die nach einem sauberen Schichtenmodell implementiert wurde, wird es relativ einfach, den Code der Geschäftslogik und des Datenzugriffs in einen COM Server zu verpflanzen. Wenn die Geschäftslogik mit der Programmierung der Benutzeroberfläche vermischt ist, wird es ein bisschen aufwendiger. Der Code muss getrennt werden, weil im COM Server kein Code für die Benutzeroberfläche enthalten sein darf. Es darf also insbesondere auch nicht mit Wait Window oder Messagebox gearbeitet werden. Diese Änderung des VFP Codes ist für erfahrene VFP Entwickler aber einfach zu bewerkstelligen.

Jetzt haben wir Ideen zur Migration von Formularen, Berichten und Code. Das alles soll in einer Silverlight Anwendung laufen. Wir brauchen noch einen Anwendungsrahmen, der die migrierten Formulare und Berichte ausführen kann und einen VFP COM Server ansteuern kann. So eine Vorlageanwendung wollen wir erstellen.
Diese Vorlageanwendung soll wichtige Grundfunktionalität enthalten, die in jeder Silverlight Geschäftsanwendung vorhanden sein muss.

Die Benutzeroberfläche

Die Benutzeroberfläche soll viele Vorteile nutzen, die Silverlight bietet. Aus VFP Anwendungen sind wir eine MDI (multiple document interface) Oberfläche gewohnt. So eine Oberfläche müssen wir auch in Silverlight bereitstellen, schon um einen schnellen und einfachen Umstieg zu Silverlight zu ermöglichen. MDI entspricht leider nicht den neuesten Guidelines von Microsoft. Nach neueren Erkenntnissen glaubt man, dass MDI Benutzeroberflächen für normale Anwender zu komplex sind und die Vorteile von MDI daher kaum genutzt werden. Neuere Guidelines empfehlen SDI Benutzeroberflächen zu implementieren, bei denen ein Formular bildschirmfüllend angezeigt wird.

Visual Studio 2010 mit MDI Fenstern

Genau genommen sind in der Entwicklungsumgebung von VFP beide Arten von Benutzeroberflächen enthalten. Die Fenster der Designer und des Code Editors lassen sich maximiert und im Fenster darstellen. So sind SDI und MDI in einer Anwendung vereint. In Visual Studio ist es ähnlich. Ein Vorteil ist hier, dass maximierte Fenster einen „Tab“ oder Reiter ähnlich einem Seitenrahmen in VFP haben. Dieser Reiter hat eine Beschriftung. Durch einen Klick auf einen Reiter kann ein Fenster aktiviert werden. All dies soll in unseren künftigen Silverlight Anwendungen auch möglich sein.

Visual Studio 2010 mit SDI Fenstern

In neueren Guidelines wird aber auch viel Freiheit für die Gestaltung neuer Benutzeroberflächen gelassen. Mit Silverlight sind ganz andere Bedienungsmöglichkeiten denkbar, als sie mit MDI und SDI abgebildet werden können. Denken wir an eine Anwendung, bei der viele Formulare gleichzeitig geöffnet werden können. Möglichst alle diese Formulare sollten gleichzeitig sichtbar sein, ohne einander zu überdecken. Wenn ein Formular das Augenmerk des Anwenders hat, wird es vergrößert und die anderen Formulare werden verkleinert.

Auf jeden Fall sollen alle Bedienungsvariationen mit Animationen und Transitionen ausgestattet sein. Animationen mögen auf den ersten Blick als Spielerei erscheinen, haben jedoch einen Vorteil, wenn es um die Bedienbarkeit geht. Wenn der Benutzer in einer VFP Anwendung auf eine Schaltfläche klickt um ein Formular zu starten, erscheint die Windows Sanduhr. Der Benutzer merkt, dass er warten muss. Er merkt, dass die Anwendung langsam ist. In einer Silverlight Anwendung haben wir die Möglichkeit auf eine Aktion des Benutzers praktisch unmittelbar mit der Anzeige einer Animation zu reagieren. Der Benutzer erhält so den Eindruck, dass ein Formular langsam erscheint, während im Hintergrund die Daten geladen werden. Wenn die Daten geladen sind, kann die Animation unmittelbar beendet werden. Der Benutzer sieht eine Animation und weiß nicht, dass wir diese Zeit benötigen, um im Hintergrund Vorgänge auszuführen. Ein kleiner psychologischer Trick, der das Benutzungserlebnis entscheidend verbessern kann.

Transitionen beschreiben Übergänge. Zum Beispiel kann der Übergang eines Formulars von der Normalansicht zur maximierten Ansicht mit einer Transition animiert werden. Auch der Übergang der Anzeige eines Datensatzes zur Anzeige eines anderen Datensatzes kann durch eine Transition zu einem verbesserten Benutzererlebnis werden. Typische Transition sind Überblendungen oder das Verschieben von Elementen. Transitionen können in der Regel ohne Programmierung erstellt werden.

Silverlight Beispielanwendung von Microsoft: Patient Journey Demonstration

Einführung in Silverlight 4

Was ist Silverlight?

Silverlight ist keine Entwicklungsumgebung und keine Programmiersprache. Silverlight kann man nicht kaufen. Aber was ist Silverlight dann?

Silverlight ist eine Technologie, um Internet Client Anwendungen mit reicher Benutzeroberfläche zu erstellen.

Bisherige Internet Client Anwendungen werden grundsätzlich in einem Internet Browser, zum Beispiel dem Windows Internet Explorer ausgeführt und basieren auf der Seitenbeschreibungssprache HTML. Alle Internet Browser unterstützen die Verwendung von Plug-Ins. Plug-Ins sind Zusatzmodule, die Code ausführen können. Neben der Anzeige von HTML Inhalten kann so in einem Internet Browser auch Code ausgeführt werden, der einerseits Programmlogik enthalten kann und andererseits auch optische Inhalte anzeigen kann, die nicht auf HTML basieren. Eins der bekanntesten Plug-Ins ist wohl das Flash Plug-In von Adobe. Flash wird auf vielen Webseiten verwendet.

Wenn mit einem neuen Windows Rechner erstmals eine Webseite besucht wird, die das Flash Plug-In erfordert, erscheint ein Hinweis und der Anwender muss bestätigen, dass er das Plug-In im Internet Explorer installieren will.

Mit Silverlight ist es ähnlich. Beim ersten Besuch einer Webseite mit Silverlight Inhalt, wird der Anwender darauf hingewiesen, dass das Silverlight Plug-In zur Anzeige des Inhalts installiert werden muss. Dieser Hinweis kann frei gestaltet werden. Die Abbildung zeigt das von Microsoft angebotene Standardhinweisbild.

Erst nach der erfolgreichen Installation werden Silverlight Inhalte im Internet Explorer angezeigt.

Installationshinweis auf einer Webseite

Die Technologie Silverlight wird also durch ein Internet Browser Plug-In auf der Client Seite nutzbar gemacht. Entwickelt werden Silverlight Anwendungen mit Visual Studio, zu dem die Silverlight Tools und eventuell weitere Komponenten installiert werden. Es ist denkbar, dass es künftig auch andere Entwicklungsumgebungen zur Entwicklung von Silverlight Anwendungen geben wird. Für die Entwicklungsumgebung Eclipse für Java ist bereits eine Silverlight Unterstützung angekündigt.

Silverlight Anwendungen können grundsätzlich auf jedem Internet Server gehostet werden, also zum Beispiel auch auf einem Linux Server. Erst wenn eine Datenanbindung erforderlich ist (und das wollen wir natürlich) ist ein Windows Server erforderlich. Die Kommunikation der Silverlight Client Anwendung erfolgt dabei über einen Windows Communication Foundation (WCF) Web Service, der mit Visual Studio erstellt wird. Über den Web Service wird die Verbindung zur Datenbank hergestellt. Das hört sich komplizierter an, als es ist. Wie wir im nächsten Artikel sehen werden, kann der Server Teil einer Silverlight Anwendung komplett generiert werden, solange keine Geschäftslogik benötigt wird.

Eine wichtige Idee von Internet Anwendungen ist, unabhängig vom verwendeten Internet Browser und auch unabhängig vom Betriebssystem zu sein. Idealerweise sollten Internet Anwendungen sogar unabhängig vom Gerätetyp sein. Außer auf PCs sollten Internet Anwendungen auf Smartphones, PDAs und anderen Geräten laufen, die über eine Internetverbindung verfügen und die eine Interaktion mit dem Anwender erlauben.

Mit Silverlight sollen alle diese Ideen realisiert werden. Das Silverlight Plug-In läuft auf allen wichtigen Internet Browsern auf den aktuellen Windows Versionen. Auch für Macintosh Rechner ist das Silverlight Plug-In verfügbar. Unter dem Namen Moonlight wird ein Silverlight Plug-In für Linux Rechner entwickelt. Nokia entwickelt ein Silverlight Plug-In für das Smartphone Betriebssystem Symbian. Auch auf dem Apple iPhone sollen Silverlight Anwendungen demnächst laufen. Und auch für das Smartphone Betriebssystem Android ist ein Silverlight Plug-In in Entwicklung.

Wir müssen daran denken, dass Silverlight eine sehr junge Technologie ist. Silverlight Plug-Ins sind zurzeit für viele Plattformen in Entwicklung. Wahrscheinlich werden auf einigen Plattformen zunächst nur ältere Versionen, wie zum Beispiel Silverlight 2, unterstützt werden. Die Entwicklung wird aber schnell voran gehen und wahrscheinlich werden schon bald für viele Plattformen Silverlight 4 Plug-Ins verfügbar sein.

Abschließend soll noch erwähnt werden, dass Silverlight die native Benutzeroberfläche für Mobiltelefone mit dem Betriebssystem Windows Phone 7 sein wird. Für weitere Gerätetypen, wie Fernseher und Set-Top Boxen, ist Silverlight als native Benutzeroberfläche geplant.

Silverlight Benutzeroberfläche auf Windows Phone 7

Warum Silverlight?

Die Benutzeroberfläche von Silverlight basiert auf einer Teilmenge der Windows Presentation Foundation (WPF). Für die Gestaltung von Benutzeroberflächen sind in Silverlight alle wesentlichen Elemente verfügbar, einschließlich Animationen und Transitionen sowie der Unterstützung von Multitouch Eingabegeräten.

Nun könnten wir statt Silverlight die Windows Presentation Foundation direkt verwenden. WPF würde uns damit vollständig und uneingeschränkt zur Verfügung stehen. Dies wäre aber nur ein kleiner Vorteil. Der Nachteil wäre, dass auf den Kundenrechnern das aktuelle .NET Framework installiert werden müsste. Im Vergleich zur schlanken Laufzeitumgebung von VFP, würden wir ein riesiges System auf den Kundenrechnern installieren müssen. Damit wären wir automatisch an die Windows Welt gebunden und könnten nicht mehr plattformübergreifend entwickeln, was mit Silverlight ohne Mehraufwand möglich ist. Den Weg zu Internet Anwendungen würden wir uns durch den Einsatz von WPF auch versperren. WPF ist auf den Einsatz in Windows Desktop Anwendungen beschränkt.

Praktisch alle Elemente der Benutzeroberfläche von Windows 7 sind mit WPF erstellt. Auch Visual Studio 2010 und Office 2010 haben Benutzeroberflächen, die vollständig mit WPF implementiert sind.

Mit Silverlight können wir praktisch gleichwertige Benutzeroberflächen implementieren und bleiben plattformunabhängig. Die Laufzeitumgebung, das Silverlight Plug-In, hat eine mit der VFP Laufzeitumgebung vergleichbare Größe von nur etwa 6 MB.

Für eine Silverlight Geschäftsanwendung muss auf dem Server allerdings das .NET Framework installiert sein. Da Netzwerk- und InternetServer in der Regel administriert werden, ist dies aber kein Nachteil, sondern nur eine Anforderung.

 Auch für Silverlight Desktop Anwendungen ist als Laufzeitumgebung nur das Silverlight Plug-In und nicht das .NET Framework erforderlich. Für Geschäftsanwendungen werden wir einen VFP COM Server einsetzen, der die Geschäftslogik und den Datenzugriff beinhalten wird.

Die Geschichte

Silverlight ist eine junge Technologie. In nur 3 ½ Jahren sind vier Versionen erschienen.

Silverlight 1

Die erste Version wurde im September 2007 veröffentlicht. Der Codename war „Windows Presentation Foundation/Everywhere“. Die Idee zur Entwicklung von Silverlight war, Medieninhalte im Internet Browser wiederzugeben. Die erste Version von Silverlight konnte Mediendateien in den Formaten MP3, WMA und WMV wiedergeben. Die Benutzeroberfläche wurde bereits in XAML beschrieben, aber es gab noch keine Steuerelemente für eine Interaktion mit dem Anwender. Es war jedoch möglich, HTML Steuerelemente in den Vordergrund vor eine Silverlight Anwendung zu bringen. Die Programmierung einer Silverlight 1 Anwendung war nur mit JavaScript möglich. Eine Datenanbindung war nicht vorgesehen. Diese Beschreibung macht deutlich, dass Silverlight damals nur für Entwickler von Webseiten interessant war, die Medieninhalte darstellen wollten.

Silverlight 2

Doch die Entwicklung von Silverlight ging schnell weiter. Bereits im Oktober 2008 wurde Silverlight 2 veröffentlicht. In Silverlight 2 ist eine Version des .NET Frameworks 3.0 enthalten, die die Common Language Runtime (CLR) beinhaltet, ansonsten jedoch sehr viel kleiner als das normale .NET Framework ist. Für Silverlight 2 können Anwendungen mit jeder .NET Sprache entwickelt werden. Die in Silverlight 2 integrierte Version des .NET Frameworks 3.0 enthält eine Teilmenge der Windows Presentation Foundation. Damit stehen in Silverlight 2 viele Steuerelemente zur Verfügung, wie zum Beispiel TextBox und DataGrid.

Silverlight 3

Seit Juli 2009 ist Silverlight 3 verfügbar. Erstmals konnten Silverlight Anwendungen außerhalb des Internet Browsers laufen. Seit Silverlight 3 gibt es die „Element zu Element Bindung“. Dies bedeutet, dass eine Eigenschaft eines Steuerelements an eine Eigenschaft eines anderen Steuerelements gebunden werden kann. Beispielsweise kann der Wert eines Schiebereglers an die Breite einer TextBox gebunden werden. Der Anwender erhält so die Möglichkeit die Breite der TextBox interaktiv zur Laufzeit einzustellen, ohne dass hierzu irgendwelcher Programmcode erforderlich wäre.

Silverlight 4

Die aktuelle Version Silverlight 4 ist seit April 2010 verfügbar. Mit den Silverlight 4 Tools wird in Visual Studio das Vorlageprojekt „Silverlight Business Application“ zur Verfügung gestellt, das wir im nächsten Artikel näher betrachten werden. Mit Silverlight 4 ist der Durchbruch für Entwickler von datengestützten Anwendungen geschaffen. Steuerelemente können mit einer Datenbindung versehen werden. Die Kommunikation der Silverlight Anwendung mit einem Internet Server ist einfach möglich und wird in Visual Studio durch Assistenten und Intellisense unterstützt.

Features von Silverlight 4

Von einer Silverlight Version zur nächsten vergehen nur neun Monate. Selbst für Microsoft ist dieser Zeitraum sehr kurz. Das zeigt, dass es sich um eine neue, sehr dynamische Technologie handelt, in der viel Entwicklungspotenzial steckt.

Erst Silverlight 4 ist für FoxPro Entwickler interessant, weil es eine Datenbindung ermöglicht, wie wir sie als Datenbankentwickler kennen. Wir wollen hier die in Silverlight 4 neuen Features vorstellen, die für Datenbankentwickler interessant sind.

Visueller XAML Designer in Visual Studio 2010

Silverlight 4 Anwendungen werden mit Visual Studio 2010 entwickelt und diese Version von Visual Studio kommt erstmals mit einem visuellen Designer, mit dem Silverlight und WPF (Windows Presentation Foundation) Seiten entwickelt werden können.
In bisherigen Versionen von Visual Studio gab es visuelle Designer nur für Windows und Web Formulare. Bisher konnten Silverlight (XAML) Seiten nur im Code Editor bearbeitet werden. Der visuelle Designer für Silverlight Seiten ist in Visual Studio 2010 tatsächlich ein wichtiges neues Feature.

Visual Studio XAML Designer

In VFP haben wir seit 15 Jahren einen visuellen Designer für Formulare. In Laufe dieser Artikelserie werden wir einige neue Features aus Visual Studio 2010 erwähnen, die für Visual Studio Entwickler geradezu eine Sensation sind, während wir als VFP Entwickler vergleichbare Features schon lange verwenden. Wir wollen Visual Studio nicht als rückständig darstellen. Visual Studio hat durchaus seine guten Seiten und ist in vielen Dingen VFP überlegen, wie wir noch sehen werden. Visual Studio folgt einer anderen Denkweise. Es ist die Denkweise einer universellen Programmierumgebung, die nicht auf die Entwicklung von Datenbankanwendungen ausgelegt ist, diese aber durchaus unterstützt, wenn auch nicht so gut wie VFP. Visuelle Designer sind in Visual Studio daher nicht so vielfältig anzutreffen, wie in VFP.

Drucken

In Silverlight 4 ist erstmals eine Print Engine enthalten. Diese Print Engine steht in der Silverlight Client Anwendung zur Verfügung. Ein Ausdruck kann also komplett auf der Client Seite durchgeführt werden, ohne dass der Server daran beteiligt ist.
Eine Druckseite wird in XAML beschrieben, genau wie eine auf dem Bildschirm sichtbare Seite. Es ist also ganz einfach einen Screenshot von einer Silverlight Anwendung zu drucken. Aber auch andere Druckausgaben können seitenorientiert beschrieben werden.

Rechtsklick und Mausrad

In Silverlight 4 Anwendungen kann erstmals ein Rechtsklickmenü definiert werden. In bisherigen Versionen von Silverlight und in den meisten anderen Internet Anwendungen ist die Verwendung eines Rechtsklickmenüs nicht möglich. In der Regel wird das Rechtsklickmenü des Internet Browsers gezeigt oder das Rechtsklickmenü des aktiven Plug-Ins. Bisher war man der Meinung, dass aus Sicherheitsgründen die Implementierung eines Rechtsklickmenüs nicht möglich sein sollte. In Silverlight 4 hat man zugunsten der Benutzerfreundlichkeit diese Restriktion gelockert.
Neu ist auch die Verwendungsmöglichkeit des Mausrads, zum Beispiel zum Rollen in Listboxen oder DataGrids. Im Gegensatz zu VFP steht diese Unterstützung nicht nativ zur Verfügung, sondern muss durch einige Zeilen Code ermöglicht werden.

Mikrofon und Webcam

Mit wenigen Zeilen Code kann auf ein Mikrofon oder auf die Webcam des Client PCs zugegriffen werden. In jedem Fall erscheint hier eine Sicherheitsabfrage für den Benutzer und er muss sich mit der Verwendung dieser Geräte durch die Silverlight Anwendung einverstanden erklären. Es sind Anwendungen denkbar, die über die Webcam Bilder, Muster oder Strichcodes erkennen.

RTF

Das RichTextBox Steuerelement ermöglicht die Bearbeitung von RTF Texten. Es sind die gleichen Formatierungen möglich, die wir aus dem RichTx32.ocx kennen, das in VFP Anwendungen eingesetzt werden kann. Die Integration von Bildern in RTF Texte ist möglich.
An dieser Stelle soll darauf hingewiesen werden, dass HTML Texte in Silverlight Anwendungen, wenn diese im Internet Browser laufen, nicht angezeigt werden können. Dies ist aus Sicherheitsgründen nicht möglich. In HTML kann zu viel gemacht werden, was in einer Silverlight Anwendung unerwünscht ist. Mit dem RichTextBox Steuerelement wird die Möglichkeit geschaffen, formatierten Text anzuzeigen.
Wenn eine Silverlight Anwendung als Desktop Anwendung installiert wird, ist die Anzeige von HMTL Text mit einem Webbrowser Steuerelement, ähnlich wie in VFP, möglich.

Zwischenablage

Ähnlich wie in VFP Anwendungen kann in Silverlight 4 Anwendungen interaktiv und programmatisch auf die Zwischenablage zugegriffen werden.

OOB und Elevated Trust

Silverlight 4 Anwendungen können so konfiguriert werden, dass sie außerhalb eines Internet Browsers, also „out-of-browser“ (OOB) lauffähig sind. So können Silverlight 4 Anwendungen als Desktop Anwendungen installiert werden. Es ist auch möglich, eine Silverlight 4 Anwendung programmatisch, also mit einem Installationsprogramm, zu installieren. Möglich ist auch der automatische Start einer HTML Seite von einer CD-ROM oder einem Memory Stick, die bei Bedarf das Silverlight Plug-In installiert und dann eine Silverlight Anwendung startet.
Wenn eine Silverlight 4 Anwendung so konfiguriert ist, dass sie außerhalb eines Internet Browsers laufen kann, kann eingestellt werden, dass die Anwendung über erweiterte Rechte verfügen soll. Normalerweise laufen Silverlight Anwendungen in einer „Sandbox“. Das heißt, es gibt keine Möglichkeit auf den Rechner zuzugreifen, auf dem die Anwendung ausgeführt wird. Durch die Einstellung „Elevated Trust“ kann eine Silverlight 4 Anwendung auf das Dateisystem des Rechners zugreifen. Mit „Elevated Trust“ haben wir die Rechte, die wir auch aus einer VFP Anwendung gewohnt sind.

Verwendung von COM Servern

Silverlight Anwendungen, die „out-of-browser“ laufen und mit „Elevated Trust“ Rechten ausgestattet sind, können COM Server verwenden. Die Syntax bei der Ansteuerung von COM Servern ist sehr ähnlich der Syntax, die wir aus VFP kennen.

Drag&Drop

Silverlight 4 Anwendungen können als Drop Ziel verwendet werden. Es ist also möglich, zum Beispiel aus dem Windows Explorer Dateien auf ein Steuerelement in einer Silverlight Anwendung fallenzulassen und dabei ein Ereignis auszulösen, das Informationen über das fallengelassene Objekt erhält.

Multi-Touch

Seit Apple das iPhone auf den Markt gebracht hat, sind Multi-Touch Displays in aller Munde. Wie schön einfach ist die Navigation, zum Beispiel zwischen Fotos, mit einem Fingerwisch. Wie leicht lassen sich Bilder vergrößern, indem man zwei Finger voneinander entfernt.
Objekte lassen sich mit den Fingern drehen, verkleinern und zerstören. Wenn man es nur einmal gesehen hat, wird man es nie vergessen. Anleitungen sind überflüssig. Das ist intuitive Bedienung auf dem neuesten Stand der Technik.
Bisher sind Multi-Touch Displays hauptsächlich in Mobiltelefonen und PDAs zu finden. Aber auch immer mehr Notebooks mit sind Multi-Touch Displays oder Multi-Touchpads erhältlich. Und schließlich gibt es auch normale standalone Displays mit Multi-Touch Funktionalität. Silverlight 4 unterstützt die Erkennung von mehreren Berührungspunkten und Gesten.

Wie geht es weiter?

Im nächsten Artikel werden wir die Silverlight Business Application kennenlernen. Wir werden sehen, wie mit Visual Studio 2010 eine Silverlight Anwendung mit Datenzugriff auf eine SQL Server Datenbank ganz ohne Programmierung erstellt werden kann. Dabei wird der Code für einen WCF Web Service vollständig generiert. Die Grundfunktionalitäten für Datenbankanwendungen SELECT, UPDATE, INSERT und DELETE werden durch den Web Service zur Verfügung gestellt. Auf Seite des Clients wird ein Formular mit DataGrid und TextBoxen erstellt. Es wird beschrieben, wie eine komplette Internet Anwendung einfach nachvollziehbar erstellt werden kann.