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; they 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.
You are so awesome! I do not believe I’ve truly read a single
thing like this before. So good to discover another person with some genuine thoughts on this subject.
Really.. thank you for starting this up. This website is something that’s needed on the web,
someone with a bit of originality!
Thank you for every other magnificent article. Where else may anyone get that kind
of info in such an ideal means of writing? I’ve a presentation next
week, and I’m at the search for such info.
One of the best comparisons which I read about WPF and Store Apps. Very useful and definitive. Keep up.
By your information it is very clear that WPF is not going anywhere for a long time now at least for Enterprise Applications. Store Apps can still be very useful at the advertisement industry, but that too with people chosing to use Windows Tabs which will be very less I guess as of now. But even if this is the problem with Store Apps why would any Enterprise application like the one used in Banking sectors ever migrate to the Store Apps. Microsoft really need to clear things off in case of Store Apps.
May be I don’t understand enough about either WPF nor W8Store apps but,
just a naive question regarding: “and some cling to WPF long after Windows 8 apps have dominated both the consumer and the Enterprise market”
– Wouldn’t be easier to eventually add to WPF the capability to be published to Windows Store (or an Enterprise Store) and also some of the other features (managing app lifecycle, charms & contacts, live tiles & notifs etc) through the .NET FX? That way, everyone will be happy, no?
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.
These are really great ideas in about blogging.
You have touched some pleasant factors here.
Any way keep up wrinting.
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.
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.
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.
im getting sleep of that plural sight courses, i didnt understand anything. I left that thing and now im happily joined in one theater,Now im ticket collector in theatre
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.
No database access? What about SQLite?
No *real* database access. When was the last time your wrote an LOB application which only needed access to a local in-process database?
Store Apps comes with a different approach when it is for Enterprise Applications.
http://codingcave.blogspot.com/2015/05/Windows-Store-Apps-For-LOBs.html
“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.
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.
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.
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.
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!
WP8 Apps will be never dominate the Enterprise Markt.
Only when Microsoft give up Marktplace concept for this kind of Apps.