Introducing Serene for Windows Phone

alt Serene

Serene is a library for Windows Phone 7 that allows applications to self monitor usage and try to prompt good users to leave feedback on marketplace.

Getting users to leave feedback is important to increase the confidence and ranking of your application in the marketplace, but this can only be done with positive feedback. The Serene library (the opposite of irate ;) helps you monitor the usage of your application using configurable and extendable criteria that allows you to establish when you feel someone is likely to give you a positive rating.

Basic usage example of Serene:

public partial class MainPage : PhoneApplicationPage
    private readonly ISereneManager _sereneManager;

    public MainPage()
        Loaded += MainPageLoaded;
        _sereneManager = new SereneManager(new[] { new BasicUsageCriteria() });

    void MainPageLoaded(object sender, RoutedEventArgs e)
        _sereneManager.RedirectToMarketPlaceIfRequired("Would you like to rate this application now?", "Serene", DateTime.Now.AddDays(14));

If you require something more flexible, for example you want to control the message UI being displayed. Then Serene has these bits exposed too:

var status = _sereneManager.RunCriteria();
    if(MessageBox.Show("Would you like to rate this application now?", "Serene", MessageBoxButton.OKCancel) == MessageBoxResult.OK)

The Serene library is available on codeplex at

WP7 Serene
Posted by: Brendan Kowitz
Last revised: 21 Sep 2013 12:13PM


4/30/2011 12:40:13 PM
So instead of bugging every user to rate your application - the idea is to focus on those that use your application regularly in a hope that you'll elicit a higher volume of higher ratings - clever. If you had a more complex application, could you implement a new criteria that tracked the usage inside the application itself instead of the basic usage such as the number of times its been run or duration of installation? For instance, lets say you had a Twitter application for Windows Phone 7 - could you track and easily leverage the feature use (tweets, replies, retweets, uplodaing photos, ..)?
5/1/2011 7:47:47 AM
Yes, the Serene library provides only a small amount of infrastructure and a basic usage criteria to get started. New criteria can easily be implemented with the ICriteria interface and passed into the SereneManager. It's written so that you can easily customise the criteria, extend or write your own stack entirely. There is also the ability to 'and' them together so that multiple criteria must be satisfied, or maybe just one important/key one. I hope to document more of the library soon, as well as getting out the first release :)

No new comments are allowed on this post.