Even though Microsoft released the Developer Preview of Windows 8 back in September 2011, I haven’t found many coders already building apps for the coming platform.
But there are some out there. And a number of them participated in Microsoft’s First Apps contest, announced back in December. The contest is designed to boost the number of Metro-style apps that will be available in the Windows 8 app store, an early version of which will be “turned on” in February when the Windows 8 beta is released. (Microsoft also is using its annual Imagine Cup student contest to encourage more Windows 8 app development.)
As Microsoft announced last year, those First Apps contestants who made it into the second round of the competition are getting a special “confidential” build of Windows 8 to allow them to fine-tune their apps. The contestants who have received this build are under nondisclosure agreements preventing them from sharing more about it.
I solicited feedback from a few of those who built Windows 8 Metro-style apps for the contest. I asked them all the same few questions and decided to leave this in interview form since they had so many good details to share about what’s working and what isn’t, at this point. A few common themes emerged: More documentation is badly needed. Silverlight and Windows Presentation Foundation (WPF) developers may have an adjustment curve — and may find themselves missing some of the good old features they’ve come to know and love. And WinRT, the new Windows runtime at the heart of Windows 8, is a mixed bag for those who’ve cut their teeth in the Win32/.Net worlds.
Without further ado, here’s what these devs had to say about their early experiences writing for Windows 8:
Tim Greenfield
Software developer at Vertigo Software
PuzzleTouch Jigsaw Puzzles (this app is a finalist in the Microsoft contest)
http://programmerpayback.com
Have you ever developed an app for Windows or Windows Phone before?
For Windows Phone, I’ve built three apps: (1 game, 1 “entertainment” app, and 1 LoB app). At Vertigo Software, we helped build some of the first Windows Phone apps so I’m very familiar with the platform. Besides building apps, I am also the technical lead for the Microsoft Media Platform Player Framework open source project which includes a version for the Windows Phone. Although the majority of my career has been building Windows apps (both commercial and line-of-business), I actually haven’t worked on many “Windows” apps in the last few years and have primarily been developing web based apps using Silverlight, HTML and JavaScript.
What kind of Win 8 app did you create? Do you consider this just a sample app, or something you might ultimately sell/give away for free?
My Windows 8 app is a jigsaw puzzle game called PuzzleTouch. It has extremely realistic puzzle pieces, supports multi-touch, and lets users play dozens of diverse jigsaw puzzles of different difficulties. It also allows the user to create their own puzzles from existing photos or camera. One of the biggest challenges I am currently facing is choosing the right business model. There are a number of strategies to generate revenue for apps and I am still considering what the best fit is for PuzzleTouch and which approach will prove to be the most successful on the platform. I can look to other platforms like the iPad for hints but Windows 8 is a unique platform with a unique marketplace and unique users.
What tools did you use to build this app and why?
PuzzleTouch is written in Xaml and C#. This route was an obvious choice for two reasons: 1) I personally prefer C# & Xaml over js & HTML and 2) PuzzleTouch is based on the award winning Silverlight web site and Windows Phone app which took over three years to create and refine. Because Xaml and C# is so similar on Windows 8 to Silverlight for the phone and web, this gave me more than just a head start: it was practically already written.
What was the hardest part of building this app? Was there enough tooling/documentation?
The tooling and platform available today is a developer preview version that I’m guessing was created long before it was made available last September. Needless to say, there are many of bugs in the platform and my app required a lot of hacks to make it work. Overall, the app took me approximately 2 solid weeks to port and I spent about a third of that time hunting down obscure problems that do not exist in Silverlight for the web or phone. That said, I fully expect the platform and tools to improve dramatically with the next release.
Because the platform is so new, another difficulty others may encounter is that there has not been enough time for the community to blaze many trails. Open source projects and blog posts for the platform are just starting to appear, but for the immediate future developers need to rely on those created for derivative technologies like Silverlight and .NET or HTML and JavaScript.
If there’s a silver lining, it is that the Windows team is doing an amazing job fielding questions on the Metro developer forums. Engineers from Microsoft are out there in force helping developers and frankly, it’s the next best thing to being able to send a personal email to the engineers themselves.
After building this app, what’s your opinion of WinRT and how it will help/hurt developers trying to create Win 8 apps?
So far, I’d say my impression of WinRT is mixed but overall positive. From a C#/Xaml point of view, it is Silverlight v.Almost. The developer preview version is still missing some important features that we’ve enjoyed in Silverlight and WPF for a while now and without any transparency on what future versions will bring, we can only hope the gap will close soon.
On the other hand, there are many new platform features and respective APIs that will make it kindergarten simple to do complex tasks like support touch, mouse, keyboard, and pen with – in some cases – no additional effort. The Windows team also did a great job adding and exposing native OS features like “contracts” which essentially allow others apps to become features of your app.
But the thing I am the most excited about is the business opportunity. The app store offers an easy way to gain visibility, charge money, and create a user base and most developers won’t have to learn a new language to participate. This isn’t just Microsoft’s version of the iPad, it is also the next version of Windows; so the market potential is huge.
Anything else you’d add about your Win 8 app building experiences?
Even though I built PuzzleTouch in C# and Xaml, I am also working on another project using HTML5 and Javascript. The thing that impressed me the most was how well Microsoft put JavaScript developers on equal footing. While C++ is still king in Windows 8, JavaScript (and C#) are definitely first class citizens.
However, I do have concerns about the pace of innovation we might expect to see. First, web technologies like Silverlight and Flash have enjoyed high paced innovation because they are independent frameworks neither tethered to an OS or browser release cycle nor subject to committee approval and widespread implementation. Second, even though Microsoft has done a stellar job rebuilding the Windows runtime to support three unique app development models; technical reasons could easily throttle advances in one because it is not realistic to support in another.
Beau Gunderson
Read it Later (http://www.readitlaterlist.com/)
http://github.com/beaugunderson
Have you ever developed an app for Windows or Windows Phone before?
Yes, I’ve been a Windows developer for a long time. I started out with a copy of Visual Basic 4.0 a friend’s dad who worked at Microsoft gave me when I was in middle school. I’ve written desktop apps (none of which are commercial) and have worked freelance on some ASP.NET web applications. Most of the Windows applications I’ve written are available on Github: https://github.com/beaugunderson
What kind of Win 8 app did you create? Do you consider this just a sample app, or something you might ultimately sell/give away for free?
It’s a reading application based on Read it Later (http://www.readitlaterlist.com/). I bought a Samsung Series 7 slate knowing that I would put Windows 8 on it and use it for development, but right now I find Windows tablets much less useful than an iPad. There are great Instapaper and Read it Later apps for the iPad and I wanted to have something like that on my slate.
What tools did you use to build this app and why?
I used Visual Studio 11 Developer Preview (it had more features than the Express version provided with Windows 8). I also used the VsVim extension because I can’t live without my vim keybindings. :) http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329
What was the hardest part of building this app? Was there enough tooling/documentation?
The documentation is lacking currently. Some things are only documented for one language–things that are documented for the JavaScript API may not be documented for C# and vice versa.
Here’s the list of problems I had from my forum post: http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/bf31f74f-7a50-46bc-b2fa-df537040bbe6
- No library support (was planning on using RestSharp and Newtonsoft.Json but ended up rolling my own REST classes and using the built-in Json support)
- The ObservableCollection vs. ObservableVector thing
- The lack of .FindResource for finding controls within templates
- The lack of an IndexedDB equivalent for C# (I ended up storing .json files in the local app files folder)
- The inability of WebView to open local files, and its lack of a bindable property to set the HTML content (vs. the NavigateToString method), and the fact that you can’t derive from it to provide that property yourself
After building this app, what’s your opinion of WinRT and how it will help/hurt developers trying to create Win 8 apps?
I think Microsoft is shooting themselves in the foot by intentionally crippling the WebView control.
My motivation for entering the contest was to secure access to the next build of Windows 8–I wanted to see if some of the things missing in the current build had made it in (like a FlowDocument or a RichTextBox).
Anything else you’d add about your Win 8 app building experiences?
Things mostly worked, and it was fun to learn about the new platform. It was a huge pain in the … to work around the missing functionality and the things that were there but didn’t work.
More Windows 8 developers speak out on the next page




