Microsoft officials are remaining adamant that they plan to stay mum about the details regarding the Windows 8 developer story until mid-September, when the company holds its Build conference. But that doesn’t mean that developers who are curious, if not outright anxious, about the future of .Net and Silverlight are sittling idly by waiting for all to be revealed.
Several devs have weighed in over the past couple of weeks with their best guesses as to what Microsoft is crafting on the development-framework side of the Windows 8 house. Meanwhile, I’ve been interviewing some of those taking apart Microsoft Windows 8 Milestone 3 (M3) internal builds that have leaked in the hopes of piecing what developers should expect when porting and writing apps for Windows 8, which is expected to come to market in 2012.
As is evident from the e-mail Q&A’s I’ve conducted with three of these individuals in the past week, it’s not easy to tell exactly what Microsoft is planning from the leaked bits in regards to the so-called Jupiter Windows 8 UI library; the “native” HTML framework that will rely on the Internet Explorer rendering engine; and/or the future of the Common Language Runtime (CLR) at the heart of the .Net Framework. But there are some clues.
The three developers I contacted were:
Michael Brown, Microsoft MVP in Client Application Development, and President Kharasoft, Inc., blogging at http://azurecoding.net/blogs/brownie, and tweeting at @browniepoints. (Brown said that even though he’s a Microsoft Most Valuable Professional, “none of this information was provided to me through the MVP program; it was gathered through other public sources.”)
Jose Fajardo, Senior Developer involved with Silverlight “and other cool things,” who blogs at http://advertboy.wordpress.com, and tweets at @josefajardo.
Jack Ukleja, Software Architect at Device Logic (@DeviceLogic), and tweeting at @JackUkleja
Here are my questions and their answers:
1. I’m still trying to make sense of “Jupiter” — the layer that supposedly will provide .Net developers with a managed code XAML library for writing Windows 8 applications. Do you think Jupiter is simply the name for Win8’s DirectUI?
Brown: At first glance, it’s easy to muddle the two (Jupiter and DirectUI) up. But digging deeper it seems that Jupiter might be the so-called Windows Runtime. DirectUI is a graphic library that sits on Jupiter. In current terms, Windows Runtime is like the .NET CLR (common language runtime) and Direct UI is like WPF. It doesn’t end at analogy either. DirectUI has many of the elements that are present in WPF and Silverlight.
Fajardo: There is definitely no direct correlation between Jupiter and DirectUI. Even in the code that we’ve happened to find that mentions DirectUI there is no mention of Jupiter. All I know regarding this is that there are references throughout Microsoft’s code base of a secret UIFramework that declaratively marks up its UI as xml (using a DUIXML ).
What we know now is that in Windows 8 there seems to be a “Windows Runtime” API that is being built that has a DirectUI namespace that contains a lot of very similar code to what is found in WPF/Silverlight/WPF (more so from Silverlight). It’s not exactly the same code, but rather a very lean, refactored, well thought through interface. Has this replaced the pre DirectUI “duixml + code” ? Or will this new version be an extension of what was always there + the best bits of WPF/SL/WP7 (refactored) ?
We don’t know the answers to any of those questions, and we don’t even know if Build will answer those! I cannot confidently say what Jupiter is (sorry).
Ukleja: DirectUI is most likely Jupiter, but its also possible that DirectUI is a component of a new application framework…lets call it “Windows Foundation”. After some poking around, (I’ve found that) DirectUI (in XP) seems to be a fairly substantial C++ library that paints the UI controls directly to a “canvas” using GDI+. The API hints that it can even load UI designs from XML.
DirectUI (in Windows 8) on the other hand is clearly a close cousin to WPF/SL (extremely similar APIs, XAML based etc), so on a technical level the two APIs have no relation. BUT… they are both children of WinDiv and the evidence shows DirectUI (Win8) is being used as a replacement for DirectU I(XP). This is pretty exciting - it means the Windows team will finally have the tools to bring the Windows UI out of the stone age! (Ever wondered why the Font dialog box didnt change for 45 years?)
2. If I am a .Net/Silverlight developer, why should I care about Jupiter? What’s it going to mean to me in the Win 8 timeframe?
Brown: As a .NET developer you care about Jupiter because it is in effect the new host for .NET applications on Windows. What’s really exciting about this is that the Windows Runtime has some interesting qualities that aren’t present in today’s CLR. Namely, it appears that Jupiter allows .NET applications to easily leverage native code as if it is a .NET assembly. What this means is that what we know as the .NET framework can be implemented in a language like C++ that targets the machine directly and still be used by a .NET application. In fact, it appears that this is what is happening. For example DirectUI appears to be a native library.
Fajardo: There appears to be a new Windows API that developers can use to interact with Windows (Hardware, services, UI). This appears to be called WindowsRuntime (WindowsRT).
In the current windows world we interact with windows through Win32 API’s. In the new world it’s looking like the new API is WinRT. The API appears to be exposed to the managed world through metadata files found in “System32\WinMetaData”
What’s also important to note is this new API shares similar features/interfaces to WPF/Silverlight/WP7. As I’ve mentioned above it appears thou a group of people have taken bits of WPF/SL/WP7 and refactored them yielding a very lean, performant, developer friendly api, thou in a lot of cases great reduced in functionality.
I’ve done some preliminary analysis of the differences of some of the features across WPF / Silverlight / Windows Phone 7 Silverlight compared to Windows 8 WinRT/WinMD. The example here is looking at the input events across all three (Touch/Gesture/Keyboard/Mouse/Pen etc.) It’s interesting the difference in the API across the UI frameworks, quite eye opening in fact ..
Ukleja: Jupiter includes “XAML”-like approach for building apps. In fact the evidence so far indicates DirectUI API is a close cousin of WPF/SL, so SL/WPF devs will be immediately familiar with it. Assuming it ends up shipping with Win 8 it means you have a third option for building apps, potentially one that runs smoother and integrates nicely with all Win 8 features.
3. Do you think XNA developers should/will have any interest in Jupiter? Why/why not?
Brown: I think Jupiter is the most important thing that has happened for ANY .NET developer. Having the majority of your application, the framework that supports it, running as native code gives a performance boost across the board. The question is what frameworks will be ported to native code. And if not, how will they fit into the new ecosystem?
Fajardo: Today in the world of WP7 and Silverlight, we can mix XNA with Silverlight. It’s definitely easier to build forms based UI in Silverlight over XNA e.g. data collection screens, wizards etc. Here’s what we know from the Win8 leaked bits: There are Windows Store bits in Win 8; references of allowing games in the store; and XNA can be used for writing games.
Ukleja: It depends on whether XNA (or even WPF/SL/D3D) interop is going to be supported by DirectUI from day one. These “airspace” issues have long dogged the integration of XNA/WPF/SL/D3D apps. Its a complicated problem and it would not suprise me if they do not tackle it in V1. If interop is supported then DirectUI will offer a great way to build UI whilst leaving the heavy 3D rendering to XNA. (This scenario is on the cards to be supported by WPF/SL.vNext so that may also influence things…).
4. Do you believe that Windows Phone 7 apps written using Silverlight and XNA will automatically run on Windows 8? If so, why do you believe this? If not, why not?
Brown: That’s hard to say. Think of the fact that an app written for the Silverlight Web plugin won’t necessarily run directly in Windows Phone 7. You have to target it directly. Also one would assume that an app compiled for Intel would have to be re-compiled for ARM (similar to how an application that targets X64 won’t run on 32-Bit Windows). How involved that process is depends on how the framework changes.
(continued on next page)
So.. Is there a future for Silverlight and WPF? Go to the next page for more…




