Microsoft is making a big bet with Win 8 that they can give you the power of Windows but also give you the ease of touch centric UI in one package. This is in contrast to the approach that Apple appears to be taking with iOS and OS X. With the iPad you get iOS period and with Macbooks you get OS X.
Microsoft attempts to do this by offering an “alternate interface” which includes a new “Start” screen and a new app model. When you push the Windows key, at least in the Preview build, you will see the new start screen as shown below. While it appears any app can have a tile on the Start screen only the apps built on the Windows Runtime fully benefit from the richness of the new app model which leads us to a discussion of what the Windows Runtime is
Windows Runtime – what is it and what does it mean
Take the learnings from the .NET Framework, the iPad, XAML/SL/WPF, and the web (HTML5/JS) and blend it together and MS tried to bake the output into WinRT (Windows Runtime).
Windows RT is an app container that forces apps to do things in a certain way (the simple example is it dictates a specific way to pick files). It isn’t a managed runtime in the way the CLR (no garbage collection) is, but provides a sandbox to provide certain protections.
Now I am sure that I am in the very least describing things wrong and in the worst way off – but this is the way I have interpreted all my discussions with MS at their booths and in the sessions so far.
Apps built on top of WinRT are called “Metro style” apps. From Win 8 on we will have Metro style apps which are built on top of Win RT and your normal desktop apps which aren’t. Windows from version 8 on will guarantee that your “Metro” apps will run across all Windows hardware devices (Intel and ARM for now). You will not have the same guarantee for your Desktop apps built with straight C++, WPF, Windows Forms, etc… They will run on Intel based Windows 8 systems, but won’t on ARM systems unless you recompile for ARM which would mean things like the .NET Framework would need to be developed for ARM systems. A good example of this is that there are two IE10s on the box – a Metro style IE10 and a Desktop IE10. I was told that both Intel and ARM will have both versions. The Metro version will not allow plug-ins like Silverlight or Flash but the desktop version will. What isn’t clear is if Silverlight will be ported to ARM. So it is unclear if on the Desktop version of IE10 on ARM versions of Windows your Silverlight app will be able to run. I talked to several folks and none knew for sure – while that isn’t definitive it certainly is telling. Which leads us to the next topic – before you read that – go read the following blogs from Doug Seven – he knows more, describes it better, and validates with better descriptions the way I described and think about WinRT and everything else. He also provides some balance to all those who cry out that things are dead – which everyone needs to hear, understand, and repeat…. so read it…..now!
Miguel de Icaza also has a good post on WinRT – http://tirania.org/blog/archive/2011/Sep-15.html
Silverlight is marginalized – what that means and what it doesn’t mean
Silverlight’s scope and focus has definitely changed since it was launched. That is to be expected as it was conceived and launched in a day when Flash ruled and seemed poised to take over web development. That has subsequently shifted and as a result so has the positioning of Silverlight and MS’s direction for it.
It became clear when Apple prevented other runtimes from landing on iOS that Silverlight wasn’t going to be the platform to reach them all (there is much to be said on the subject of write once, run everywhere, but that will have to wait for another blog post). Silverlight apps will likely never run on Windows based ARM devices. Theyalso won’t run in “Metro” mode on any version of Windows it wouldn’t appear.
That said Silverlight will continue on in some form as the core development story for Windows Phone. Additionally some of the key building blocks of SL like XAML and C# are key parts of the next generation dev story for Windows 8 so devs don’t need to worry about the obsoleting of their new skills. In fact a colleague of mine is finishing up porting his Silverlight Windows Phone Solitaire game to a Metro Win 8 app. It isn’t clear though what future Silverlight for Mac will have beyond the 10 year support guarantee for Silverlight 5.
As a result of this new information in my opinion development teams should focus on the purpose of their apps and what experiences make the most sense from a business perspective to develop. It may be that for some devices a simple HTML 5 interface makes the most sense (and the best business case). In other cases native apps for Windows, iOS, Mac, etc… may be more appealing and provide the best business case. An example of where the business proposition may point you to a native app is the “Charms” feature in Windows 8 – it makes searching and sharing with your app work beautifully and integrate into the Windows experience in a very seamless way. The key is understanding what user experiences are being targeted, the business value they hold, and then you can determine what technology solution makes the most sense to use.
TFS 11 – Fit for Purpose Scenarios
The last technology update I want to cover is one I have long been a fan of. TFS 11 brings a lot of improvements in Testing, Version Control, Developer Collaboration, and Agile Planning. One of their goals in this release was to deliver some “fit for purpose” scenarios (Brian Harry talks about that – http://blogs.msdn.com/b/bharry/archive/2011/06/14/agile-project-management-in-visual-studio-alm-v-next.aspx). This led to a rewrite of the TFS Web Access interface. It has become much more full featured. No longer will we be forced to tell Project Managers that they need to install Team Explorer to do things like give team members permission to the project. Microsoft has also added significant Agile planning capabilities in this version of Web Access. For those familiar with Urban Turtle it gives you those same capabilities and then some. One of the interesting elements that they added is the ability to have multiple teams in a team project and easily have backlogs for each one of those teams available in the interface. They have also added a hosted version of TFS that they run which can be found today at http://tfspreview.com . The hosted TFS is invitation only for now, but will continue to be opened up over time. An interesting point with hosted TFS is that they did the work to disconnect TFS from Active Directory – authentication to TFS in the hosted version uses Live ID.
One of the tag lines this week has been Windows Reimagined. After working with the OS a little and seeing the architectural changes that they are proposing they are definitely looking to do that. They also seem to be on the right track. I have a Windows 7 tablet at home and the Windows 8 UI is a significant step up from a touch perspective even at this early stage of product development. Time will tell if the approach of having “new” Windows and “old” Windows together will work. Microsoft’s challenge to developers is to reimagine the way they build apps and their WinRT/Metro platform pushes them that way – not just from a technology standpoint, but also from a design perspective. Windows has long been the bastion of “battleship gray” apps – it will be interesting to see how easily app developers will give up their love of menus and toolbars and embrace the new “Metro” paradigm.