Oct 282008

Yesterday at PDC Microsoft unveiled Windows Azure, a new platform for global scale distributed computing services, often called “cloud computing”. Today Microsoft rolled out tools for creating apps that use Live Services, access the same Mesh Objects you see in Live Mesh, or execute in the Windows Azure cloud.  Mesh-enabled web applications can even update themselves thanks to Feedsync-enabled Live Services storage features.

Now that this is all out in the open, I can finally tell you what I do.  I (re)joined Microsoft back in June to work on what is now called Live Framework Tools for Windows Visual Studio.  (Quite a mouthful.) 

You can use the Live Framework to talk to Live Services, and to build apps that live in the Live Mesh environment.  A Mesh-enabled web application can execute via Live Desktop in the browser, or the user can opt to run the mesh app on their desktop using the Live Mesh client software. 

The same runtime that synchronizes data files in Live Mesh shared folders, the LOE (Live Operating Environment) will keep the local cache of Mesh-enabled web applications in sync with the cloud.  If a local instance of the app modifies one of its internal Mesh Objects, that change will be sync’d back to the cloud and seen by all other instances of that application in the user’s mesh. Similarly, changes made to the app or its data in the cloud will be sync’d to any local instances on a given device the next time the device is connected to the network.

The code you write in the mesh application doesn’t need to care much about whether it’s running in the local LOE or the cloud LOE, since both LOE’s implement the same APIs and services.

The Live Framework SDK’s client libraries currently include JavaScript, Silverlight, and desktop .NET libraries so you can write mesh apps in the context of an HTML web page or create a stand-alone “mesh aware” desktop application.  You can access Live Services using any tool/language/device that can talk HTTP, but the Live Framework client libraries make it a lot simpler by taking care of the low level gorey HTTP details.  I’m sure we’ll see additional libraries pop up in the field to automate the low level HTTP stuff for other dev tools such as Ruby, Perl, Python, et al.  Delphi, btw, is covered by the Live Framework SDK’s existing desktop .NET library.

And of course, you don’t have to start from scratch – you can use Live Services in your existing web or desktop applications with a little bit of code and a recompile. Your existing Silverlight projects are probably also mesh deployable with little or no changes.

My team (Cloud Computing Tools) implements Visual Studio extensions to handle creating, editing, deploying, and debugging Mesh-enabled web applications running in the Live Mesh cloud.  If you’re a .NET nut, we have a Silverlight Mesh-enabled web app project for you.  If you’re an HTML JavaScript jockey, we’ve got an HTML Mesh-enabled web app project type as well.  Both can be edited, deployed, and debugged within VS.  If you’re working on a traditional desktop .NET application, you can just reference the Live Framework assemblies in your existing project – no VS extensions are needed.

Actually, only part of CCT is working on mesh tools – the majority of the team is focused on building Windows Azure Tools for Microsoft Visual Studio for writing services that execute in the Windows Azure cloud environment. 

For Azure dev info, check out Gus Perez’s recently revived blog.  Gus is on the Azure side of the CCT house and would blog more often if I would stop sending him stupid VS n00b questions in IM.  Jim Nakashima of Azure tools has also been blogging on Azure, though I think he may have an easier time of it than Gus because I don’t have Jim’s home phone number.  (Yet)

Chuck Jazdzewski is also here in CCT and is the architect of my return to Microsoft.  If you know Delphi, you know Chuck.  Though Chuck is officially working on “deep research,” he chipped in quite a bit to help get mesh tools off the ground.  (Thanks Chuck!)

I’ll be trolling the Live Framework forum to answer getting started questions, and hopefully posting a few Live Mesh app demos here later this week.