Rockford Lhotka's Blog

Home | | CSLA .NET

 Sunday, March 02, 2014
« Top Win8/WinRT apps | Main | Bye Bye Lumia 1520 »

In my last post my focus was on listing the numerous WinRT apps I use on a regular basis – many of which, if I couldn’t get them on Win8 would drive me to carry an iPad. I’m personally not just a software developer, I’m a user of computing as well.

One line, a sensation-maker, in my post was that I think Windows developers who aren’t using WinRT apps are doing their ultimate users a disservice. This doesn’t apply to web developers or other people who aren’t developing actual Windows applications, but it surely applies to people living today in the legacy WPF, SL, and Windows Forms technologies.

The thing is, I made no effort to describe why I believe that to be true, because the focus of that post was to list useful apps.

So what did I mean by that comment?

Here’s the thing. As someone who does use a lot of WinRT apps I can say that a lot of them suck. I’ve divided the suckage into three categories.

Some apps are obviously built by pure mobile developers, who have no comprehension of keyboard/mouse or productivity on anything but a tablet. So their apps are sometimes pretty good on a tablet, but are virtually useless on a laptop or desktop. Because I use all three types of device with pretty much every app, I find that these mobile-only or mobile-first apps just suck. I might use them on my tablet, but they are always pretty secondary to more complete apps because they aren’t universal.

Other apps are obviously built by pure desktop developers, who have no comprehension of touch. These apps often work pretty well with keyboard/mouse, but are awkward to use with touch. Technically they work on my tablet, but they aren’t fun or efficient, and so I consider them to suck.

The third group of sucky apps are built by people with no WinRT user experience. These apps might, in theory, work pretty well with touch and/or keyboard and mouse, but they miss the point of all the cool WinRT features. They don’t use AppBars or the Share charm or Settings or Search correctly. They don’t use dialogs correctly, they don’t use navigation correctly. I’m sure the authors of these apps often think they are being clever by inventing their own techniques, but as a user their apps just suck because they don’t work right.

In short, sucky apps come from three sources:

  1. Mobile developers who don’t consider laptop/desktop device scenarios
  2. Desktop developers who don’t consider tablet scenarios
  3. Developers who are ignorant about the WinRT environment and don’t understand how it works

So as a developer, if you plan to ever build WinRT apps and you aren’t using WinRT then you are pretty much guaranteed to fall into category 3, and very possibly 1 and/or 2.

Hence, if you are a smart client developer – unless you are planning to retire on WPF (which is fine) or switch to the iPad/Android world, you are doing yourself and your users a disservice if you aren’t actually using and learning “the WinRT way”.


Jason Bock mentioned something to me that got me thinking. I base all of this on one core assumption:

Win32 has no long-term future as a mainstream technology.

To be clear, I am 100% sure Win32 will be around for the next 20-30 years, just like mainframes and minicomputers are still with us – usually hidden behind the scenes or in a terminal window, but still here. I don’t think anyone would call them “mainstream” though. Nobody ever mentions IBM in the same breath as Microsoft/Apple/Google/Samsung.

Now if you think Microsoft will back off from WinRT, and by some miracle Apple and Google and Samsung will just completely fail to adapt iOS, Android, or ChromeOS to the enterprise, then you can imagine yourself still doing Win32 as a mainstream technology in 5-7 years.

I personally can’t imagine that happening. I think 5 years from now Win32 will be pretty much what we think of as VB6 today. Something that runs a ton of software, and something that people still do, but not something that would be considered mainstream or vibrant.

For my part, I think that if Microsoft does back off WinRT to try and rejuvenate Win32 … well … that’ll be the opening one or more competitors needs to swoop in and take the enterprise desktop.

Monday, March 03, 2014 8:37:39 AM (Central Standard Time, UTC-06:00)
I'm a little confused about the article.

You mention: "One line, a sensation-maker, in my post was that I think Windows developers who aren’t using WinRT apps are doing their ultimate users a disservice. This doesn’t apply to web developers or other people who aren’t developing actual Windows applications, but it surely applies to people living today in the legacy WPF, SL, and Windows Forms technologies."

You then discuss how there are many sucky WinRT apps and categorize them - not necessarily talking about Windows developers frankly not developing (is that what you meant by using?) in WinRT.

Which is it? That we're not trying to develop in WinRT or doing a bad job at it? If the point of the article is the former, Microsoft needs to make it viable - we cannot fix that. 1) the technology and 2) the licensing model/sideloading.

Monday, March 03, 2014 8:45:06 AM (Central Standard Time, UTC-06:00)
On the Client / User Interface side this makes sense to me
long term.
But won't WinRT need to allow synchronous methods for the
server side of CSLA DataPortal or are you saying that Win32
.NET will remain mainstream for the server side.
Monday, March 03, 2014 9:57:40 AM (Central Standard Time, UTC-06:00)
@chris, what I'm getting at is that the few desktop developers that _are_ building WinRT apps seem to not be users of WinRT, so they aren't doing a very good job.

I'm assuming that eventually we'll either become WinRT developers or stop being smart client developers. So if we (you) think that WinRT is the future then learning how great WinRT apps work seems like a good first step to preparing for that future.

If you _don't_ think WinRT has much of a future, then learning how great iOS, Android, or SPA apps work is a good way to prepare for the future.

Or if you don't like _any_ of those futures you can either become a web developer, or resign yourself to retiring on WPF/Windows Forms much like people retired on COBOL/RPG/FORTRAN after the mainframe stopped being mainstream.
Monday, March 03, 2014 10:02:37 AM (Central Standard Time, UTC-06:00)
@ray, WinRT is a client-side technology, programmed in .NET (and other options).

I don't see .NET going away on the server (regardless of the future of Win32 on the client). So knowing how to program in .NET on a server remains important, as does knowing how to program in .NET on the client.

My point isn't about programming .NET - that's pretty universal and isn't (imo) the issue.

My point is that it is hard to imagine a non-iOS user building a great iOS app because that developer won't even know how great apps look or act.

The same is true for WinRT. If you don't _use_ WinRT then how would you know what types of user interaction or experience work and don't work well?

I've been using a new Reddit app recently. It has good touch, good keyboard/mouse, but the developer totally misuses several of the standard WinRT user experience concepts, so the app is confusing. My muscle memory about how to navigate doesn't work in this app, and the app forces me to learn a new set of concepts - just for this one app. That sucks, and that is what I'm talking about.
Wednesday, March 05, 2014 6:38:37 AM (Central Standard Time, UTC-06:00)
Windows Forms, WPF, Silverlight, Windows Mobile, Windows Phone 7, Compact Framework, Metro, ..., WinRT -- Microsoft has got no plan for the future.
Wednesday, March 05, 2014 10:23:36 AM (Central Standard Time, UTC-06:00)
@klaus, I sometimes also find the pace of change in UI technologies frustrating.

But then I stop and think about the fact that no other platform vendor has really kept up (or had to keep up) with the times.

The Java world years ago settled for pure server-side code, so it hasn't had to change. And nor has .NET on the server - they are quite comparable, those two platforms.

Apple didn't have a viable platform over all those years - their viable platform is still quite young (iOS) and hasn't had to confront a major UI technology change yet. It will be interesting to see how they adapt when the next big change happens.

The same is true for Android, too young to have confronted a big change.

So around 3 years ago I'd have agreed with you that Microsoft was just spitballing. Trying all sorts of things to meet the changing needs of its developer base. And they were often missing, which was frustrating.

Now though, I think it is clear (to anyone who's watching) that they _do_ have a plan, and that plan is WinRT.
Wednesday, March 05, 2014 10:53:40 AM (Central Standard Time, UTC-06:00)
Other apps are obviously built by pure desktop developers, who have no comprehension of touch. These apps often work pretty well with keyboard/mouse, but are awkward to use with touch. Technically they work on my tablet, but they aren’t fun or efficient, and so I consider them to suck.

So, this is really the problem of Windows 8 in a nutshell. The old refrigerator/toaster issue. Touch (as in I touch the screen) and keyboard/mouse seem to be two fundamentally different UI use cases. I don't think Microsoft or anyone else has really come up with a good case for treating these two disparate use cases as if it were a single case. Perhaps you can point to an application (any application--Win 8 or otherwise) where there's a nice seamless integration of touch screen and mouse/keyboard? I'm not aware of any and I do believe if anyone actually figures this out, he or she will have truly built the proverbial better mousetrap.
Wednesday, March 05, 2014 11:15:34 AM (Central Standard Time, UTC-06:00)
@onorio, I disagree - I use apps every day between my desktop and tablet (and sometimes phone) that are very good with keyboard/mouse and touch.

In my previous blog post I listed several of them. Such as:

Nextgen Reader
the build-in Mail app
MyTrips ( client)
Bing News
Bing Weather
Xbox Music
Xbox Video
Comics (Comixology app)

These are all examples of apps that I use interchangeably on my desktop (keyboard/mouse) and tablet (touch) and sometimes phone (touch).

To me the big thing is actually that I _can_ use these apps on my desktop, so I have a consistent experience everywhere I go. I think this is a _major_ advantage over iOS or Android, where you can't use those cool apps on the computer you use for work everyday.
Wednesday, March 05, 2014 2:35:37 PM (Central Standard Time, UTC-06:00)
The only real issue with WinRT today is its association to Windows 8 SDK - specifically getting caught up in the ARM vs Intel debate. In truth developers who target "WPF" for retirement don't care about what the underlying driver or SDK target specifically they care about outcomes.

If Microsoft do abandon all hope with WinRT and revert back to Win32 then it'd be a very odd thing to see as really it's not a Win32 vs WinRT moment its more to do with "what the hell is the UX platform strategy Microsoft" because right now its just a mess. The only reason that Microsoft would stimulate Win32 going forward would be to act as a pull-through for Windows Vista - Windows 7 development into the Windows 8 landscape(s). Eventually once developers lock onto Windows 8 and actually embrace it (which they aren't at the moment and have stagnant growth) then the whole WinRT "True/False" argument falls to the way side, as again "I don't care, just paint the pixels on screen and don't behave like WPF did when it comes to performance".

When I was in the borg years ago, and we looked at the x64 argument around .NET developer(s) the majority all said that they wanted first-class 64-bit because it mean more "ram" (scary) but it was more to do with them parroting what they thought was the right answer less about actually having buy-in?

I suggest the only regression back to win32 is more to do with as a stimulation for win8 pull through than it is to do with long-term "WinRT = Dead" strategy development?

Furthermore WinRT to me is "Write-once deploy all" vs actually getting bogged down into semantics here?

Thursday, March 06, 2014 12:06:08 AM (Central Standard Time, UTC-06:00)
We're an ISV supplying enterprise win32 systems (and Silverlight which we love and MS apparently doesn't). My issue with this article is that I don't foresee our corporate customers moving to a WinRT variation of Windows for many many years to come, most of clients are still on XP. If they're considering upgrading their user's PCs it will very likely be to Windows 7 (at this point in time).

So it's not as if we can drop our Win32 and Silverlight applications and start coding in WinRT. If we did, none of our customers would be able to run our software and we'd go out of business faster than Microsoft dropped Silverlight (can you tell I'm angry about MS dropping Silverlight?).

Unless I'm mistaken, WinRT is only a part of Windows 8. So if our customers aren't on Windows 8, and probably won't be for a very long time (if at all), how as a .Net developer can I start coding in WinRT? The answer is - I can't.

Comments are closed.
On this page....
Feed your aggregator (RSS 2.0)
November, 2015 (2)
October, 2015 (2)
September, 2015 (3)
August, 2015 (3)
July, 2015 (2)
June, 2015 (2)
May, 2015 (1)
February, 2015 (1)
January, 2015 (1)
October, 2014 (1)
August, 2014 (2)
July, 2014 (3)
June, 2014 (4)
May, 2014 (2)
April, 2014 (6)
March, 2014 (4)
February, 2014 (4)
January, 2014 (2)
December, 2013 (3)
October, 2013 (3)
August, 2013 (5)
July, 2013 (2)
May, 2013 (3)
April, 2013 (2)
March, 2013 (3)
February, 2013 (7)
January, 2013 (4)
December, 2012 (3)
November, 2012 (3)
October, 2012 (7)
September, 2012 (1)
August, 2012 (4)
July, 2012 (3)
June, 2012 (5)
May, 2012 (4)
April, 2012 (6)
March, 2012 (10)
February, 2012 (2)
January, 2012 (2)
December, 2011 (4)
November, 2011 (6)
October, 2011 (14)
September, 2011 (5)
August, 2011 (3)
June, 2011 (2)
May, 2011 (1)
April, 2011 (3)
March, 2011 (6)
February, 2011 (3)
January, 2011 (6)
December, 2010 (3)
November, 2010 (8)
October, 2010 (6)
September, 2010 (6)
August, 2010 (7)
July, 2010 (8)
June, 2010 (6)
May, 2010 (8)
April, 2010 (13)
March, 2010 (7)
February, 2010 (5)
January, 2010 (9)
December, 2009 (6)
November, 2009 (8)
October, 2009 (11)
September, 2009 (5)
August, 2009 (5)
July, 2009 (10)
June, 2009 (5)
May, 2009 (7)
April, 2009 (7)
March, 2009 (11)
February, 2009 (6)
January, 2009 (9)
December, 2008 (5)
November, 2008 (4)
October, 2008 (7)
September, 2008 (8)
August, 2008 (11)
July, 2008 (11)
June, 2008 (10)
May, 2008 (6)
April, 2008 (8)
March, 2008 (9)
February, 2008 (6)
January, 2008 (6)
December, 2007 (6)
November, 2007 (9)
October, 2007 (7)
September, 2007 (5)
August, 2007 (8)
July, 2007 (6)
June, 2007 (8)
May, 2007 (7)
April, 2007 (9)
March, 2007 (8)
February, 2007 (5)
January, 2007 (9)
December, 2006 (4)
November, 2006 (3)
October, 2006 (4)
September, 2006 (9)
August, 2006 (4)
July, 2006 (9)
June, 2006 (4)
May, 2006 (10)
April, 2006 (4)
March, 2006 (11)
February, 2006 (3)
January, 2006 (13)
December, 2005 (6)
November, 2005 (7)
October, 2005 (4)
September, 2005 (9)
August, 2005 (6)
July, 2005 (7)
June, 2005 (5)
May, 2005 (4)
April, 2005 (7)
March, 2005 (16)
February, 2005 (17)
January, 2005 (17)
December, 2004 (13)
November, 2004 (7)
October, 2004 (14)
September, 2004 (11)
August, 2004 (7)
July, 2004 (3)
June, 2004 (6)
May, 2004 (3)
April, 2004 (2)
March, 2004 (1)
February, 2004 (5)

Powered by: newtelligence dasBlog 2.0.7226.0

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2015, Marimer LLC

Send mail to the author(s) E-mail

Sign In