Live Framework CTP #1: Start!

The last two days I started playing around with the Live Framework CTP, where I was lucky to get a token from. I will write about my experiences in a series of postings in this place, so stay tuned. I encountered with some first issues and want to write about those in this posting.

Installation

After redeeming my Live Framework CTP token, I was able to download the following packages:

  • Live Framework Client: similary to the „normal user“ Live Mesh client, the Live Framework client runs in the background and allow synchronisation. In difference to the Live Mesh client it’s limited in functionality, as you will see later on. Note: the Live Framework Client is not needed for you as a developer to program against the Live Services, it’s just for background synchronisation.
  • Live Framework SDK: The Software Development Kit for the Live Framework. There is only a zip archive, no installation package. You have to copy the included folder into „C:/Program Files/Microsoft SDKs/“  by yourself. The SDK contains a resource browser tool, application samples, some documentation and libraries for .NET, Silverlight and Javascript.
  • Live Framework Tools for VS: This is an installation package which gives you a new project type „Live Framework“ when creating a project in Visual Studio, as shown below. There you can choose between „Mesh-enabled Web Application“ (allows you to create a Web App using the Live Framework Javascript library) and „Silverlight Mesh-enabled Web Application“, if you got the Silverlight Tools installed. Additionally it allows you to deploy your mesh application automatically in your mesh when running the app (I call it F5 deployment and like it very much – that’s how cloud should look from a developer’s point of view). Independently you can manually create mesh-enabled console/WPF/WinForms applications by adding the required libraries as references to your project. Thus you can easily add some mesh-functionality to your given applications.

That’s it. Installation worked fine except for the Live Framework Client (see below).

New Live Framework Project Type
New Live Framework Project Type

Developer Sandbox

With your Live Framework token you get a completely new Mesh in https://developer.mesh-ctp.com/. That means you can not use your existing „user“ Mesh from https://www.mesh.com/. You have to add devices again to your developer Mesh and it has the same 5GB storage (at the moment) and device ring/Live Desktop as your user mesh. In difference you can add applications to your developer mesh and this makes a big and even great difference.

Applications

At the moment there is no possibility to run applications in your user mesh. The developer mesh allows this. Some days before I shortly wrote (in German) about the Meshpack, which comes with 4 little Silverlight applications. The developer mesh allows you to include those 4 applications in your mesh with your Live Framework token at hand. The „Apps“ tab of your developer mesh will show those apps and allows you to create new instances of each one, which will appear on your Live Desktop and can be run from there. I’m waiting in suspense to see which applications will be available in the future through the public application catalogue, how they can be included in Windows Live and how you can share applications and there data with your friends!

The meshpack installed in the developer mesh
The meshpack installed in the developer mesh

Live Framework Client

The Live Framework and Live Mesh Clients

The „Live Framework Client“ is the developer mesh’s pendant to the „Live Mesh Client“ a normal user’s mesh comes with. The Client can be installed and then runs in the background. A taskbar icon will show you that you’re connected with your developer mesh and gives you recent news of your mesh.

There’s a really annoying issue with the Live Framework Client: if you have the Live Mesh client installed, you cannot install the Live Framework client! This frustrated me because I want to use the Live Framework, but at the same time I don’t want to miss the Live Mesh functionality on my machines.

Live Mesh and Live Framework client running side by sideBut I found a solution/workaround for this: you can uninstall the Live Mesh client and then you’re able to install the Live Framework client. After that install the Live Mesh client again and then you will not encounter any problems. I don’t know why Microsoft doesn’t allow both applications to run at the same time and I don’t know if there could be any problems with that. Until now I don’t have troubles with both applications and there synchronization functionalities.

In comparison to Live Mesh, the Live Framework client has some limitations in functionality. There is currently no ability to synchronize folders to your machine and you can’t connect remotely to other machines. Furthermore you can’t get online/offline information for your machines. At first look these are really annoying limitations, but at the second look it is no big problem for you as developer, who wants to explore the functionality of the Live Framework, not of the client.

The really great thing at the Live Framework Client is: you can synchronize applications between your mesh and your machines! From a developer’s point of view, applications in your mesh are just simple mesh objects, like mesh folders, mesh files and so on. This gives you a nice and consistent view of everything in your mesh. Applications can have data feeds, that means data which they contain. They have all the nice things other mesh objects have, too: news, members, feeds, mappings, …   and you can iterate through them programmatically, which will be shown in one of the next posts. So what means application synchronization? First when you include or deploy a Silverlight application into your mesh, you will automatically get a shortcut on your machine’s desktop! Thus you can start applications from your Live Desktop on the browser or directly from your desktop – it doesn’t matter. And with synchronization you’ll get all the data of the application (this means all data of the mesh object which is represented by your application). You can work offline with this data and if you come online again, this data will synchronize automatically with your mesh. Great stuff, isn’t it? I will give an in-depth look on that in a later blog entry…

When taking the meshpack as an example, there you’ve got the corkboard application. If you create a new instance of that in your mesh, you’ll get a shortcut on your Live Desktop and can start the app from there as shown below:

The corkboard application running on the Live desktop
The corkboard application running on the Live desktop

At the same time the Live Framework client notices the new application, synchronizes it with your machines and makes a shortcut on your desktop. From there you can start the application, which gives you nearly the same view as on your Live Desktop:

The corkboard application running locally on the user PC's desktop
The corkboard application running locally on the user PC's desktop

Live Mesh? Just an application!

When I first heard of and used the Live Mesh, I thought and spoke of Live Mesh all the time. But then I reconsidered the whole thing and found out the players behind the scenes. Is it Live Mesh we should speak about as developers? No, it’s not! Live Mesh is nothing but an application, a frontend of the real Mesh. In this mesh you have some nice things like devices, profiles, contacts, mesh objects (data, applications, …)  etc., which are populated via a restful web interface. Live Mesh uses this interface for displaying the device ring and Live desktop in your browser and for the features of the Live Mesh client (synchronization, …). The functionality of the Mesh itself is enabled by the Live Services as part of the service layer of Windows Azure. And with the Live Framework, you as developer are able to code against these Live Services and use all the functionality and data which are offered through Mesh and the Live Services. Thus you are able to create applications similar to Live Mesh or something really new. As your future killer apps, Live Mesh is only an end-user-friendly application build on the Live Services basement.

kick it on DotNetKicks.com