Resources from my QMSDNUG presentation about WPF Animations

Last night I had the pleasure to demonstrate at the Queensland MSDN user group some of the WPF Animations that we created at NovaMind for our NovaMind Presenter. Here are the open source projects that I have mentioned in my talk:

I have also compiled a couple of WPF Animation Best Practices on stackoverflow a while ago:

http://stackoverflow.com/questions/1780865/wpf-animation-best-practices/4497963#4497963

Finally, you can download the NovaMind 5 file that I used for the presentation here. Simply download it, open it and hit F5 to start the presentation.

If you don’t already have NovaMind 5 installed you can get a a free 30-day trial at www.novamind.com and even when the trial expires you can still use it as a free NovaMind 5 document viewer.

Windows 8 and the (disappointing) new App Store

The curtain has finally lifted. After months of agony for Windows developers, especially those of the Silverlight/WPF sort Microsoft has finally told us what the heck is going on inside that Microsoft complex.

I work for NovaMind and I spent the majority of the last five years developing a Mind Mapping application with WPF. Naturally I am very interested in WPF and the Windows ecosystem and how we can make NovaMind even better on Windows in the future. The silence around what would happen next with Windows 8 and what role WPF/Silverlight would play was simply harmful. Microsoft has spread fear, uncertainty and doubt (FUD) among the developer base. Normally, the FUD strategy is one used against your competitors but in Microsoft’s case they unleashed it, curiously, on their own developers. If someone can see any good in this or indeed any reason, please explain it to me.

Anyway, now Windows 8 has been announced and the announcement has definitely shaken things up but before I even want to talk about Windows 8 I would like to briefly draw your attention to a different Desktop operating system that has recently been updated. Mac OS Lion. Even if you don’t use a Mac it is interesting to see what the other successful consumer operating system is up to.

Mac OS Lion

Apple’s What’s New page on Lion highlights the most important features from a user’s perspective.

Beside the expected improvements for multi-touch, Mac OS Lion also tackles things that have been accepted ‘as is’ for decades. Auto Save, Versioning and Resume all play together to enable applications to move away from the mess that is file management. Manually saving files, managing different versions and having to deal with application/machine states (restarting, closing, restoring etc.) are a thing of the past on Mac (as it should be). These are features that immediately improve every application on the Mac that bothers to implement these features. NovaMind 5 for Mac already supports these and other new Lion features such as official support for full screen as well.

While Microsoft might have attempted to solve some of these issues in their WinFX disaster they have not managed to even begin to solve it in a shipped product [you might say that this is all no big deal but remember that as developers we are very good at things that normal users simply should not have to worry about].

The Mac App Store

There is another big feature in Lion which is of huge importance to a software developer. The new Mac App Store. I don’t have to introduce you to the concept of the App Store – chances are that you already spent a number of dollars on the hugely successful iPhone/iPad App Store – the Mac App Store basically just brings the success of the iPhone App Store to the client. It looks great and has attractive applications in it. As a developer you give 30% of sales to Apple, adhere to very strict rules of what you can and cannot do and hopefully get your app in front of millions.

Apple announced their App Store a while ago and instead of doing what Microsoft would do and keeping the App Store exclusive to the new operating system they instead did the opposite and released the App Store via the automatic System Update (like Windows Update) to millions of Mac users in the world. And to make sure that everyone knew that the App Store is there and to teach everyone how to use it, Apple released the new operating system via the App Store itself. If a user didn’t just buy a new Mac and they are running Lion then they purchased Lion via the App Store. Not only did users update to the latest OS very quickly (no wonder, it cost $29 and has all these great aforementioned features) but every user who did so signed up for the App Store, entered their payment details and purchased one App on the store successfully (talk about a great tutorial).

As a software developer you cannot ask for much more. Not only did Apple put the App Store in front of as many customers as possible but they also taught them to use it and made sure that the App Store wasn’t just a forgotten icon hidden away somewhere (Microsoft Marketplace anyone?).

In conclusion, Lion brought many features to the desktop that are of immediate use to client developers and Apple introduced the best client App Store in the world to help you to be successful.

This is the kind of application ecosystem Windows developers can only dream about.

Needless to say I was was very excited about the Windows 8 App Store. I hoped that not only would Microsoft catch up with Lion but they would also put the App Store in front of half a billion users (anyone feel light headed?). They would revive the Windows ecosystem by sparking a huge amount of innovation on the client (who doesn’t want to sell software to that many users?). They would solve one of the biggest pains for users on Windows (finding, trusting and installing software). They would earn a load of money and become the new ‘King of the Desktop’. Maybe they would even spark a true ‘Return to the Desktop’.

Sadly, none of that seems likely to happen.

Digesting Windows 8

Since I was not at the Build conference in person I have followed the announcements via the web. I’ve watched the live stream, joined the conversation on Twitter (@PatrickKlug), downloaded and tried the Windows 8 Preview release and kept up with the chit chat on the web.

(If you are a developer and want to find out more of the technical aspects I would recommend that you read Laurent Bugnion’s post on the matter – he sums it up nicely:

My thoughts about Build, Windows 8 , WinRT, XAML and Silverlight)

Windows 8 essentially introduces a new front end to the user. This front end is designed for touch screens and designed to be immersive (full screen). It is fast, nicely animated, follows the great Metro principles in Windows Phone 7 and is the default thing users see when they start their machine.This new front end is also designed for both traditional desktops/tablets (based on x86 and x64 processors) and future iPad-like tablets (based on ARM processors). It seems that Microsoft has not clearly stated if the traditional desktop will be available on ARM based machines so Metro could be all you get in this instance (it also seems that Metro Internet Explorer does not support Silverlight or Flash plugins).

This new front end also has an integrated App Store which allows you to purchase apps which are being created specifically for this new front end. You can use apps you purchase on up to five of your machines and the new front end also integrates with your Windows Live account and synchronizes files and applications for free.

As Microsoft puts it, this is the biggest change in Windows since Windows was invented and they do not exaggerate. This is the biggest change.

Clearly Microsoft paid attention to the iPad and the emerging tablet market and realized that Windows on a tablet needs to be a whole new experience in order to be successful. They also seemed to realize that no one wants a new Windows Compact or yet another flavor of Windows so the decision to have Windows 8 for both tablets and desktops is fantastic. Especially considering that with touch screen desktops the line between tablets and desktops is blurry. In summary I think they did a great job to address this market and the Metro front end looks great for touch screen devices.

One thing is clear after looking at Windows 8. Metro is a new front-end with a new framework and a new user experience. Metro is for immersive apps that are created for touch. It is not meant for porting existing apps or as the replacement for the traditional Desktop.

What about the Desktop?

Essentially this is the question I ask myself and that I hear from a lot of developers after digesting the Windows 8 announcement. For developers there doesn’t seem to be much at all. I’ve seen developers try to use the new frameworks for Metro on the Desktop and I think some might succeed but this doesn’t seem to be what Microsoft has in mind.

What significant improvements does Windows 8 bring to the traditional desktop? Mac OS Lion brought them en-masse. How much innovation does Windows 8 bring to the desktop?

Here is a list of ‘New Features’ in Windows 8 that I compiled from Microsoft’s Building Windows 8 blog:

All good things. Most of the features mentioned are probably for high-end users but there are some really good general features in there such as the improved boot up time and better protection against malware. Unfortunately, apart from the App Store announcement, there is so far not much that is exciting for a desktop client development and for third party applications such as NovaMind.

The App Store

Unfortunately the App Store in Windows 8 is primarily for Metro apps. Traditional desktop applications can be listed on the store but the store will simply guide the user to the vendor’s website. In the keynote they didn’t talk much about this so here is the relevant part taken from the whole keynote transcript:

ANTOINE LEBLOND: People have been writing Win32 apps, there are millions — I mean, it’s a big part of what makes Windows Windows is these millions of apps that people have written.

So, I’m going to go back to the store here and show you something. We actually have — I’m going to scroll over. Let’s see, where’s the finance section? You’ll notice down at the bottom left here, there’s an app called Quicken. It’s not a Metro style app, it’s a desktop app. I’m going to click on it. Here’s the product, here’s an app description page for Quicken.

So, what we’re going to do is we’re actually going to list Win32 apps as well as Metro style apps in the store. One interesting part of this is that we’re not actually going to require — because there has been tons of investment around these things, and all these apps, you know, these big apps, there’s websites where they get sold and they have their own licensing models and all those things.

We’re not going to require people to actually rewrite those things in order to have them in the store. We’re not going to force them to use our licensing.

STEVEN SINOFSKY: Right. (Applause.) We love the ecosystem that’s around Windows applications, and we want to make sure that it blossoms in this world as well.

ANTOINE LEBLOND: Exactly. So, in essence, what we’re doing here is we’re giving these Win32 apps a free listing service and exposing them all of the hundreds of millions of Windows users.

Essentially they are providing a free listing service for existing Windows applications. You don’t have to change anything, users will just be pointed to your website and it is free.

I cannot sufficiently describe my disappointment with this. Instead of applauding them I cringed when I heard this. There is just so much wrong with this.

Trust and quality control

How can Microsoft ever guarantee quality or make sure that there is no malware if the users are directed to a website which is outside Microsoft’s control? The App Store cannot work if users can’t trust the applications listed. The whole list becomes meaningless. For the store to be effective they would need to not only check if the App is useful but also check the user interface. Is the app easy to use? Does it adhere to design guidelines? Is the technical part alright? Does it access folders it shouldn’t? Is it malware or harmful in any way. Does it have good enough performance?

Apple goes to extraordinary lengths to make sure everything is right. They rather ban an app from the store than have the App Store compromised by hosting an application with sub-par experience. They go so far as to ban all apps that haven’t been written in Objective-C right at the start to make sure that Apps in the Mac App Store feel and behave like true Mac apps (no Java or other cross platform apps). This might seem harsh and is sometimes unfair but for the user the result is extremely attractive and it does drive the Mac platform forward as you have to create a good experience to be able to compete.

Even if I give Microsoft the benefit of the doubt and assume that they will do some sort of quality control (otherwise we will be swamped with RAM defragers and Registry cleaners and apps that demonstrate very well why Windows occasionally sucks)  the fact remains that if they don’t control the purchase, download, installation and licensing they cannot guarantee the quality of the applications and users cannot trust the App Store.

Ease of use, ease of installation/updates

Secondly by pointing users to the vendor’s website Microsoft does not solve one of the most painful experiences on Windows. The installation and updating of applications. Users will still need to find the download (a lot of companies don’t provide a single click download experience as we do). Users need to deal with the absolutely horrible installation situation on Windows (I have ranted about this before here and yes, I know Stackoverflow is not the best place for this). Users need to deal with a thousand different software license agreements and update mechanisms.

In summary, users don’t get any of the benefits that the Mac App Store provides:

  • trust
  • quality control (very strict rules on what is listed in the App Store)
  • ease of use
  • ease of installation/updates
  • unified license agreements

And Microsoft, curiously, doesn’t want 30% of our sales and doesn’t want to bring great Desktop applications to half a billion users.

If anything could revive innovation on the client then it is an official trustworthy Windows App Store. Sadly, Windows 8 seems to focus on Metro, touch devices and tablets and seems to leave the traditional Desktop to wither away without providing any significant improvements or new innovations.