Windows 8.1 Templates the good, the bad… and the ugly

So a few weeks ago i decided it would be great to start writing phone applications (ok so I’ve been thinking about it for a few years… shhh). In all honesty, what developer hasn’t right? So I finally came up with a few ideas and started to think about what phone space I wanted to start my development. For me, the obvious choice was Windows Phone. At first it was mostly because I am primarily a .NET developer, so it would be an easy transition from day work to night work. But then my parents purchased a pair of Nokia phones that I discussed in this article. Now, I have to admit, they were pretty awesome. Very sleek, touch sensitivity was just right, the applications seem to be getting better etc… This gave me even more reasons to move forward with windows for my phone application development.

First the Good

So the good is that there are a lot resources on sites like YouTube and channel9 and several others. If you want to start with a great place for documentation and real world examples from the guys themselves, go here. The code and information is so enormous, quite honestly, it’s quite overwhelming.

The Bad

Sometimes too much information really is too much information. There are so many documents and tutorials that are older. Because of this, I have had to spend way more time than I’d like to admit trying to get something working for 2 hours  in Windows 8.1 to find out it isn’t working correctly or not compatible with 8.1 and was really only for 8.0. That gets really frustrating, real quick. I was just mentioning to my wife last night “Wouldn’t it be nice if there was an easy way to filter everything out as ‘out of date’?”. That way people who need backwards compatible stuff can get it, and developers looking for the latest and greatest can find it easier without digging through such old stuff. It’s another instance where the Internet is becoming saturated with too  much information for it’s own good. Just like anything else that gets saturated, if you don’t purge at some point, there ends up being more garbage than useful information.

The Ugly

So here is the most frustrating part. I have found this on several occasions while starting to check out a new technology in Microsoft land. Every time I start trying out a template that is supposed to be “a starting point” and be “easy to follow”, it ends up with me thinking I know what the developers were thinking and then, when I start tinkering, everything breaks. Not only does it break, but there is just about nothing in the way of help or quick demos of using what they did in a real live scenario. For instance, just about everyone that wants to use a tool for JSON conversion that is well recognized for its stability and performance in .NET would most likely choose JSON.NET. Due to it’s popularity in the .NET community and how it is superior to the built in .NET tools, you would think that the developers making these templates would either use it in their code and auto download the NuGet or at the very least make the JSON file they use have JSON that is compatible with it. But no, Microsoft’s developers had to make things more difficult and use a format (albiet still JSON compliant) that immediately fails when using JSON.

It turns out JSON.NET  really doesn’t like it when you use a header in your JSON object like this:


Instead you need to do without it like this:





Why, I’m not exactly sure, maybe someone could answer that for me. The other really annoying issue I had trouble getting any definitive information on was this annoying little line for binding to a Pivot control:

d:DataContext="{Binding Groups[0], Source={d:DesignData Source=/DataModel/SampleData.json, Type=data:SampleDataSource}}}"

So, in plain English, this looks like it would make sense. It looks to be binding the data context to a JSON file as it’s source and it’s type of source is this thing called a SampleDataSource. Go take a look at that hot mess and tell me what you think lol. Anyways, Although it looked simple enough, I eventually abandoned that and decided to bind using a different approach. I believe the approach above is to provide the developer with a design time example of some of the data, but I don’t find it to be enough of a gain deal with the headache. Probably the worst part about the technique above is the lack of documentation or examples on how to do it. It seems like some one over at Microsoft wanted to show off his mad skillz and wired it all up without really thinking of anyone that was actually going to use the template.

I will do another article next week that will show how I went about binding JSON data to a pivot control in much less time with the help of some of the great developers in SO.

Until then, Happy Coding 🙂


About Gregg Coleman

I am Senior-level Software Engineer working primarily these days with .NET. I have a good working knowledge of ASP.NET MVC, Web Forms, WCF web services and Windows Services. I spend much of my time in the Web Services (SOAP and REST) world in my current job designing and implementing various SOA architectures. I have been in the software engineering industry for about 6 years now and will not now nor ever consider myself an "expert" in programming because there is always so much to learn. My favorite thing about designing software is there are always new emerging technologies and something to learn every day! My current job has me spending much of my job on the bleeding edge of technologies and changing gears all the time, so I'm never bored and always challenged. On my spare time I enjoy weight training, reading and venturing to new places near by. Of course programing and learning new technologies are another hobby of mine.
This entry was posted in .NET, .NET 4.5, ASP.NET, C#, Classes, Computer Technology, Databases, Freelancing, Generics, MVC, Programming, Programming Paradims, Windows Phone, WPF, XML and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s