UPDATE: The BUILD keynote cleared up a LOT of these concerns /2011/09/14/build-keynote-day-1metro-experience-with-jupiter-xaml-and-html5js/
- 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
- I’m more excited about the new possibilities coming in the new Jupiter XAML programming model than the misconception that HTML+JS is the only way to create apps.
Digging into the Windows 8 leak
A few people have been digging into the Windows 8 Milestone 3 leak and peeking into the UI framework and .dlls that exist. The most vocal of these have been @JoseFajardo and people in this forum thread http://forums.mydigitallife.info/threads/26404-Windows-8-(7955)-Findings-in-M3-Leak
The first piece of the puzzle comes from the new application model for creating applications. There are a number of codenames here that need to be sorted out
- DirectUI: The underlying framework that creates, draws the visual elements on the screen.
- Jupiter: The new packaging format of applications on Windows 8. Allows apps to be written in language of choice.
- Immersive applications: Current theory is that these are apps that execute within the ‘new shell’ in windows 8. And are aware of being split paned and resized. Like was shown with the RSS feed reader.
Direct UI has been around since Windows Vista days. Previous is seemed to be focused around UI basics for the OS such as theming app windows in the 'new vista style' vs. classic theming in WinXP. http://blog.vistastylebuilder.com/?tag=directui
Now it seems that Direct UI is being overhauled to have additional functionality to load XAML applications, new animations, etc.
Evidence of new animation properties
interesting rumor fact : WP8 rumored to be codenamed Apollo, and Apollo is the son of Jupiter :) Jupiter being the new UI framework of Win8
...Jupiter is shaping up to be a very very lean SL/WPF implementation
...your SL/WPF skills will be invaluable for DirectUI apps, and you get a new framework that is seriously lean!!!
DirectUI.dll is basically Silverlight (agcore.dll) ported to Windows/WinRT
Jose Fajardo has been a great source of information on Windows 8 leaks. From information he has dug up, as well as information on the forums, it seems that the new Jupiter programming API is a mashup between WPF & Silverlight.
As far as I can see, Jupiter is not Silverlight nor WPF, its another kind of framework that kinda similar or compatible to Silverlight/WPF code.
So Sinofsky is right, that 'Silverlight', as we know it, is still a Browser/Desktop thing.
What he didn't say is, the 'Jupiter' framework will enable you to leverage your Silverlight/.NET skills to write Immersive (or desktop) applications in XAML/C#/VB/C++, its very very similar, but not exactly the same thing.
The situation is similar to the relationship of Silverlight and WPF and Silverlight for Phone, you need to create different project in VS, then you can write very similar UI/code, even sharing most of your portable code in a common library, but the underlying technology are still very different.
While the new Jupiter programming model may not be a direct continuation of WPF or Silverlight it does seem to have a lot of code from both technologies. Jupiter instead seems to be a ‘Next generation’ XAML based framework. A framework that can be targeted against by all main current languages used by the typical .Net developer (C#, HTML, etc)
*speculation* This could be because of the calls from the development community to make WPF & Silverlight more aligned. Perhaps we’ll see an updated ‘Silverlight’ framework when Windows Phone 8 is released that is compatible with Jupiter.
Creating applications with Jupiter
As further evidence that Jupiter applications can be created with your language of choice, and that it has roots in Silverlight, here are some examples of how to create applications.
C# & XAML
Here is an example of using C# to invoke a new Jupiter based application. The really interesting thing to notice here is that the loading screen has the iconic Silverlight loading animation!
Here is a second example where they were able to get XAML content to load within a Jupiter application
*update* Naive User was able to get simple databinding working
Example of an application being created in C++ with a single call to CreateImmersiveWindowFunc
There are some initial attempts at getting HTML working with the new frameworks. The apps and manifests have been created, but a few more hooks may be required to get a fully working version
There is some confusion over the distinction between a “Jupiter app” and an “Immersive app”. Immersive apps require a call to CreateImmersiveWindow and can make calls to the new immersive namespace
Immersive applications are ones that were shown to live inside of the new Windows 8 shell. Examples of functions that an immersive app can do can be seen with the RSS reader app. When it was docked and resized, it knew to display its data in a different format.
- Classic / Jupiter applications will run in the ‘classic windows’ desktop view that was seen when they fired up excel
- Immersive applications will be embedded within the new shell
Will this work for existing applications?
There is evidence that existing applications can be wrapped up in the new packaging format.
So while existing applications may not run with the new Direct UI framework, it seems they will still be able to be packaged and distributed through the Windows 8 App store. This was discovered by Long Zheng a few months ago.
The AppX format is universal enough so it appears to work for everything from native Win32 applications to framework-based applications (WPF, Silverlight) and even *gasp* web applications. Games are also supported.
While Microsoft only showed off the HTML hooks into Jupiter, I am a LOT more excited about the upcoming XAML based framework.
If you are an existing WPF, Silverlight or Windows Phone 7 developer, it seems that your XAML based skills will carry across fine to the new development framework on Windows 8.
My thoughts are that Microsoft announced that applications can be created in HTML in the same way that they announced it in WindowsXP with active desktop, and then again in Vista with "HTML based sidebar gadgets". It was a way of saying "hey you can use your existing web skills to create applications on Windows 8.
And that Microsoft plans on unveiling the new Jupiter SL/WPF hybrid framework for all of the "Real developers" at BUILD in 3 months.