posted on Wednesday, August 23, 2006 11:26 PM
by
johnwood
Dissecting Windows Live Writer
Whenever Microsoft brings out some new application, the first thing I do is dig beneath the surface to see what's going on inside - see what they're using to develop the application, what libraries they're using, whether they're eating their own dog food - stuff like that.
Windows Live Writer is Microosft's most recent addition to their lineup. But it's different to their other applications, maybe not externally but internally you can see some major shifts in how they're developing software.
So I go into the program directory and see what files there are. The first thing I notice is that there are no cryptic DLLs in there - each DLL is named using what seems to be (gasp) a convention that reflects namespaces. .Net namespaces at that.
And sure enough, if I open the DLLs in Reflector it's quite evident these are managed DLLs, written in a .Net language. I would take a guess the whole thing is written in C#.
There is one exception though. The appearance of the DLL called ssceonfl.dll is a spell checking library created by Wintertree.
It's easy to say that Microsoft already have several spell checker libraries they could use - Office for example - because these are created by other departments who tend to protect their intellectual property like the crown jewels, even across departments, you'd be surprised how little re-use goes on at Microsoft. But still, seeing them using a third party component here is a little surprising.
Using Spy++ it also looks like they're using the Internet Explorer's editing capabilities for the WYSIWYG blog editing features. I would suppose this is some kind of mix between a contenteditable=true div block and some automation from C# for formatting options in the toolbar. This would certainly make their HTML view quite easy to implement. (Edit: I since learnt that you can achieve this by setting document.designmode = "On").
Given that's a COM component there are a couple of interop DLLs that allow the browser to be pulled into .Net.
Looking through rest of the DLLs there is also evidence of some kind of Windows Live API in the works. You can see DLLs to access Passport, Live Clipboard and 'core services'. Perhaps this is something they will be releasing independently as a Live SDK?
What's also interesting is that none of the DLLs are obfuscated in any way. It's quite easy to run Reflector and see what's going on in there. If this is going to be a trend I could imagine hackers having a field day with their future releases - given there is so much software out there to decompile an entire application back to a .csproj and compilable source files.
The BlogClient DLL seems to contain all the work involved in communicating to the various blogger APIs. Most of these are xml-rpc based (which is a little unfortunate for Microsoft who invested so heavily in SOAP), and just delegate to the xml-rpc API.
Looking at the GUI we also see evidence of a brand new toolbar and menu - with a subtly different look. Whether this is going to be some kind of standard UI library for future Live desktop applications remains to be seen, but it looks like some investment went into its development.
Overall the look is quite nice - but clearly immature compared to Office applications. Then again this is free software, at least currently.
What's quite exciting is that this is one of the few Microsoft applications where they're actually using .Net themselves and creating an application that is managed. Why they've been so slow on the uptake of their own platform is the $64,000 question, but no doubt politics and kicking old habits took on a very central role.
----
Download a free trial of Priorganizer the to-do list application: fast, powerful yet very simple to use.