Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Update 3: Things are very interesting. Look for a "what we know" post over the next few days.

Update 2: Thanks to MyDigitalLife forum user NaiveUser we have hard evidence that XAML is indeed supported through DirectUI. Also with his process explorer dump it looks like GDI and User are still around.

Update: According to "Ricky" who identifies himself as a Microsoft Employee. WPF doesn't rely on DWM. It uses DirectX natively. Performance issues aren't caused from User/GDI limitations but more resource issues when rendering a large number of items on screen. That does not invalidate the rest of the discussion...just a minor flub or two on my part.

So the Net is all abuzz about the freshly unveiled “Windows 8” and it’s impact on the Microsoft developer ecosystem. A lot of people feel that the fact that Silverlight, WPF, and .NET weren’t mentioned in the demo implied they wouldn’t be supported. I must admit that was my first knee-jerk reaction as well. Let’s take a step back for a second and analyze what’s going on.

Windows 8 Immersive UI has been shown to support HTML5 + JS for writing apps. But here’s the kicker…Microsoft doesn’t control the HTML5 standard. There is no way they are going to have their premiere platform limited by an external standard. They’ve already gone through that with Java in the late 90s. “Embrace and Extend” just doesn’t cut it today. So naturally there HAS to be another framework for developing against Windows 8. Make no mistake, the “classic desktop” is essentially the equivalent of Mac OS X support for legacy apps, the only thing that Windows 8 spells death for is User and GDI. If you look closely at the demo, the Classic shell is a Window within MoSH.  If you are developing against frameworks targeting them, then it’s time to upgrade your skills.

HTML5 + JS is an interesting combination. HTML5 is markup, JavaScript is code. Applications = Code + Markup get my drift? By teaching us XAML and having us focus on declarative UIs, Microsoft is now free to swap out the how because our code only says “what we want”. If anything, the only people who should be worried are those still using Windows Forms for development.

Microsoft has been trying to make this break for quite a while. Did you know that the IE Engine, Trident, was originally designed to be a replacement for GDI/User? Microsoft was attempting to provide a declarative UI platform for Windows since Windows 95. The problem back then was performance. They could not get the horsepower needed to render the full desktop and all the applications at a suitable speed under Trident. So they backed off. However, we got the remnants of the effort in IE3 and the Active Desktop. Remember when Microsoft said in their anti-trust suit that IE was a core part of Windows. They weren’t lying. Trident shipped with Windows 95 Desktop Update and Windows 98 not as a gimmick but because there was so much written in the OS that leveraged it, stripping it out would have involved a lot of rewriting.

Fast forward to Longhorn. Again, Microsoft was attempting to bring a declarative UI layer to Windows core. From that effort we got the DWM and WPF (which sits atop DWM). They stopped short of fully stripping out User and GDI, but they telegraphed their punch so to speak. With Silverlight, and Windows Phone 7, Microsoft took off the glove. You get XAML and the .NET framework that they allow. No Windows Forms, no GDI, no User unless you break out of the sandbox and perform all kinds of obscene acts. Effectively the past 5 years has served to wean developers off what came before and start learning the future of Windows development.

There are still performance issues in WPF…there are performance issues in Silverlight on Windows Phone. This is because when you go far enough down it’s not turtles all the way. It’s still the same old stuff that Windows has been hobbled with since version 1. User and GDI.

Until now. Windows 8 introduces DirectUI. And with Direct UI the gauntlet has been thrown down. It’s time to stop doing things in code and on the processor that the GPU is best equipped to handle. It’s time to learn how to tell the framework what we want it to do instead of telling it how to do it. It’s time to realize that whether it’s called Silverlight, WPF, Jupiter, or Uranus, the future of Windows Client development is declarative. HTML just happens to fit the model…but XAML was born to do it.

kick it on DotNetKicks.com

Published Saturday, June 11, 2011 2:16 AM by Mike Brown

Comments

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Great post, but I'm not sure that my anus is declarative (I might have misunderstood that point).

Saturday, June 11, 2011 12:47 PM by Pete O'Hanlon

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Nice post. I like the idea of DirectUI and the most important thing is in your last sentence. "...but XAML was born to do it." I'm fine with HTML5 as long as I don't have to use it.

Saturday, June 11, 2011 1:35 PM by bitdisaster

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

DirectUI was most definitely not born to do it, it looks like *** - www.uieasy.com/directui

Saturday, June 11, 2011 2:38 PM by Indebi

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

If you look at the details of the description "The DirectUI doesn't make use of the native Win32 controls except some complicated control such as edit, listctrl. Instead,It draws controls and widgets on the screen, this kind of interface is now new: "Skinning" has been widely accepted for its cool look and feel, as seen in Microsoft Msn and Media Player."

Basically DirectUI is a low-level framework. It doesn't rely on User...it might use GDI but translating from GDI to another framework (e.g. Direct2D) is easier than translating from User to another Window Manager.

Saturday, June 11, 2011 2:43 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Also, I think what you linked to is a third party tool that is "similar" to DirectUI.

Saturday, June 11, 2011 2:56 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Good post. Deeply thought out, but all your stuff is like that :)

I have been focusing on LightSwitch lately, and if you get a chance, check out my article:

"This Is How LightSwitch Does MVVM"

lightswitchhelpwebsite.com/.../This-Is-How-LightSwitch-Does-MVVM.aspx

Basically, LightSwitch is in line with what you are saying.

Saturday, June 11, 2011 2:58 PM by Michael Washington

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Thanks Michael! I've been following what you've been doing with LightSwitch and do agree that it will be a great stepping stone to RAD in the next Windows version. And it's much better than Access because of the capabilities it provides for "upgrading" to a "full" application.

Saturday, June 11, 2011 3:07 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

What is DirectUI?

Saturday, June 11, 2011 3:53 PM by Mike

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

"Mike" some adventurous souls have been hacking with the leaked M3 build (early OEM build for Window8) and uncovered the Direct UI library which can be invoked using managed code to display an immersive app.

Saturday, June 11, 2011 4:36 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Notes:   WPF does not sit on top of the desktop window manager (DWM).  The DWM is a compositio nengine, not a desktop graphics engine.  You can turn the DWM competley off and WPF applications will still work just fine.  In fact, you can target XP (which has no DWM) with WPF.

WPF and Silverlight are not dependant on user and GDI the way you think they are.  It really is turtles all the way down.  The performance issues in WPF and Silverlight are not due to coupling with GDI and USer. Its more due to object mangment costs and how they render.

Yes, I work there.

Saturday, June 11, 2011 4:56 PM by Ricky

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

You're right...I flubbed on some of my statements. Thanks for clarifying for me. I do remember now that DWM is not present on XP. I'll update and correct.

Saturday, June 11, 2011 5:08 PM by Mike Brown

# Gianluca Cucco Blog » Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

Pingback from  Gianluca Cucco Blog » Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

I'm afraid to say that, since you didn't understand that DirectX is used natively, and that concomitantly the GPU is used to render WPF, it takes much of the punch out of your article. You presented this mysterious DirectUI as doing what WPF has already been doing BOTH with User32 and GDI:

<There are still performance issues in WPF…there are performance issues in Silverlight on Windows Phone. This is because when you go far enough down it’s not turtles all the way. It’s still the same old stuff that Windows has been hobbled with since version 1. User and GDI.

Until now. Windows 8 introduces DirectUI. And with Direct UI the gauntlet has been thrown down.>

Every beginning WPF makes it clear that GDI/+ is completely abandoned by WPF, while User32 is abandoned for all rendering of controls (like the battleship gray button, all other controls), but still is in the picture for other issues. As MacDonald's WPF book says (p. 2):

"One component that’s still in the picture (***to a limited extent***) is User32. That’s because WPF still relies on User32 for certain services, such as ***handling and routing input and sorting out which application owns which portion of screen*** real estate. However, all the drawing is funneled through DirectX."

But nonetheless, I am still hopeful that DirectUI represents something great and even improved for WPF (like going native compilation?!), and many other points made here I hope are right in saying MS is fully embracing XAML.  Best.

Sunday, June 12, 2011 7:50 PM by Eclipsoft

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

@Eclipsoft Did you read the update...people make mistakes and I acknowledged it when "Ricky" corrected me.

That being said, there are three points that I was attempting to make (and I think I did):

1. Microsoft has invested a lot over the years in moving toward markup driven UI.

2. Legacy support has prevented them from fully embracing it. Virtualization presents itself as a chance to sever the ties that bind them.

3. WPF/Silverlight have a lot of traction within the ecosystem. Microsoft isn't about to throw that out the window. While there may be some tweaks to the framework, the skills will port for the most part.

Sunday, June 12, 2011 8:11 PM by Mike Brown

# re: Silverlight: The Rumors of My Death Have Been Greatly Exaggerated!

I tried to summarise the information coming out about the new Jupiter programming model

davidburela.wordpress.com/.../premature-cries-of-silverlight-wpf-skill-loss-windows-8-supports-all-programming-models

Quick Summary:

* Windows 8 supports applications being built in C# / XAML / VB.Net / C++ / HTML+JS.

* The new UI framework ‘Jupiter’ allows applications to be written in your language of choice. This is similar to how the .Net framework allowed people to code against the framework in their language of choice.

* Jupiter seems to be a ‘Next generation’ XAML based framework

Monday, June 13, 2011 10:25 PM by David Burela

Leave a Comment

(required) 
(required) 
(optional)
(required)