You have to start somewhere, and both a blog series and a conversion starts here. During the following weeks we’ll take a real (is-deployed-to-marketplace-real) Windows Phone application and convert it, step by step, to a Windows 8 Metro application.
Our hopes and dreams are, because the similarity between the platforms and the mutual design language, Metro, we will be able to reuse a lot of the C# code and XAML that we already have. As a developer you also nurture a small hope that you can keep some common parts of the code base so that you don’t need double up on the maintenance work. As previously hinted, this post is a part of a series. You can find the full index here.
- Conversion strategy
- Setting up the project
- XAML has a new home
- HttpClient vs. HttpWebRequest
- Working with third party libraries and JSON
- Cache and working with storage
- Localization of your application
- Live tiles
- Background agents
- Looking back – what would we do differently
We’ll add items here as they are published.
In this first part we’ll walk through what we have right now and what we aim to achieve.
The goal with this conversion is not to clone the Windows Phone application. The goal is to experiment and test to find out where the platforms differs, where they are similar and most of all – how to design applications so that you can reuse as much as possible between the platforms.
So – this is how the Windows Phone application looks right now (only in Swedish, sorry about that).
And we hope to achieve something like this.
We should mention that no designer has been involved, or asked, while designing this Windows 8 application.
Prerequisites and expected issues
Ok, so this is what we got for Reseguidens “Sista-minuten” Windows Phone application
- Built to support Windows Phone 7.1
- Uses Silverlight Toolkit (for transitions, toggles and date picker)
- Code dropins from Caliburn.Micro
- ServiceStack.Text to parse JSON
- MVVM pattern
We would once more like to make a point that this is a real Windows Phone project. It’s not an application written to work well while doing a demo on stage. This code was written to work well with Windows Phone without Windows 8 in mind. So all problems that we likely run into during this series is problem that others might expect as well.
Initially there are some areas where we expect to run into some problems.
- XAML has moved to Windows Runtime and has therefore changed namespace.
- All code need to be built in Visual Studio 11, so we need to change all the project files.
- We have .NET 4.5, C# 5 and Windows Runtime to work with when developing for Windows 8. None exist for Windows Phone.
- Navigation is different in Windows 8 – here we use types and send data as objects.
- The Windows Phone application uses several third party components that is not built for Windows 8 so they got to go.
Yes of course – we will run into other issues during this journey, but this is at least the known unknowns that we have as a starting point.