Welcome.  If you’re here – the Microsoft Startup Labs developer blog – chances are good that you’ve been working with Live Mesh, attended Microsoft’s Professional Developer Conference and are looking for more perspective on working with Live Mesh, which is exactly what I’d like to share with you here.  


My team develops prototypes and product concepts, and we’re learning a lot about new and emerging Microsoft developer technologies.   We’re now working with Live Mesh, a part of the Azure Services Platform on which we built the MeshPack apps, and we’d like to tell you more about the Mesh.


Live Mesh is a unified computing environment that gives data access, device access and synchronization for all my important data and software. This means I can access anything I need from all my computers, from a web browser, and even from my smart phone. Mesh also supports sharing so that I can give someone access to a folder. It’s nicely integrated with the desktop and has a great web interface. For more information on what will ship in the first version check out www.mesh.com.


The Live Framework includes APIs that can provide the same synchronization and anywhere access to new applications. It provides all the network connectivity management, message routing, cloud storage, and a simple synchronization model via FeedSync. The entire API is exposed as a series of hyperlinked feeds that can be programmed with APP (or RSS, JSON and POX). This means that any language or tool set that can handle HTTP and Atom Pub can be used to write Mesh Aware applications. Microsoft will be providing libraries for Silverlight, .NET (Winforms or WPF) and javascript. This means I can write my application data to a consistent and familiar API and format, and Mesh will take care of making this data available anywhere that is supported by the Live Framework: the desktop (PC and Mac), the Web and mobile. On the desktop, Mesh provides a service running on localhost so that my web application can run offline with no modification. In this scenario, synchronization is key so that my program can continue to modify data and can resolve changes made by another device, or another user who is sharing an application. To run a web application from within Mesh, I can upload web client side code such as html/css/javascript or Silverlight and have my application hosted on Mesh. Not only is my application’s data available anywhere, I can also run the application from any one of my mesh enabled devices, or from a browser.


The Live Framework makes it easier for developers to build software+services that can exploit local resource and computing, and that can provide communication and collaboration on the Internet. Mesh helps developers solve a bunch of hard problems:


How do I continue to access data when I’m not connected?

How do I share information with multiple users asynchronously?

How do I take advantage of native hardware?

How do I take my desktop application and connect it to the Internet?

How do I take my web application and extend it to the desktop?


What’s next?


We’re still learning what we can build with the Live Framework. Our early experiments are very promising. Mesh makes it easy to build applications that are integrated with the connectivity of the Internet but that can break out of the browser to take advantage of native device capabilities. We’ve had a lot of fun so far, but we can’t wait to dig deeper and create compelling products and experiences that Live Mesh can enable. Stay tuned!