Tagged with WinRT
Android tablets were a joke. I remember being at a MIX when the Xamarin guys (before Xamarin was Xamarin) were showing off Moonlight on Motorola Xoom tablets. I overheard them complain how bad the devices were compared to their iPad test machines. That was PN7 or Pre-Nexus 7. Sure the Kindle came first, but the real switch for Android tablets was the exceptional Nexus 7. They proved that the OS was usable and that a device was desirable. And they did it for $199. The Nexus 7 was a hit…very late into game. They knew that if they sold it at cost or better that people would learn to believe that Android was more than a haven for Linux-heads.
The problem with the Surface is that Microsoft wanted to make money on it. I know that's their business, but the Surface should have been the loss-leader that got the hardware community to build great tablets around Windows 8. But that didn't happen. Surface RT was $499 at launch (actually $399 but $499 was the right size one). $519 with a touch keyboard. This lined it up against a very successful product but it wasn't going to change any minds of people that already bought it.
Instead they should have taken a page from Google's playbook (not Blackberry's playbook…pun intended) and launched it for $299 and had an 8" version for $199 in the wings. Even with today's slashing of the new Asus 8" to $299 it is still too expensive (and not Windows RT).
I am working with a client on an enterprise Win8 app that is for order taking. They have a specific page that they require to be only in Portrait mode while the rest of the app can support any orientation. Since I've done so much Windows Phone 7/8 work I thought this would be simple. Just specify the value on the Page. But this didn't work…
Digging through the docs I found a probable solution: DisplayProperties.AutoRotationPreferences (in the Windows.Graphics.Display namespace). The docs specify that this property can be set with the DisplayOrientations enumeration to specify which of the four orientations to support. The enumeration is a flag so you can combine them too:
// All orientations DisplayProperties.AutoRotationPreferences = DisplayOrientations.None; // Portrait only DisplayProperties.AutoRotationPreferences = DisplayOrientations.Portrait; // Landscape only DisplayProperties.AutoRotationPreferences = DisplayOrientations.Landscape; // Landscape and upside down landscape only DisplayProperties.AutoRotationPreferences = DisplayOrientations.Landscape | DisplayOrientations.LandscapeFlipped;
Using these options should work, right? I tested it in a bunch of different places in my code and it didn't seem to have any effect. I was baffled.
I've created a new example of a PhoneGap app for my talk at the Atlanta Windows Apps meeting. The talk I did tonight didn't go all that well, but I got it working and the result is something you can download and see how to use a minimum of WinJS to build your Windows 8 apps.
The example PhoneGap app sourcecode can be found on GitHub:
Additionally, you can see the Win8 version by downloading the project I built during the talk:
If you made it to build or spent much time watching the videos one of the stories many heard from Microsoft revolved about creating HTML5/JS applications for the Windows Phone 8. Unfortunately the story confused a lot of people (at least by the questions I've been getting lately.
Let me be clear...you *can* create HTML5/JS/CSS applications for Windows Phone 8. Yup. In fact, you could do it with Windows Phone 7 and 7.5. This is how PhoneGap works. The XAML page simply hosts a WebBrowser control and loads all of the assets locally in the XAP. What you can't do is create WinJS application. Let's step back a little and explain that better.
Windows 8 and Windows Phone 8 were both highly publicized releases this last week. One of the things that is not all that obvious to the casual observer is that the biggest change to Windows Phone 8 is that the underlying operating system now uses the same core as Windows RT (e.g. Windows 8 for ARM). In fact, the new phone SDK supports DirectX, C++ and creating WinRT components. All very cool.
I am headed to Build later this month and am excited by both the Surface tablet and what the PC makers are going to show us in Windows 8 devices. But ahead of that show there have been a lot of reveals by the likes of HP, Dell, Lenovo and ASUS.
I am perplexed by these early reveals by the PC makers. On the whole, these companies built Windows PC's in the Slate era (when Microsoft was pushing Windows Tablet Edition). Many of these new devices feel like throwbacks to the Pen Slates they built in years gone by and that's unfortunate. Even if they don't look like Slates, they look like ultrabooks with touch screens. Convertibles and such are interesting for the minority but not for the majority of users IMO.
We need to let the PC makers know that Slates are dead...they need to be building tablets...
A lot has been made since a report from Microsoft late last week (http://shawnw.me/HPEh0R) that seemed to say that Silverlight on the phone was going away in Windows Phone 8 (Apollo). I liked a lot of what this article had to say (from e-week):
So it got me thinking that much of the Silverlight community would be jumping out of windows (lower case and not TM) this week due to the news. But of course, if that's the case for you, I'd urge you not to panic. Why? Let me tell you.
I saw a tip by Tim Heuer on a StackOverflow question about how to show binding errors in the Output window of managed WinRT (e.g. Metro-style) XAML projects. Tim mentioned that:
You get this automatically for C++ applications and for managed applications you have to turn on unmanaged debugging to see them.
Since I had a hard time finding it, I thought I'd drop a quick image to help you find it. You have to go to your project properties and look at the Debug tab:
I decided at Build to try and not answer the question I was getting all the time:
I wanted to take time and not just spurt out my gut reactions. I wanted a thoughtful response to my week at BUILD. I’ve been watching videos, playing with the tablet and trying out the WinRT SDK and think it is time for me to chime in. Let’s take this step by step.