In the Live Framework Programming Model Architecture and Insights session, Ori Amiga (standing in for Dharma Shukla, previously a WF architect) demos a Live Mesh resource script that runs in the cloud. The script creates a folder on the Live Mesh desktop and downloads two images from external resources, placing them in the newly created folder.
I couldn’t find this sample on the web, so I recreated it from the session video. You can download the demo project here.
You may need to touch up the references to Microsoft.LiveFX.Client.dll, Microsoft.LiveFX.ResourceModel.dll, and Microsoft.Web.dll since they live under C:\Program Files (x86)\ on my 64-bit box and are probably under C:\Program Files\ if you’re running 32-bit.
At first, my demo threw an error trying to run the following line:
After investigating with Reflector, I discovered that RunAtServer() hard-codes a default script URL of https://user.windows.net/V0.1/Script/ which needs to be changed to https://user-ctp.windows.net/V0.1/Script/ . You can override this either by calling an overload of RunAtServer() that takes a URI, or by creating an App.config file and adding the following line in the <appSettings> section.
<add key="ScriptUrl" value="https://user-ctp.windows.net/V0.1/Script/"/>
I chose to use the appSettings solution since that is what Ori must have used in the demo.
I really would prefer ScriptUrl to be exposed as a property on ResourceScript<> that appSettings/ScriptUrl maps into rather than having to specify the URL either in config or in each method call. My philosophy is that you should always be able to do in code what you can do in config.
I’m looking forward to playing more with Live Mesh resource scripts, documented here. Right now they feel a bit convoluted to create programmatically, but they appear to be designed to put a friendlier layer on top such as an Oslo DSL or a “resource workflow designer”.