Ever since the first announcement of my "Phone as a Remote Control" project the goal was to work towards a release of the reference app in the Windows Phone Marketplace. Over the last month I've added some improvements and fixes, and I'm glad to announce that last weekend a first version has been accepted and is now publicly available – for free and without advertisement. You should now be able to find the app doing a search for "PAARC" in the Marketplace on your phone, or by visiting this web link. In this post, I'll talk about what reaching this milestone means for you as a developer, and what's in the box for normal users.
Windows Phone PC Controller
One aspect of the now available reference client is of course to function as a showcase for the open source library. To bring it to a meaningful use, one of the included samples available in the project has been extended and evolved into something a bit mature: the Windows Phone PC Controller. This is a .NET desktop application that allows you to transmit phone sensor/touch input to a desktop computer and translate it into operating system level mouse commands which effectively turns your phone into a remote controlling input device for any computer. Again, the source code for this app also is part of the open source project; as a convenience, a pre-compiled installer for it is available to the average user on this stub web page (which also contains some more user-friendly information and FAQs):
A video demonstrating the concept and both the phone as well as the desktop apps in action can be found on the CodePlex documentation page of the project. All of this not only allows you to take a better and quicker look at what's possible with PAARC (than to download and compile the sources yourself), it also is a nice addition to normal users who are not interested in any development – I've been using that remote controlling app for my own media PC for months.
Improved Options for Developers
The more interesting side of this recent development for you as a developer is that the availability of this reference client improves your options of using PAARC too, and makes it much simpler for certain scenarios. Let's take a look at what you had to do until now to integrate PAARC into your own projects:
The highlighted parts are what you as a developer had to do to make use of PAARC. The crucial part here is that often for the Windows Phone part, no custom functionality was needed. Most people I have talked to that found the library interesting had no need for any custom features on the phone side. Yet still you would have had to build your phone application and go through the whole process of submitting it to the Marketplace etc. With the reference client publicly available, your efforts are minimized if the provided functionality is sufficient for your scenario:
You can now simply point your users to the available Windows Phone app in the Marketplace, and they can use that app to connect to your application too. There's no need to develop and submit your own app, you can entirely focus on your .NET desktop application.
The reference client has almost no branding (it of course mentions me and the project on the about page), and by using the inherent remote configuration options built into the open source project you can still adjust the functionality to fit what your particular application needs (e.g. you can turn on and off certain input features like individual sensors, gestures or the built-in text input, by sending controlling commands down to the phone). This makes it tremendously easy for you to work with PAARC if you don't have phone development experience or don't need custom features – you can now focus entirely on the server side code in your .NET application. For more details, go to the project home page on CodePlex.
Wait, There's More
I'm using this milestone as an opportunity to add the first binary release to the CodePlex site. Until now you had to download the source code and compile it yourself when you wanted to start with PAARC, which for some was not a straight-forward experience - the library makes use of the Portable Class Libraries project, for example, which you may not have installed.
A binary release makes it simpler for devs interested in the project to get a first idea and integrate the library into their own projects. Please note that there is no NuGet release. I do not see this library as a component that you quickly pull into your projects, at least not at the moment (but I will consider adding a package when people ask for it).
I hope you enjoy this release, and please let me know when you run into problems with the apps or the library, or when you have suggestions for future features.