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.
April 24, 2007 at 12:48 pm
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.
regards
Al
April 24, 2007 at 6:27 pm
[...] Rewriting the enriched web « Jon Udell “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.” Don’t get that with Flash, huh? (tags: silverlight flash greasemonkey scripts javascript) [...]
April 24, 2007 at 8:17 pm
Hey Jon, I think your ‘Silverlight preview’ link and your dynamic interplay link are backwards. Good post!
April 25, 2007 at 6:40 am
Cross-browser to some extent (IE, Firefox, Safari), but can’t run on Linux, correct?
April 25, 2007 at 6:56 am
“Don’t get that with Flash, huh?”
Yep, same holds true there, at least I believe so, thanks to the Flex/AJAX bridge. http://ajaxian.com/archives/adobe-announces-a-flex-ajax-bridge
April 25, 2007 at 6:57 am
“I think your ‘Silverlight preview’ link and your dynamic interplay link are backwards.”
Ah, thanks, fixed that.
April 25, 2007 at 8:05 am
“but can’t run on Linux, correct?”
Doesn’t yet. I personally, of course, hope that it will.
April 25, 2007 at 9:51 am
[...] John Udell has posted a few things around Silverlight, specifically the standout is around how you can use the XAML DOM within JavaScript much like you would with the HTML version. That’s an excited thing to celebrate to those of you out there that are happy to play in the AJAX space (which seems to be a large portion). This now empowers you initially to combine your existing AJAX applications and Video in the one space using JavaScript. [...]
April 25, 2007 at 10:25 am
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 http://metacircular.wordpress.com/2007/04/05/delusions-of-skill-and-of-grandeur/ 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.
Thanks,
Josh
April 25, 2007 at 2:02 pm
“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.
April 26, 2007 at 8:42 am
[...] Udell has a post about the implications behind the Silverlight DOM being accessible by JavaScript and implies that [...]
May 1, 2007 at 11:23 am
[...] take this a step further, recall my earlier observations about Greasemonkey and Silverlight. A lot of the time, when we use the web, we’re effectively performing joins among data [...]
May 2, 2007 at 11:11 pm
[...] Rewriting the enriched web ? Jon Udell […] take this a step further, recall my earlier observations about Greasemonkey and Silverlight. A lot of the time, when we use the web, we’re effectively performing joins among data […] [...]
May 3, 2007 at 3:17 pm
Couldn’t agree more… I said as much in my post “Reversing a disturbing trend”
May 12, 2007 at 6:42 pm
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?).
July 22, 2007 at 9:52 pm
[...] Rewriting the enriched web WRT Silverlight, every XAML element can be accessed or manipulated from the same client-side JavaScript that would be used to interact with any DHTML element; meaning: the Greasemonkey will be able to rewrite Silverlight inclusions. [...]