Ever since the release of the Windows 8 Developer Preview, people have had a lot to say about the experience of playing with the new OS. But few folks are talking about the changes it represents for developers. Windows 8 is the biggest update to the Windows development model since the move from Windows 3.X to Windows 95. While there are lots of good things, there are also a lot of pain points. If you are looking to develop Windows 8 native applications with the new UI and WinRT API, be careful of these 10 things.
1: Market reboot
If you want your applications to be fully compatible with Windows 8
(including running on ARM CPUs), you’ll need to do a full rewrite in
Windows 8/WinRT. This may be great for developers looking to break into
markets with established players. But if you are the established player, you are suddenly back at square one.
2: The asynchronous model
Windows 8 development is highly dependent upon asynchronous
operations for anything that is long running. While that may be a cute
trick in some scenarios, it is downright frustrating in others (like
trying to download a file). It isn’t just the work needed to handle the
async call; it’s things like error handling and reporting problems back
to the user. It requires a whole new approach to the UI from what
developers (especially WinForms developers) are used to.
3: Lack of direct disk access
Windows 8 cuts off direct access to the system in quite a few ways,
but the one that will hurt typical developers the most is the lack of
disk access. Windows 8 follows an extreme isolation model for
applications, and if your application requires access to data
outside its own confined little world (including networked services you
can access), you can forget about porting it to Windows 8.
4: Touch UI paradigm
Unless you have been writing a lot of mobile apps, shifting to the
new UI style, which is designed for touch interaction, is going to
pretty tough. It took me a long time to get a feel for what works well
and what doesn’t. To make things more difficult, what looks and works
well on a screen using a mouse and keyboard can be a poor experience
with touch, and things that work well with touch often are a struggle to
use on the screen. It’s a tricky balancing act, and as the uproar over
the new UI in Windows 8 shows, even Microsoft is struggling to get it
right despite having had a few years of experience with it.
5: Playing by Microsoft’s app store rules
If you want to be using the Microsoft app store, you will need to
learn to play by its rules. While the rules are fairly reasonable, it
will be a jarring experience if it is anything like the WP7 App Hub. For
starters, Microsoft rigorously inspects the application and looks for
all sorts of things, like unhandled exceptions and circular UI paths.
Although this ensures a high quality app, it can be a surprise to
developers. In addition, you need to work with an approval process. The
details of the Microsoft application store are still under wraps, but
recent experience with WP7 suggests that it won’t be fun.
6: Heavy emphasis on cloud
While there is no mandate to use the cloud, Web services, and other
off-premise techniques and technologies, it is most definitely
encouraged. Things like automatic syncing of settings and data between
devices (regardless of how it is done) will become the rule, not the
exception, and users will be expecting it. Windows 8 makes this easy
(you can have your locally saved information synced automatically with
Live), but you will want to be judicious about how you do it for
sensitive data. Encryption and other privacy and security techniques
will become more important than ever.
7: Shift to “contracts” and “interfaces” for interop
One unique aspect of the Windows 8 paradigm is the idea that
applications can provide services to the OS (such as acting as a source
of contacts or pictures), as opposed to just dumping the data into a
common directory. This allows all sorts of sweet application concepts.
But even though this is easy at the technical level, it’s difficult to
figure out how to leverage at the conceptual level.
8: Market uncertainty
Now we get into the more high-level pains. Microsoft is clearly
pushing Windows 8 for tablets and maybe even phones. Right now, we’re
seeing Android struggle in the tablet space, and at the same time, the
new Windows 8 UI has been heavily panned by people who have tried the
preview versions. Will the market adopt Windows 8 or reject it? Will
the tablet market for Windows 8 take off? These are all questions that
won’t be answered until it is far too late to be a first mover in the
market. If you are going to bet on Windows 8, you simply can’t properly
assess the risks right now.
9: Lack of tablet hardware
For developers, not having tablets to try Windows 8 on has been a
major problem. Yes, we’ve seen some tablets on Web sites, but not in
person. Some (like the Lenovo Twist and some of the Samsung slates)
resemble current devices enough that you can use what amounts to their
predecessors to test. Others (especially the ARM devices) are just too
different from existing products to allow a comparison, so you have to
wait until October 26 to get an idea of what they are like on real
hardware.
There has been no good way to get an idea of what the user experience
will be like for your applications on those tablets. Not just in terms
of the UI either, but of performance. Can the tablet CPUs run your app
well? Is it too “chatty” for a device on a cellular connection? Are you
using more storage than makes sense for the typical tablet we’ll see?
Without a few tablet models easily available, we don’t know the answers
here.
10: The trail of dead tech
This is the one that really breaks my heart. Microsoft has a history
of pushing a technology as “the next big thing” and then leaving it
dying on the vine a few years later. We don’t know if Microsoft will
back off its Windows 8 strategy before launch, right after launch (Kin),
or a few years down the road (Zune, Silverlight). If the new Windows 8
paradigm is not a success, Microsoft may very well change course in a
way that renders all your hard work on Windows 8 native applications a
waste of time.
Thanks & Regards,
"Remember Me When You Raise Your Hand For Dua"
Raheel Ahmed Khan
System Engineer
send2raheel@yahoo.com
send2raheel@engineer.com
sirraheel@gmail.com
send2raheel (skype id)
My Blog Spot
http://raheel-mydreamz.blogspot.com/
http://raheeldreamz.wordpress.com/
My Face book pages
http://www.facebook.com/pages/My-Dreamz-Rebiuld-our-nation
http://www.facebook.com/pages/Beauty-of-islam
http://www.facebook.com/pages/Health-is-wealth
"Remember Me When You Raise Your Hand For Dua"
Raheel Ahmed Khan
System Engineer
send2raheel@yahoo.com
send2raheel@engineer.com
sirraheel@gmail.com
send2raheel (skype id)
My Blog Spot
http://raheel-mydreamz.blogspot.com/
http://raheeldreamz.wordpress.com/
My Face book pages
http://www.facebook.com/pages/My-Dreamz-Rebiuld-our-nation
http://www.facebook.com/pages/Beauty-of-islam
http://www.facebook.com/pages/Health-is-wealth
No comments:
Post a Comment