Windows Vista Magazine advert
Welcome, Guest. Please Sign in (or Register) Welcome,  (Profile | Log out)
Real-world guides, help, tips and buying advice from the Windows Vista community

Mysterious Microsoft Iris UI Framework “UIX” behind the new Zune software eye-candy

Whilst the previous Zune software was something like a Windows Media Player experiment turned Frankenstein, the new Zune software is something worthy of exploring. Whether or not you agree with Tim Gideon from PC Magazine, “Microsoft’s answer to iTunes….is quite attractive and makes iTunes seem like a big, boring spreadsheet”, you must admit it is probably [...]
By longzheng on 15 November 2007

Zune softwareWhilst the previous Zune software was something like a Windows Media Player experiment turned Frankenstein, the new Zune software is something worthy of exploring.

Whether or not you agree with Tim Gideon from PC Magazine, “Microsoft’s answer to iTunes….is quite attractive and makes iTunes seem like a big, boring spreadsheet”, you must admit it is probably the only worthy contender to-date.

Whilst there’s a lot to like beyond just the looks - although I still reckon there needs to be more borders/separators - there’s an interesting bit of magic behind how the Zune software is designed and displayed.

The whole application, top-to-bottom and inside-out, is powered by a Microsoft framework no one has ever heard of before. It has several names, simply “UIX” or the “Microsoft Iris UI Framework”.

How do I know this? The most obvious clues are the framework library files in your Zune directory. They are UIX.dll, UIXrender.dll and UIXsup.dll - Microsoft Iris UI Framework, Rendering engine and UIX Debugging Support respectively. On the same note, the product name of all of these files is “Microsoft Zune-MediaCenter Platform” which helps a little later.

Looking a little deeper, all of the presentation markup files are actually embedded in a resource file called ZuneShellResources.dll (also the same file the images are in). In here we find each component of the UI defined in a separate .UIX file. There are literally hundreds of these. For example there is a “AboutDialog.UIX”, “Button.UIX”, “GalleryView.UIX” and “Tooltip.UIX”.

The UIX markup language is distinctively XML-based. Here is a snippet from “AboutDialog.UIX”.

UIX code snippet

After a little more researching together with the reference to Media Center before, it appears UIX is an extension of Media Center Markup Language (MCML), the presentation markup language used in Windows Media Center to third-party developers. In particular they share a lot of the same namespaces, for example and . However they are not identical besides UIX being a 2007 schema whilst MCML is 2006.

The biggest difference in UIX is the inclusion of scripting logic. For example here is a snippet from “Scrollbar.UIX”.

UIX code snippet

Here they are defining some of the very simple logic behind a scrollbar. This also gives the impression UIX is a very low-level framework as simple controls like buttons, checkboxes and scrollbars are all user-defined and not built-in to the framework itself. The advantage being they can really fine-tune exactly how controls function as they intend it to. For example, why the buttons in the Zune software looks so good. Together, they can pretty much mimic most if not all of the common user interface available in Windows with UIX.

Rendering wise, I don’t have a lot of understanding on how UIX renders its outputs, but in the rendering engine DLL it makes references to DirectX9 functions and the sort which makes me believe this is 3D-accelerated which might explain why the animations and transitions run so smooth.

Whilst all of this is all well and interesting, the thing that really captures my attention is why they would invest so much time into developing this framework and implementing it just for his software when they have plenty of alternatives like Windows Presentation Foundation (WPF) to work with. I can’t stop wondering if this is going to become a new framework offering by Microsoft for all developers to use. In any case, now if anyone ever asks “gee, I wonder what the Zune software is designed with”, they’re not left out in the cold.


Note: This blog entry was originally posted on feeds.feedburner.com. View original post

Appreciate this article? If so please vote positively to help push it up the rankings Click once to push vote this item up the content rankings. This helps the community find good material, and your voting enables our systems automatically personalize your experience.

Comments



Leave a Comment:
Username: 
Password: 


   
Related posts...