If you were born in the 70’s like I was, you may remember a show hosted by Leonard Nimoy called In Search Of… that explored unexplained phenomena and some of the theories behind it. Being young and impressionable, I soaked in the theories that this show presented about things supernatural and odd and I thought it was fascinating. As I got older, I realized that it was highly unlikely that many (if not all) of the theories the show presented had real merit, but it was good television (including the wicked 70’s fashion Leonard sported). In comical kind of way, you might feel that finding open source code targeting Windows might make for a great episode for a modern day In Search Of… You may feel that they are unnatural together and finding FOSS creations for Windows is an elusive challenge. Well, we have an answer for you that is a lot more solid than the often vapid theories the original show. There is a site that Microsoft (yes, Microsoft) created that is solely dedicated to allowing you as a developer to consume, create and host FOSS that benefits the entire developer community. That site is Codeplex.
If you’re familiar with Codeplex, you are probably already familiar with the value of the site. Some of the best open source software for Windows can be found here, including NuGet (if you don’t have and use it yet, you really need to check it out), JSON.net and even Windows Phone tools (which I’ll list later on in this post). Some are actually created and provided by Microsoft itself and some are provided by the open source community. All in all, it’s a great repository that you as a developer, whether you are targeting Windows Phone, Windows Azure, Windows 7 or even other platforms that work with Windows.
As I referenced above, there is a lot of goodness that Codeplex provides for you if you are targeting the Windows Phone platform. If you are building apps for Windows Phone, there are some projects on Codeplex that are nice to have access to as they make your life easier as a developer, but there are actually some tools on Codeplex that I consider absolutely essential to have in your belt before you even start building your app. Below are some of my favourites:
- Silverlight Toolkit (this one is a must-have): The Silverlight Toolkit and Silverlight for Windows Phone Toolkit provide the developer community with new components, functionality, and an efficient way to help shape product development. Toolkit releases include open source code, samples & docs, plus design-time support for the Windows Phone platform as well as the Silverlight browser plugin.
- Windows Azure Toolkit for Windows Phone (if you’re targeting Windows Azure with Windows Phone, this is a must-have): The Windows Azure Toolkit for Windows Phone includes libraries, project templates, samples, and documentation that help you to quickly take advantage of Windows Azure with your Windows Phone applications.
- Windows Phone 7 Design Templates (must-have): A project for sharing XAML based resources for creating consistent Windows Phone 7 user experiences. The templates are based on the UI Design and Interaction Guide for Windows Phone 7. With these templates you can easily create common Windows Phone UI layouts by simply copying and pasting the desired page. We’ve taken care of the margins, styling, and custom controls that may not be available in the platform.
- Windows Phone 7 Isolated Storage Explorer (must-have): WP7 Isolated Storage Explorer is a tool designed to help developers and testers interact with the isolated storage file for Silverlight Windows Phone 7 applications. The explorer can work both as a desktop application for testers or integrated in Visual Studio for developers.
- Windows Phone Powertools (must-have): The Windows Phone Power Tools are a natural extension to the developer tools that come with the Windows Phone SDK. Instead of allowing you to only install developer xaps the Power Tools let you test update scenarios by allowing you to update an existing developer app. Instead of having to step through the IsolatedStorage file browser on the command line, the Power Tools provide a GUI to allow you to interact with your applications.
- Windows Phone 7 Ad Rotator (nice to have): An ad rotator control for Windows Phone 7 with Silverlight and XNA support. Supports showing ads from different providers with configurable probabilities based on culture. The control fetches the settings from a remote XML file making real time swapping / replacing of ad providers possible.
- Simple MVVM Toolkit for Silverlight, WPF and Windows Phone (nice to have): Simple MVVM Toolkit makes it easier to develop Silverlight, WPF and WP7 applications using the Model-View-ViewModel design pattern. The purpose of the toolkit is to provide a simple framework and set of tools for getting up to speed quickly with applications based on the MVVM design pattern. The emphasis is on simplicity, but it contains everything you need to implement MVVM for real-world line of business applications.
- Sterling NoSQL OODB for .NET 4.0, Silverlight and Windows Phone (nice to have): Sterling is a lightweight NoSQL object-oriented database for .Net 4.0, Silverlight 4 and 5, and Windows Phone 7 that works with your existing class structures. Sterling supports full LINQ to Object queries over keys and indexes for fast retrieval of information from large data sets.
- Silverlight and Windows Phone Augmented Reality Toolkit (nice to have): SLARToolkit is a flexible Augmented Reality library for Silverlight and Windows Phone with the aim to make real time Augmented Reality applications with Silverlight as easy and fast as possible.
Now, of course there are a lot more projects available on Codeplex to support your Windows Phone application development and you may have your own favourites. If you have one you use a lot that isn’t listed, feel free to share on this post!