Why XML in Silverlight is Significant
I have been working with XML for most of my career, from developing a CAD application to my roles at Mindjet to my new role at Microsoft talking about Silverlight. In this career, I have given numerous talks about the relevance of XML and to be susinct, I have it boiled down to this:
XML is about Partnerships.
Whether that partnership are one-to-one or one-to-many, in my opinion, XML is the right technology to use when you want systems to interoperate with eachother. One type of XML is called XSLT, which is a transformational XML language that defines how one XML set of data transforms to another, so given this XML fragment of Mindjet MindManager XML:
<ap:Topic xmlns:ap="...">
<ap:Text PlainText="Silverlight Rules"/>
</ap:Topic>
this XSLT fragment:
<xsl:template match="ap:Topic" xmlns:xslt="..." xmlns:ap="...">
<TextBlock Text="{ap:/Text/@PlainText}" xmlns="..."/>
</xsl:template>
Produces this Silverlight XAML:
<TextBlock Text="Silverlight Rules" xmlns="..."/>
The significance of this is that you can write an XSL transform from almost any XML language to another: THIS IS BIG! That means that if you have content in one XML format, you can transform it to another. A few years ago, I did a simple demo (that only works on Internet Explorer) on my personal website that used XSLT to make a browser for sketches that I did over the years (click on the about link on top to see how it was done). When I was at Mindjet, I created numerous demos on the Mindjet Labs that used XML and XSLT to get data into and out of MindManager. As you can see, I love working with XSLT!
When I first heard about XAML and Silverlight last year, I started getting very excited about the possibilites that it could enable especially with transforming data from MindManager's XML to XAML. One of the XML languages that I started working with at Mindjet was the RibbonX XML for Office 2007 Ribbon UI for Word 2007. Before I joined Microsoft, I started thinking about how I could transform RibbonX XML to Silverlight's XML (XAML) to present a website's user interface. This was a fun exercise for me and I really learned Silverlight's XAML. What I created from that was https://xmldocs.net. I am now seeing others that are using Silverlight to render all types of XML data, like XPS files. This is why I believe that Silverlight's XML data model is significant. Now, the next thing that I want to look at Popfly.
Links:
- Silverlight Ribbon UI for websites: https://xmldocs.net
- Silverlight Map MindManager Map Creator: https://blogs.msdn.com/synergist/pages/silverlight-map.aspx (with source code)
- Silverlight to XPS: https://blogs.msdn.com/delay/archive/2007/05/22/lighting-up-the-xml-paper-specification-proof-of-concept-xps-reader-for-silverlight.aspx
- Journal Browser (Internet Explorer-only) https://charette.com/Journals/index.html
- Silverlight development community: https://silverlight.net
What XML do you want to see in Silverlight? To get some ideas, look at all of the web services on Programmable Web (most web services are XML-based).
Comments
Anonymous
June 03, 2007
Michael Scherotter was definitely an awesome add to Microsoft's Silverlight team! Check out some of theAnonymous
September 21, 2011
Very interesting. I'm just getting a clue about how powerful MM + XSLT can be in order to leverage MM GUI to produce/manage "content" in a visual domain while at the same time using XSLT to "mine" the information out into XML for integration with other apps/processes/processors, etc... However, there seems to be a paucity of information on this sort of synergy... Is it just "passé" or just that no one is "out there" (save yourself) yet.Anonymous
September 21, 2011
John, Open APIs and Open Data Formats make this possible - I'd suggest that you look at http://www.programmableweb.com to see all the kinds of synergies or "mashups" that people are coming up with. Michael