Windows Live Mesh, Silverlight and the CoreCLR
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.
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.
About Newsletter
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!
CoreCLR is the way to go! .NET everywhere!
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!
And, then you'd be able to release applications for both Mac and Windows.
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.
http://www.blendables.com/labs/Desklighter/Default.aspx