Desktop Drag and Drop XAP-Datei richtig aktualisieren Tiles in Windows Phone 7.5 Mango (Teil 2)
Kommentare

Menü 2 für Experten: XAP-Datei richtig aktualisieren
Es gibt nichts, was einen Silverlight-Entwickler mehr aufregen kann, als ein Browser, der die aktuelle XAP-Datei nicht richtig aktualisiert. Es

Menü 2 für Experten: XAP-Datei richtig aktualisieren

Es gibt nichts, was einen Silverlight-Entwickler mehr aufregen kann, als ein Browser, der die aktuelle XAP-Datei nicht richtig aktualisiert. Es wird entwickelt, deployt und es kommt trotzdem der alte Inhalt auf den Bildschirm, immer und immer wieder. Das liegt daran, dass aus der Sicht des Browsers oder eines Proxy-Servers die XAP-Datei gleichermaßen behandelt wird, wie eine PNG– oder JPEG-Datei, die dann einfach in einem Zwischenspeicher (Cache) abgelegt wird. In der Regel braucht sich der Entwickler auch keine Gedanken zu machen, sollte aber das oben genannte Phänomen auftauchen, gibt es folgende Lösung: In der Host-Datei (html, aspx etc.) befindet sich der JavaScript-Code zum Ausführen der Silverlight-Anwendung. Wo sich die Silverlight-Anwendung (XAP-Datei) auf dem Server befindet, wird mittels Param-Element beschrieben. Hier wird dem Silverlight-Plug-in die Adresse zur XAP-Datei mittels Source Property mitgeteilt. Das sieht in etwa folgendermaßen aus: .

Der Proxy-Server erkennt beim wiederholten Aufrufen der Host-Datei keinen Unterschied und verwendet die im Cache abgelegte XAP-Datei. Eine Möglichkeit wäre jetzt, dass die Versionierung im Namen der XAP-Datei gehandhabt wird, zum Beispiel . Jetzt würde eine Änderung vom Proxy-Server erkannt werden. Jedoch ist das Pflegen und Verändern des XAP-Dateinamens unhandlich und unangenehm. Eleganter wäre es, einen URL-Parameter an den XAP-Pfad zu hängen. Dieser Parameter wird vom Silverlight-Plug-in ignoriert und der Proxy-Server erkennt eine Änderung anhand der Parameter: .

Menü 3 für Windows Phone 7: Tiles in Windows Phone 7.5 Mango

Ab dem Mango-Update kann man von Silverlight aus die Tiles einer App mit Statusinformationen aktualisieren lassen. Das wird spielend leicht mit dem ShellTile API gehandhabt. Diesem gibt man die Informationen via StandardTileData-Objekt. Es bietet dann die folgenden Properties: Count, BackgroundImage, BackContent, BackTitle und BackBackgroundImage. Wo die Informationen dann dargestellt werden, zeigt Abbildung 2.

Abb. 2: Zuordnung der
Abb. 2: Zuordnung der „StandardTileData“ Properties für die App Tile

Der Sourcecode dazu ist zudem sehr leichtgewichtig aufgebaut. Hier wird nur eine Instanz von der ShellTile-Klasse benötigt. Sie wird nicht normal über new erzeugt, sondern durch das eigene statische ActiveTiles Property. Es ist eine Collection aus ShellTile-Instanzen, wobei nur die erste für unsere App wichtig ist. Dann werden die Informationen mittels StandardTileData-Instanz gesetzt. Das StandardTileDataObjekt wird dann der ShellTile-Instanz via Updatemethode überreicht. Das ist alles, was man benötigt, um die Informationen auf dem eigenen Tile aktualisieren zu können. Der Code steht unter Listing 3.

Gregor Biswanger ist Microsoft MVP für Client App Dev und arbeitet als Solution Architect und Silverlight-Experte der Firma impuls Informationsmanagement GmbH aus Nürnberg. Seine Schwerpunkte sind die .NET-Architektur, Silverlight und agile Prozesse. Er veröffentlichte vor Kurzem seine DVD mit Videotrainings zum Thema „WPF 4 und Silverlight 4“ bei Addison-Wesley von video2brain. Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group). Sie erreichen seinen Blog unter http://www.dotnet-blog.net.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -