Microsoft is a late entry into the tablet market (that is tablets as defined by the iPad, not by the original Tablet PC). Windows 8 was clearly designed to be a touch interface first, mouse and keyboard second.
As a keyboard power user (yeah, I know all those ALT and CTRL shortcut keys and use them religiously--any time I have to reach for my mouse a little bit of me dies inside) I was a bit taken aback by the Win8 focus (dare I say obsession) with touch. And while shopping for my latest laptop I was surprised by the number of machines at Costco with touch screens. Does a touch screen on a laptop really make sense? Apparently a lot of OEMs think so.
Where touch makes a LOT of sense is on mobile devices, and moving your old applications to a mobile device is now de rigueur to support all the BYOD action in the enterprise. As a consequence I've been playing with an Acer Win8 tablet to see if I could get more hooked on touch.
I'll leave the tablet review and thoughts to another post but in this one I wanted to tell you about two secret Win8 features that rock. I wouldn't have really figured these out except for writing a Windows Store app and learning about them that way. (Ok, one of them is pretty obvious but I hadn't really considered the implications before).
Ok, they're not really secret. It's not like Microsoft is hiding them, but let's face it, there's so much going on so quickly it's easy to overlook new, cool, stuff. So if you are up to date with all this then (channeling Steve Martin) excuuuuse meeee!
Here they are.
The first is the ability to have data behind tiles, aka "live tiles." When you look at Win8, you'll see the tiles for email and social constantly shifting with new stuff, likewise the news feed tile.
The content of a tile is populated from snippets of XML that you can create with a call to TileUpdateManager.getTemplateContent(). The content is displayed in the tile based on the tile's template (templates determine the size, orientation and content of the tile--for example you can have it be vertical with a picture and text).
Suppose you have a landscape company; you could write an app that shows the nearest address of a customer or prospect as your sales reps drive around. This would require connecting to the GPS services on the mobile device, checking that location data against a CRM or SFA database, and displaying data about nearby accounts. The possibilities of using the Metro home screen as a kind of real-time dashboard for corporate apps is intriguing.
Background Data Sync
The second one is background data sync. Windows provides a simple way for you to store your application data in the cloud (instead of locally). This data then gets synced to all your machines running the same Windows Live account. If you've got a Windows tablet and were surprised that pictures from your laptop computer started showing up there, that's because the Win8 desktop background (in my case a slide show of pictures of my dogs, kids, etc) gets stored in the cloud rather than locally (like in Windows 7). So any Win 8 laptop (or phone presumably) I have will show that same background once I've setup my Windows Live account on it.
It's pretty simple: Windows has APIs for creating a data container to save all your application-specific data. You can specify RoamingSettings or LocalSettings. RoamingSettings will store the data in the cloud where it will be available to all other machines using the same Microsoft connected account (aka Windows Live). You the developer don't have to worry about accounts, login, authentication, session persistence, or any of those messy details.
There is a limit on the amount of data you can sync: currently it's 100K per application, so plan accordingly. The main idea is to save app state and user preferrences so they are persistent across different machines. If I had a line of business app that used a database I might save a pointer to the current record so when an exec has to grab a tablet and run to a meeting the record she was looking at in her office will automagically show up on her tablet.
Google has (for some time now) a similar idea using your gmail account to sync email, calendar, browser favorites, and so on. Microsoft is syncing your IE favorites, desktop background, and other stuff as well. So it's not like this is a breakthrough, but what's new and nice is how easy they have made it for mobile application developers to add this to their app.
Above I called these "secret" and of course they're no such thing, but Microsoft has had a big focus on consumer apps in their Win8 messaging and these two cool features--as they apply to writing mobile applications for commercial purposes inside the Enterprise--got lost in the noise somehow. I hope this gets you thinking about Win8 tablets as an interesting platform.