MVVM, TDD, Windows Phone 7

Windows Phone 7, MVVM and TDD (Part 1 – Introduction)

by Peter Daukintis

Before jumping into Windows Phone 7 development I need to define some ideas about a baseline architecture so I have a clear development direction to move in. This series of posts will document my thinking in this area. This is not an introductory post on any of the individual technologies and I will assume the reader has some knowledge of the basics. Here’s a list of pre-requisites:

I intend to develop a very simple phone application using Silverlight to demonstrate and explore the architecture. The application will present a login screen and allow a user to log in. It will present some kind of busy indicator and when logged in will navigate to another screen (well, I said it would be simple :-)).

I will develop in a test-driven manner using a model-view-viewmodel architecture to support this. I will try to document where I have made choices along the way since I expect there will be many alternative solutions.

Just so we’re all on the same page here’s a sneak preview of the end result.


Here’s a screen grab of the WP7 emulator showing the WP7Login Application and also WP7Login.Tests application. For further information about the tools and the phone emulator see


Here’s the application login screen.


While it’s loading…


…and finally transitioning into the welcome screen.

The unit tests will run on the phone emulator and will look like this…


That wraps the introduction.

Technorati Tags: ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Windows Live Tags: MVVM,Part,Introduction,development,ideas,architecture,direction,series,area,reader,knowledge,basics,Here,requisites,tools,April,Refresh,FamilyID,Ultimate,Toolkit,archive,Unit,Framework,code,user,indicator,manner,Just,preview,result,Application,wraps,technologies,solutions,developer,microsoft,aspx,login,emulator

3 thoughts on “Windows Phone 7, MVVM and TDD (Part 1 – Introduction)

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.