Waiting for Your Windows Phone Beta App

Publishing a beta version of a WP7 app is both exciting (“does it work on someone else’s phone?”) and frustrating (“when is it going to actually show up?”). Having submitted maybe five beta versions over the holidays I wanted to improve the latter problem.

The beta submission process today looks like this:

  • Submit your app in the App Hub as a beta app
  • At some random point in time (1-8 hours in my experience) you receive an email from Windows Phone Marketplace claiming it is available to your beta testers, including a zune: link
  • You try the zune: link and it says “sorry this item is no longer available in this marketplace” and you curse
  • At some other random point in time (2-24 hours in my experience) the link will start working
  • You send email to your beta testers for them to beat on your app

What follows is a simple PC tool I wrote that at least will tell me when the download is available. There isn’t much I can do about the delay in getting the email, but once the email arrives I copy the appid out of the link (the appid is the guid portion), paste it into this fugly WinForms app, and click Wait.

I won’t insult you (or embarrass myself) by showing you the WinForms code, but here is the crucial part:

private void button1_Click(object sender, EventArgs e)
    Guid appid;
    string guid = textBox1.Text;
    if (!Guid.TryParse(guid, out appid))
        MessageBox.Show("Not a valid guid");
        string uri = "http://catalog.zune.net/v3.3/en-us/apps/" + guid + "?store=Zest&clientType=WinMobile+7.1";
        this.Text = "Waiting now...";
        for (; ; )
                string result = new WebClient().DownloadString(uri);
                Debug.WriteLine("Download found at " + DateTime.Now.ToString());
            catch (Exception ex)
            // Wait for 10 minutes
            System.Threading.Thread.Sleep(10 * 60 * 1000);
        this.Text = "Found it!";

Of course you could extend this idea to emit a loud beeping sound, or send yourself or your beta testers an email, or even turn it into a Phone app with a background agent and Live Tile notification. (If you do the latter, be sure to send me a beta!).

7.0 Apps

I only do Mango apps myself these days: if you are still creating 7.0 apps, change the url to use 3.2 and 7.0 instead of 3.3 and 7.1.

Detecting Non Beta Apps

This same idea can also be used to detect when an update to a non-beta app is available, but it requires a little more work: you will need to parse the string returned from DownloadString for the current version, and trigger your alarm only when it has changed. This is left as an exercise for the reader.

In an ideal world the App hub would publish beta apps in minutes from submission, but until it does I hope this tool proves useful.

Comments (5)
  1. nkmcalli says:

    You imbue everything you do with humor.  I think I have have to move your blog from the "Windows Phone" section of my news reader, which I read when I'm serious, to the "Comics" section, which I read when I want to laugh.

  2. Andy-Pennell says:

    Here is the code to use to detect an upgrade on a released app:

    XElement dom = XElement.Load(new StringReader(result));

    var version = from item in dom.Descendants(XName.Get("entry","http://www.w3.org/…/Atom"))

                   select (string)item.Element(XName.Get("version","schemas.zune.net/…/02"));

    string foo = version.FirstOrDefault();

    Debug.WriteLine("Version is " + foo);

    if (foo != "")




  3. peSHIr says:

    What we *really* need for this is a WP7 app for developers. Preferably with Toast Notify en Live Tile support. Any takers? Please…

  4. Mess says:

    Nice! Exactly what I need :)!

    Lol @ "You try the zune: link and it says “sorry this item is no longer available in this marketplace” and you curse"

  5. Peter says:

    so, I went ahead and created a WP app based on this called 'Dude, Where's my Downoad link?".

    it's currently beta published and might eventually make it's way onto the marketsplace.

Comments are closed.

Skip to main content