Scott Hanselman

Windows Live Mesh, Silverlight and the CoreCLR

September 05, 2008 Comment on this post [8] Posted in Silverlight | Windows Client | WPF
Sponsored By

Picture the files in the Live Mesh folder Disclaimer: Everything in this post is pure conjecture by me, done by simply poking around my system and talking to myself. I don't work for the Live Mesh team, nor do I know anyone on the team. Anyone could have written this.

I was talking to Harry recently and we went poking around in the folder that the Windows Live Mesh client is in. On my machine it's in "C:\Users\scottha\AppData\Local\Microsoft\Live Mesh\"

There's a lot of interesting stuff in there. There's a version of System.Core (LINQ) as well as System.ServiceModel (WCF), but most interestingly there's coreclr.dll. Where have I seen that before? I've seen it in C:\Program Files (x86)\Microsoft Silverlight, of course. It's the Silverlight CLR that you might have on your own system. Remember this isn't the complete CLR, but rather a pared-down more portable version. This makes sense since Mesh plans to do a Mac client and Silverlight runs on Intel Macs.

It's a different version, though. On my machine I've got Silverlight 2 Beta 2 and its digital signature for coreclr.dll is recent while the Mesh coreclr.dll is version 1.1 and from February. That was back before the Mix '08 conference Silverlight 1.1 was re-christened "2.0."

You can see more of the MOE (Mesh Operating Environment) external dependences in the "Moe.exe.managed_manifest" XML file. It appears they've got their own private build of the a tiny CLR and just the libraries they need to make it work.

Even though Silverlight is a Rich Internet Application (RIA) technology and meant for use as a browser plugin, this is the third time I've found Silverlight living outside the browser (although still doing "connected" work).

The first time was when Jamie Cansdale, the author of TestDriven.NET prototyped running Unit Tests with the CoreCLR/Silverlight.

The second time, was the Mac Times Reader. You might have seen the NYTimes Reader, and the News Reader SDK. The Times Reader is a XAML-based WPF application. However, there is a scaled-down version of the Times Reader that was released on the Mac and it uses Silverlight to render XAML. In that application Silverlight is being hosted inside of a Cocoa "chrome" shell application using some MacGyver magic. It appears a lot of custom work was done to render the Reader-specific news feed (it's more than just RSS) in a flow layout.

All of this stuff Mesh is doing struck Harry and I as very interesting. It'd be cool if ISVs could target the CoreCLR (Silverlight) for some scenarios and have their own xcopy deployed private-version of .NET like Mesh. It appears Mesh used this custom version of the CLR so it would have portability between platforms.

It's always interesting to see how other groups at Microsoft do stuff. Just like us (the community), other divisions that use things the Developer Division produces, although since they are on the inside they get to do some magical things since they can just walk down the hall. (I work in my home office, so I'm pretty much limited to Office Communicator or I have to ask Phil to walk down the hall for me.)

I'm going to ask around and find out the full story behind how the Mesh (Beta) Windows Client uses .NET, and maybe I can get one of the more technical folks to do a podcast.

Technorati Tags: ,,

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
September 06, 2008 0:02
Another sighting of Silverlight outside the browser:
September 06, 2008 0:06
Very interesting Scott! The .NET framework for Windows apps has become sooo unwieldy. It's not so much the size of it - but the time Windows Installer takes to install it. (IMHO, MSI is an over-complicated, over-engineered behemoth.)

But being to effectively XCOPY deploy your own copy of the framework (the key bits seem to 7-zip down to about 2.5MB) would be fantastic if it were possible for ISVs to do!
September 06, 2008 1:58
When the mesh client originally came out I was poking around and if I remember correctly it looked like they were using Script# (i think i was packet peeking). Would be interesting to know if they are working with Volta.
September 06, 2008 5:19
If they can fit .net into a watch, should this be much of a surprise ?
September 06, 2008 15:09
There are some hints about Silverlight in the Channel9 videos on Live Mesh, e.g. in this one:
CoreCLR is the way to go! .NET everywhere!
September 06, 2008 19:37
I did similar spelunking when Mesh first came out and used Reflector to try to figure out how to write my own Mesh client. You can make references to their assemblies from Visual Studio and try to use them. But I never got anything to work. They also have a bunch of RESTful URLs for various services (storage, accounts, etc.), but I was never able to get anything back from them.

Basically I was trying to figure out if the Mesh platform in its current state is programmable without the SDK that's coming at PDC. If anyone figures this out, let us know!
September 07, 2008 14:54
It would be great if the Silverlight runtime is made available for standalone applications. Seriously, Silverlight has basically everything you need for any small-to-medium functionality application. Something like Twhirl (written in AIR) could be done as a Silverlight standalone application.

And, then you'd be able to release applications for both Mac and Windows.
September 07, 2008 18:08
All these comments and I only see one mention of the "a word": Air.

After all of the miscomparisons I heard in various outlets of Silverlight to Air or Flex to Air, this is the first I've seen of anything that is like Air.

One thing that I'm curious about is that I thought it was agcore.dll with ag being the element symbol for silver. I noticed that coreclr.dll is in my Silverlight directory and almost the same size as agcore.dll. I wonder what is the difference. Is coreclr the same as agcore, but for running outside of the browser? If this is the case I can't believe we (the community) haven't found it sooner.

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.