January 26, 2012

WP7 Series Part 1: To build a Windows Phone 7 app

And suddenly it's 2012... Where has the time gone? 

It's a new year, and I've decided to take on a new challenge by building a Windows Phone 7 app. I've had my Windows phone (an HTC HD7) for over a year, and I absolutely love it. I've not written a XAML app yet, nor a mobile app, but I saw mention of the 30 to Launch challenge a week or so ago, and have decided to give it a try.

I've done the File -> New Windows Phone Project a few times in the past year, but have never felt inspired enough to really delve into creating an app 'for realz', but one thing I do know: I don't want to use the standard out-of-the-box code-behind process. I really want to try to keep to an MVVM model and maintain good 'blendability'.

To that extent, I've tried to do a little research up front to look at some options. I could go the route that @kellabyte had taken during her learning experience and write much of the framework myself. Or, I could try to leverage as much as possible a framework somebody else has written, like Caliburn Micro or MVVM Light

I watched several of the training videos on Pluralsight, followed by all of the Full Stack series of videos, plus a few others like Laurent Bugnion's Deep Dive MVVM video on Channel 9. I've read through several tutorials, and browsed a bunch of open source code. I figure it's time to get off my butt and write some code.

So, after playing around with a few options, I've settled on a basic app structure that I'm happy with, that uses MVVM Light and Ninject at the core, along with a repository pattern wrapped around SQL CE for data. It allows for easy display of design-time-data in Blend, and adheres to MVVM very well. I'll explain more about the structure in my next post.