Rewriting the enriched web

When I interviewed Bill Gates at the September 2005 Professional Developers Conference, one of the topics we discussed was the just-announced WFP/E (Windows Presentation Foundation/Everywhere). Amusingly, he remarked:

…WPF/E — which they say they’re going to rename, but that’s the best they could do for now…

In the usual course of events, a Microsoft project starts out with a cool name like Indigo, and winds up with a clunky name like “Windows Communication Foundation (WCF).” This time, refreshingly, things happened the other way around. What was announced as WPF/E will now permanently be known as Silverlight. It was unveiled at the National Association of Broadcasters show, and as Tim Sneath has hinted, there will be more Silverlight-related announcements at MIX.

For now, I just want to surface an implicit connection between yesterday’s item about Reify Software’s Turnabout (Greasemonkey for IE) and Silverlight. As Tim noted:

Every XAML element can be accessed or manipulated from the same client-side JavaScript that would be used to interact with any DHTML element.

If you’ve installed the Silverlight preview, you can see an example of this dynamic interplay here — on Windows or on the Mac.

Now here’s an interesting point. Because the Silverlight DOM (document object model) is accessible from JavaScript, the same Greasemonkey-style scripts that rewrite HTML pages will be able to rewrite Silverlight inclusions.

Why might this be useful? Suppose you’re using a site that includes a Silverlight media player on a web page. You’d like to modify the player’s controls or its annotation features. A Greasemonkey-style script should be able to rewrite the player’s XAML (the Silverlight and Windows Presentation Foundation’s XML markup) just as it can rewrite the page’s HTML.

Greasemonkey unleashed a flood of creativity by enabling developers who are not the authors of web pages to enhance the behavior of those web pages in ways that can be profoundly useful. I hope we’ll see similar effects in the realm of Silverlight. And if we do, I hope they’ll enjoy the same cross-browser reach that Silverlight itself does.

Posted in .

16 thoughts on “Rewriting the enriched web

  1. Interesting

    I believe that this is similar to Mozilla’s XUL, which appears in the Dom also, making it accessible from GreaseMonkey, although I could be wrong.


  2. Cross-browser to some extent (IE, Firefox, Safari), but can’t run on Linux, correct?

  3. Hey Jon, this is off topic but I though you might be interested.

    I was following some links around the web and landed on this page which was a pretty scathing critique of Techcrunch. After reading it I thought ‘wow I’ve never seen Jon Udell that angry’ then I read another post which seemed so out of character for you, insulting IE users.

    After a little bit of head scratching I read the about page and realized that this wasn’t your blog. I guess the shared design and technical content, just made me assume that it was your writing. Perhaps you can ask one of the designers at MS to create a new header image or logo to help distinguish your blog?

    Anyway I haven’t had that happen before and it was a very odd sensation, thinking that someone who’s writing you really enjoy had gone over the deep end.


  4. “I guess the shared design and technical content, just made me assume that it was your writing.”

    That’s an excellent point. I should vary the image in the header at the very least. Thanks very much.

  5. Jon, have you actually tried this? The Silverlight DOM is not completely integrated with the Browser DOM. Instead you have to access it through a handle to the Silverlight host. Wouldn’t be easy for the page to keep this handle private, therefore preventing hackers to monkey around with the Silverlight object model?
    I’ll ping you if I get any conclusive answer (it is possible to block Greasemonkey scripts from peaking inside Silverlight?).

Leave a Reply