Microsoft's Zune PC software is written in .NET

One of the questions/concerns that permeates a discussion about using .NET on a new project is: If it's so weep-enducingly great, why doesn't Microsoft use it in any appreciable way?

Well, as of November 13th, they do... Yes, somewhere, pigs are flying.

The brand-new Microsoft Zune PC application is written largely in .NET. The previous 1.x client was essentially a GUI wrapper around Windows Media Player guts (native... buggy...), but the new app is written from scratch in .NET (managed) code. It looks terrific (refreshingly not "old skool" Win32), and is largely managed code, from the UI down to the SQL DB access.

So feel free to crawl around the Zune PC client DLLs using .NET Reflector or any other of your favorite .NET hackage tools. You'll see all kinds of interesting things. (For your voyeuristic pleasure, an example is the name of the ZuneShell.dll's private key file: "e:\zune\dorado_v2.1_rtm.public.x86fre\internal\strongnamekeys\fake\36MSApp1024.snk" -- I love the fact that the path includes both "fake" in the file path and the original code name for Zune 2, "Dorado")

As others have pointed out, much of the GUI is written with an assembly/API called "Iris" (UIX.dll). It's managed code, and appears to be centered around web-oriented multimedia presentation. Why they're using this instead of WPF is anyone's guess. Looking through UIX in Reflector, it almost feels to me like this was their "pure-.NET" take on the Silverlight concept of "WPF light", since Silverlight 1.1 (and its .NET support) are still in Alpha form.

Does this herald the coming of OS components written in managed code? Probably not, but it does show Microsoft putting their own developers where their evangelism has been for the last two years...


Posted Nov 29 2007, 10:46 AM by mike-henderson

Comments

[p[ wrote re: Microsoft's Zune PC software is written in .NET
on 11-29-2007 2:57 PM
Last two years?

It has been been six to my count, and the number of .NET apps out there is so low in comparison to native code (let alone other platforms or popular apps like adobe etc).

And to say time has not past for .NET to prove itself is an understatement. To say that WPF will change it would be a joke as it incurs penalties far, far greaeter than WinForms/GDI+ both on CPU and RAM.

Repeat after me, does, not, scale.

Gregory A Brewer wrote re: Microsoft's Zune PC software is written in .NET
on 11-29-2007 6:28 PM
From Dan Fernandez's Blog in November 2004.

http://blogs.msdn.com/danielfe/archive/2004/11/02/251254.aspx
Mike Henderson wrote re: Microsoft's Zune PC software is written in .NET
on 11-30-2007 5:38 AM
I would argue that for brand new apps at least as many are written in .NET as are written with WinForms, if not more. Adobe, MS Office, and many other apps people pick on as being "not .NET" are legacy mid-90's code that no one has the time or money to rewrite from scratch.

In server-side apps, far more are written in .NET than native code. For example, ASP.NET and/or ADO.NET (http://www.port80software.com/about/press/060105)
-- you'll find many major sites (ebay.com, amazon.com...) use ASP.NET on the server.

As for performance... aside from start-up costs associated with the JIT compilation process, I have yet to see a significant example of .NET apps being "slower". Many Adobe GUIs are written in Java, and I find Java's startup time to be significantly longer than .NET.

At any rate, you're partially correct -- you can write pure native apps that will do certain tasks faster than a .NET equivalent, but that's true of any framework. I can write an app in 100% assembly code and make it run faster than a GDI+ app written in C/C++. You can always go a step lower and more optimized. The point of .NET is to provide a good mixture of accessibility (to devs), compatibility (with various Windows boxes), and portability (be it localization or from a desktop to a handheld).
321 wrote re: Microsoft's Zune PC software is written in .NET
on 11-30-2007 5:05 PM
You just have to try and see how slower it really is when you attempt to do any GUI or IO work.

People talking of 85% of native performance for manage code are confused at the very least.

Both starup and runtime penalty, is simply put: dreadful.

Compare WPF against WinForms against native GDI, very simple. We are talking of orders of magnitude for each abstraction put forward.

Lousy scaling.
Keith Brown wrote re: Microsoft's Zune PC software is written in .NET
on 01-18-2008 6:53 AM
I remember making these same sort of complaints about VB6. But there were an awful lot of really useful apps built on that "lousy scaling" platform.

There's something to be said for programmer productivity. Computers continue to get faster, and the problems we're solving continue to get more complicated. To me, the tradeoff makes sense. .NET helps me scale to solve more complicated problems.
Sellme.ru - Windows Presentation Fiction wrote Sellme.ru - Windows Presentation Fiction
on 07-02-2008 10:35 AM

Pingback from  Sellme.ru -   Windows Presentation Fiction

Add a Comment

(required)  
(optional)
(required)  
Remember Me?