Windows 8 Store Applications Vs. WPF Applications

Today’s Windows Developer faces a crucial decision: whether to build for the new (shiny!) Windows 8 Store or to build for the Desktop.  There are significant advantages to each, and they are, more or less, mutually exclusive.

Let’s start with some definitions:

Windows 8 Store Applications are distributed through (surprise!) the Windows 8 Store; Start Screenthey have the pretty tiles that appear in your start screen, and they only run on Windows 8

W8 Store applications can communicate with one another through charms (sharing, searching, etc.) and can, if you are good and if you are lucky, make you serious money through the Windows Store. 

Windows Desktop applications, on the other hand,  run on the desktop in Windows 8 (and note that this means they run only on Intel boxes, not ARM, which means they don’t run, for example, on the Surface, but only on the Surface Pro.) 

They are backward compatible with Windows 7, and while they can look a lot like Windows 8 Store applications (through the use of custom controls and careful programming) they are quite different.  For example, they do not have charms and they do not have the same life-cycle as Windows 8 Store applications.  They are, in short, Windows 7 applications running, if you want, on Windows 8.

Windows 8 Store applications are created in Visual Studio 2012 using the Windows 8 Store Application Templates.  Windows Desktop applications are developed in any number of ways, the most common of which may be WPF. 

Comparing the Platforms

If you want to put an application in the store, there is no choice: you must go with the Windows 8 Store application.  This path lets you charge for your application, create trial-ware, create in-app advertising, etc.

If you want to build an enterprise application, however, the answer is considerably less obvious. 

On the one hand, WPF offers a great variety of controls, runs on Windows 7 and there are dozens of third party controls (e.g., from Telerik) that can greatly simplify and enhance your application. 

On the other hand, Windows 8 applications are very slick, are touch-centric and have generated a great deal of interest; especially for those running Windows 8 on slates, tablets, etc.  And while there are fewer third party controls, more are coming every day.

One of the bigger stumbling blocks in using Windows 8 Store applications for the Enterprise is that Microsoft has promised but not yet delivered, a coherent and simple answer for how to deploy these applications.  Clearly deployment through the Windows Store is not an adequate answer for Enterprise apps.  Side-loading (loading directly from a disk or by downloading) may be a good answer, as may Enterprise-specific stores (stores that sit on a given company’s server).  We don’t yet know what the final strategy will be.

On the other hand, WPF offers click-once deployment, making the entire issue of installing the application simple and straight forward.

WPF programmers are also given a great deal more power than Windows 8 Store Application programmers. This is a mixed blessing, but when you need it, not having the restrictions present in W8 Store programming can be liberating. 

For example, in WPF you have full access to the Operating System.  That means you can write a file anywhere, at any time.  Not so with W8 Store apps, where your access is restricted to safe locations.  The restriction makes sense: you don’t want an application from the store piddling all over your file system, but Enterprise applications are, by their definition, highly trusted, and sometimes you do want to write to c:\temp – which is not possible with W8 Store apps.

WPF programmers also enjoy a robust development platform that is fully mature.  Win 8 App development is still in its first cycle, and is missing some key features such as Data Triggers and solid data validation with fallback values. 

Transitioning from WPF to Win 8

Many programmers are either experimenting with Win 8 Store apps, or are making the transition.  For WPF programmers, it is a relatively painless transition, because the underlying XAML and architectural approach are very much the same.  That said, there is much to learn. 

Among the topics that WPF application developers need to learn about when making this transition are:

  • Managing application life cycle (e.g., restoring state to restarted apps)
  • Charms and Contracts  (searching, sharing, etc.)
  • Live Tiles and Notifications (Windows 8 provides new ways to send information to the user,  about apps even when they are not running)
  • Interacting with sensors (e.g., Gyroscope, etc.)
  • Asynchronous Programming (which is pervasive in Win 8 App Store programming)
  • Notifications (live tiles and toast, as mentioned above)

The need to learn this new material may very much make the decision for many developers. There will be those who are proficient in WPF who really don’t want to tackle a new platform, and there will be those who can’t wait to dig into the new material. 

It is early days for Windows 8, and if what we’re hearing about Blue is accurate, it is an evolving platform.  You can expect that Enterprise developers will be keeping an eye on the platform, with some early adopters jumping now, some holding back until it matures, and some cling to WPF long after Windows 8 apps have dominated both the consumer and the Enterprise market.

Share

About Jesse Liberty

Jesse Liberty is a Master Consultant for Falafel Software, and has three decades of experience writing and delivering software projects. He is the author of 2 dozen books and multiple Pluralsight courses, and has been a Technical Evangelist for Telerik and for Microsoft, a Distinguished Software Engineer for AT&T, a VP for Information Services for Citibank and a Software Architect for PBS.
This entry was posted in Windows 8, WPF, XAML. Bookmark the permalink.

17 Responses to Windows 8 Store Applications Vs. WPF Applications

  1. Appreciating the hard work you put into your blog and detailed information you
    present. It’s great to come across a blog every once in a while that
    isn’t the same old rehashed material. Wonderful read! I’ve saved your site and I’m adding your
    RSS feeds to my Google account.

  2. Cyril Gago says:

    These are really great ideas in about blogging.
    You have touched some pleasant factors here.
    Any way keep up wrinting.

  3. Responsive Web Design is the method of web design that suits any of
    them either. This means, that the developers and coders have
    to foresee the viewing environments, which will be used to guide online visitors.

  4. Chris says:

    I can’t understand why Microsoft that made this excellent dominating OS that its key advantage is the fully customize open sandbox environment mixed with total support and API tools
    and goose chase after Apple that does exactly the opposite way instead of bringing their advantage to the game.
    I’m sure that if the strategy for mobile and modern windows 8 apps was just like Windows – Microsoft piece of the pie was a lot bigger.

  5. Your pluralsight courses are very well done and I have learned much about Windows8 development. Especially the data binding modules, they really put in all together from start to finish.

    I am wondering why you chose to use SQLite instead of SQL CE 4.0?

    Thanks for your great courses and I hope you continue to create more.

  6. Pingback: The Daily Six Pack: April 12, 2013 | Dirk Strauss

  7. Pingback: Windows Store Developer Links – 2013-04-11 | Dan Rigby

  8. Richard says:

    I agree with Bryan – the additional cost makes side-loading LOB apps unappealing, and deploying them via the Windows store is a non-starter. Who wants to wait two weeks for Microsoft to review a bug-fix to your business-critical app before you can deploy it to your computers?!

    Add in the fact that store apps have limited file-system access, and absolutely no database access, and the winner is pretty obvious.

  9. ReBoot says:

    “If you want to put an application in the store, there is no choice: you must go with the Windows 8 Store application.” is actally wrong. There’s stuff like MS Office and AoE online there. They just don’t get paid and updated through the store.

  10. Pedro says:

    I still think WPF to be the best for the Enterprise Market, many companys still have XP and Windows 7 because the costs to migrate to W8 and the impact of UI change to the users is great.

    From a startup point of view, why not start from W8 now?! So..
    – Starting a new business or venture for mobile, media… W8
    – For establish enterprises WPF.

    • Bryan says:

      Unless you want to use Visual Studio to deploy your internal LOB apps, which might be feasible for a really small startup, WPF would still likely be a better option financially compared to sideloading. You need an AD domain, all Win8 pro or enterprise, and you have to purchase special sideloading keys. Last I heard those were $30 each and only available in packs of 100 so just the keys would run you a minimum of $3000 not counting all the supporting infrastructure.

  11. Bryan says:

    IMHO, unless your “enterprise” is large enough to justify the exorbitant sideloading tax MSFT imposes on sideloaders you are better off with WPF instead of store apps.

  12. brian says:

    There are only two questions to answer:

    1. Do you want to write an applications that can be used by countless millions of XP, Vista, 7 and Windows 8 users?

    2. Do you want to give a large slice of your sales revenue to Microsoft.

    Some decisions are very easy!

  13. Pingback: Windows 8 Store Applications Vs. WPF Applications | Sriramjithendra Nidumolu

  14. Jens says:

    WP8 Apps will be never dominate the Enterprise Markt.
    Only when Microsoft give up Marktplace concept for this kind of Apps.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>