End User’s Perspective
The morning news. The stock and currency market. The weather. Points of interest. These are some of the things you would check on a regular basis. Daily is a lightweight minimalist application that is designed to provide quick and easy access to all the information you require on a daily basis.
If all you want is your daily dose of everything, then this application is for you.
I’ll be taking an iterative and incremental development approach for each feature. Team Foundation Service (https://tfspreview.com/) will be used to keep track of my progress and as source control. Similarly, each feature will be done in a test-driven development/design mindset when possible. Visual Studio’s integrated test framework and runner will aid me in this task.
The application will be built with the Model-View-ViewModel (MVVM) architectural pattern. The framework that I chose to aid me is Laurent Bugnion’s excellent framework “MVVM Light Toolkit”, which can be downloaded from CodePlex (http://mvvmlight.codeplex.com/) or from NuGet (http://nuget.org/packages/MvvmLight). The article “Using the MVVM Pattern in Windows 8” (http://msdn.microsoft.com/en-us/magazine/jj651572.aspx) will help get started.
The front end will be built in XAML and it will use the common hierarchical system of navigation with hub and section/detail pages. This will allow users to dig into the information desired.
The back end will be built in C#. This is where a TDD approach will be the most appropriate. As I mention earlier, I will be using Visual Studio integrated test framework and runner. Since I will be dealing with external data, mocking will be required, and for that I am planning to use Moq, which can be downloaded from NuGet (http://nuget.org/packages/Moq)
The data will be retrieved from both Bing and Google. In both cases, I will be using JSON.Net (http://nuget.org/packages/Newtonsoft.Json) to easily parse the information.
Currently, since I don’t expect too much data, I’m planning to simply use XML files and the built-in Windows Storage and Application Data. If it is insufficient, a move to SQLLite or to Windows Azure Mobile Services might be considered.