Architektur

Silverlight Internet-Anwendungen bestehen aus mindestens zwei Projekten: einem Serverprojekt und einem Clientprojekt. Das Serverprojekt wird auf dem Server ausgeführt und enthält den Datenzugriff und Geschäftslogik.

Das Clientprojekt ist das eigentliche Silverlight-Projekt und wird auf dem Client-Rechner ausgeführt. Aus  Optimierungsgründen ist das Clientprojekt in viele, kleine Teilprojekte aufgeteilt.

 

Serverprojekte

Silverswitch Anwendungen haben zwei Serverprojekte.

Das Startprojekt der Projektmappe hat den Namen VFXforSilverlight.Web. Das Startprojekt wird auf dem Internet Server vom Internet Information Server ausgeführt. Dieses Projekt enthält die Startseite default.htm.

Die Internetadresse der Startseite wird vom Internetbenutzer in der Adresszeile des Browsers eingegeben, um die Anwendung zu starten. Die Startseite default.htm prüft, ob im Browser das Silverlight Plug-In installiert ist und lädt die Silverlight Startanwendung auf der Clientseite.

Das zweite Serverprojekt hat den Namen VfxDataLayer.Web. Dieses Projekt enthält die Datenmodell, über die der Datenzugriff erfolgt sowie die Domain Services, mit denen der Datenaustausch zwischen Clientprojekten und Serverprojekten erfolgt.

Der Datenzugriff erfolgt in Silverswitch Anwendungen mit ADO.NET Entity Data Modellen. Diese Modelle können mit Visual Studio erstellt werden, wenn für die zu verwendende Datenbank ein ADO.NET Entity Data Model-Treiber zur Verfügung steht. Für Microsoft SQL Server wird so ein Treiber mit Visual Studio installiert.

Bei der Migration von VFX für VFP Projekten wird ein ADO.NET Entity Data Model für den Zugriff auf VFP Datenbanken vom VFX – Silverlight Wizard erstellt. Der Zugriff auf die Datenbank erfolgt hierbei mit einem  VFP COM Server, der ebenfalls vom VFX – Silverlight Wizard generiert wird. Ein ADO.NET Entity Data Model-Treiber für VFP Datenbanken ist daher nicht erforderlich.

Ein Domain Service kann mit dem Assistenten von Visual Studio generiert werden. Bei der Migration einer VFX für VFP Anwendung wird ein Domain Service vom VFX – Silverlight Wizard erstellt.

 

Clientprojekte

In einer Silverlight Anwendung wird ein Silverlight Projekt zu einer Datei mit der Namenserweiterung .xap  kompiliert. Genauer gesagt, werden die DLLs, die das Kompilat enthalten, in eine Archivdatei verpackt. Diese Archivdatei enthält die Namenserweiterung .xap. XAP-Dateien können mit dem Windows-Explorer in ZIP Dateien umbenannt werden und man kann so die enthaltenen DLL-Dateien sehen.

Beim Laden einer Silverlight Anwendung über das Internet wird eine XAP-Datei wird der Serverseite an den  Client übertragen und dort vom Silverlight Plug-In ausgeführt.

Um die Wartezeit beim Laden einer Silverlight Anwendung zu verkürzen, sollte eine XAP-Datei klein sein.

Silverswitch wird dem durch ein Modularisierungskonzept gerecht. Beim Start der Anwendung wird VfxLoader.xap geladen.

 

Klassenhierarchie

Die in Silverswitch implementierte Klassenhierarchie ist ähnlich zu der Hierarchie, die in VFX für VFP implementiert wurde. Die Funktionalität von Silverswitch ist in Klassendateien mit dem Namenszusatz “Base”enthalten. Von diesen Klassendateien gibt es 1:1 Ableitungen in Klassendateien ohne den Namenszusatz “Base”. Diesen Klassendateien können eigene Erweiterungen hinzugefügt werden.