Das Live Framework für Entwickler
Programmierer haben bereits jetzt die Möglichkeit, erste meshbasierte Anwendungen zu entwickeln. Derzeit (März 2009) ist eine CTP des Live Frameworks verfügbar, für welche man sich unter [5] registrieren muss. Nachdem man (über eine Warteliste) einen Zugang erhalten hat, lassen sich im Azure Developer Portal LiveFx-Projekte erstellen und das Live Framework SDK und die Live Framework Tools herunterladen. Zudem erhält man unter [6] ähnlich wie bei Live Mesh ein eigenes Mesh für seine Geräte und Daten mit 5 GB Online-Speicher und dem bereits bekannten Live Desktop. Will man ein Gerät zum Mesh hinzufügen, so muss mit dem Live Framework Client auf dem entsprechenden Gerät eine Software installiert werden, über welche LOE als Service-Endpunkt des Gerätes zur Verfügung gestellt wird. Im Gegensatz zu Live Mesh erhält man in diesem zusätzlichen Mesh (der Developer Sandbox) zudem die Möglichkeit, meshbasierte Applikationen auf Basis von Silverlight zu installieren und direkt im Live Desktop laufen zu lassen. Diese Funktionalität ist eine Vorschau darauf, was mit Live Mesh zukünftig möglich sein wird, doch dazu später mehr. Das SDK kommt derzeit mit Bibliotheken für .NET, Silverlight und Javascript, weitere dürften aus der Community aufgrund der standardisierten Schnittstellen folgen. Neben dem SDK existiert mit den Live Framework Tools zudem ein Installationspaket, über welches neue Projekttypen für meshbasierte Silverlight-Anwendungen und Webseiten in Visual Studio 2008 bereitgestellt werden.
Eine kleine Fotoverwaltung
Für diesen Artikel wurde die kleine meshbasierte Anwendung MeshPhotoShare entwickelt. Basis dafür sind Silverlight 2 sowie die Live-Framework-CTP-Bibliotheken für Silverlight. In der Applikation haben Nutzer die Möglichkeit, kleine Kollektionen von Fotos als einfache Liste zu verwalten. Es ist möglich, neue Fotos hinzuzufügen, alte Fotos zu löschen und zudem jedes Foto mit Metadaten in Form eines Titels sowie einer Beschreibung zu versehen. Das Ergebnis ist in Abbildung 4 dargestellt.
Die Funktionalität der Applikation ist sehr übersichtlich ausgelegt, dennoch ergeben sich im Zusammenspiel mit den Live Services zusätzliche Möglichkeiten der Offline-Bearbeitung, der Synchronisation und des Datenaustauschs. Als Ausgangspunkt wird in Visual Studio ein neues Projekt vom Typ Silverlight Mesh-enabled Web Application angelegt. Dann kann die Silverlight-Applikation wie üblich, z.B. mithilfe von Visual Studio und Expression Blend, entwickelt werden. Doch wie bringt man seine Applikation nun ins Mesh? Die Antwort lautet: Man führt sie aus! Beim ersten Ausführen erscheint dabei ein Dialog, über den man zum Azure-Services-Developer-Portal [8] gelangt, dort ein neues Projekt anlegt und im Gegenzug einen eindeutigen Application Self-Link erhält, über den die Applikation identifiziert werden kann. Infolgedessen wird die Anwendung von Visual Studio automatisch im Mesh (in der Cloud) deployed und direkt auf dem Live Desktop ausgeführt. Bei abermaligem Ausführen der Applikation findet ein automatisches Deployment statt, dieser Prozess wird einem als Entwickler also abgenommen. Abbildung 5 zeigt den Verlauf des Deployment-Prozesses aus Visual Studio heraus.
Im Programmcode erhält man bei silverlightbasierten Mesh-Applikationen über den MeshApplicationService Zugriff auf die Ressourcen in seinem Mesh. Listing 1 zeigt, wie mit dessen Hilfe bei Applikationsstart eine Verbindung mit dem Mesh hergestellt wird (ein Prozess, der bei Nutzung der .NET-basierten Mesh-Bibliotheken abweicht). Über die Load()-Methode werden die Ressourcen synchron in die Service-Instanz geladen und stehen im Programm nachfolgend zur Verfügung. Äquivalent dazu können beliebige Ressourcen auch asynchron über LoadAsync() abgerufen werden, wobei dann bei Beendigung des Ladevorgangs das LoadCompleted-Event gefeuert wird.
private MeshApplicationService _meshApp;
public Page() {
InitializeComponent();
// lade Meshdaten in den Speicher
_meshApp = Application.Current.GetMeshApplicationService();
_meshApp.Load();
}




