Top Ranked: Supporting all Markets

Date : January 9, 2012

Note: This video is the first in the series so I spend some time at the beginning introducing myself and the goals for the series.  To get directly to the content in this episode skip to about the 4:00 mark. 

When we launched the Windows Phone platform we released initially for the EFIGS (English, French, Italian, German and Spanish) markets.  In all that was about 16 markets.  With Mango we added a bunch more and just a few days ago we added another few.  We’re now up to 41 markets worldwide where as a developer you can choose to make an app available. 

Since we cannot know what the rights are, related to your app, we cannot just publish your app to new markets as those markets come on-stream.  In order for an app to made available in these new countries you will have to go into your App Hub account and cross-submit every time new markets come online.  I am surprised at how many apps don’t do this.  I suspect many developers don’t even know that they have to do this.  It’s such an easy thing to do that I thought I would do this as part of the first episode.

It may be easy but if you stay on top of it you may find that you get a nice boost in downloads as new markets come online since you’ll be there first.  Rather than try to describe what needs to be done go ahead and watch the video (topic starts at about the 4:00 mark).

More viewing options including HQ video are available here.  The complete Top Ranked Series is available here.

Let me know what you think about this episode of Top Ranked.

If you have questions about the videos, or about problems or issues you’re hitting or if you have topics that you think would be of interest to other devs on the Windows Phone platform then drop me a note. I’d be particularly interested in hearing about some of the best practices you’ve adopted that you think have raised your quality or your ratings/ranking in the Marketplace. I’ll be sure to give full credit and link love whenever I can.

You can drop me a note via the contact form on my blog here:

Or better yet follow me on twitter and drop me a note there:

Introducing: Top Ranked

Date : January 9, 2012

TopRankedWith this post I’m introducing a new series of videos I’m producing which called Top Ranked.  In this series I’ll present various topics that will be of interest to developers building on the Windows Phone platform.  My aim is to provide short videos on topics that will help you raise the quality of your apps and hopefully at the same time raise the ranking of your apps in the Windows Phone Marketplace.

Over the past couple of years I’ve worked with many different partners and agencies building apps for Windows Phone.  I’ll try and share some of the things I’ve learned.  I’ll also pull from the many people and resources we have within Microsoft.  I may even pull in

I’ll explore across a range technical, design and marketing topics.  Again, my goal is to give you a little something in each episode that will raise the quality of your app or help you raise the visibility of your app.

I’ll do my best to keep these videos very short.  By that I mean that each one will be 15 minutes or shorter.   If an episode looks like it will go longer than that I’ll try And break it up into smaller more digestible topics.

If you have questions about the videos, or about problems or issues you’re hitting or if you have topics that you think would be of interest to other devs on the Windows Phone platform then drop me a note. I’d be particularly interested in hearing about some of the best practices you’ve adopted that you think have raised your quality or your ratings/ranking in the Marketplace. I’ll be sure to give full credit and link love whenever I can.

The Top Ranked series is hosted on Channel 9.  You can subscribe to the episodes via Zune or iTunes.  All that is available here:

You can drop me a note via the contact form on my blog here:

Or better yet follow me on twitter and drop me a note there:

BackKeyPress and LostFocus Colliding

Category : Windows Phone 7
Date : November 23, 2010

I’m working on a Windows Phone 7 app and ran into an issue that I just couldn’t figure out.  I was trapping the LostFocus event on a TextBox and finding that by handling the LostFocus event I was losing the case where the user hit the Back Key since that actually triggered the LostFocus event event first.  Peter Torr came to rescue with a code snippet that allowed me to handle that special case.  I’m posting here so others can benefit.

In my case all I needed was the ability to figure out if the reason the control lost focus was the result of a Back Key press.  The code snippet below also provides for other scenarios like the user tapped outside the textbox or on another control.

    private void textbox_LostFocus(object sender, RoutedEventArgs e)

object focusedElement = FocusManager.GetFocusedElement();
if (focusedElement == null)
whoHasFocus.Text = "User tapped outside of textbox";
else if (focusedElement == this)
whoHasFocus.Text = "SIP Dismissed";
else if (focusedElement is FrameworkElement)
whoHasFocus.Text = (focusedElement as FrameworkElement).Name + " has focus";
whoHasFocus.Text = "Magic 8-ball says....";

PDC on your Windows Phone 7

Date : October 27, 2010

PDCnowVertigo Software just released their PDC10 Windows Phone 7 app.  That’s going to make it a lot easier to follow along this year.  If you have a WP7 device go download it now.

This year we’ll be broadcasting pretty much every minute of the PDC.  As part of building out the infrastructure and in an effort to extend that even farther out, we worked with Vertigo to ensure that both attendees and remote participants had on-the-go access to both live and on-demand viewing of the PDC event.

So for folks that can’t make it to Redmond the keynote will be available “live” on the device.  Pre-recorded session content will be available once the conference starts.  All other sessions will be available on-demand soon after the session is over (we’re shooting for within 24 hours).

Technical Details

SessionDetaiAs I mentioned, Vertigo Software built this app.  They did it in about 3 weeks with a pretty small team.  Here are a few technical details for the Windows Phone geeks curious about how this was built:

  • The entire user experience was designed and developed using Blend 4 for Windows Phone (well, of course, what else would they use   )
  • The application was architected using the MVVM design pattern and they used MVVM Light for Windows Phone as their MVVM framework
  • The video experience was powered by the Silverlight Media Framework for Windows Phone and the Smooth Streaming Media Element
  • Content is delivered using Microsoft’s Smooth Streaming media format, specially formatted for Windows Phone.
  • The content will contain multiple camera angles (speaker and presentation) and the PDC10 player allows the user to switch between these two views.

Get the app now

The app is now live in the marketplace and available to download


Windows Phone 7 Development Jump-Start Events

Date : May 6, 2010

As part of our efforts to help developers get started with building their applications and games on the Windows Phone 7 platform we’re planning a couple of events in Redmond (May 18-19) and Silicon Valley (May 25-26).  If you’re interested, be sure to register using the links below.


Get a jump-start on building apps for Windows Phone 7 with this 2 day hands-on training event. You’ll learn how to build Silverlight or XNA applications that take advantage of the many Windows Phone 7 platform features.

We’ll introduce all the basic topics required to get started building Silverlight applications or XNA games. We’ll cover the Windows Phone 7 platform, the frameworks and both designer and developer tooling. We’ll also cover the process for publishing your application or game to the Marketplace. Topics covered will be reinforced with hands-on-labs where attendees practice on their own laptops.

This event will take a basic approach so, while it may be helpful to know Visual Studio etc, that will not be a prerequisite. Developers new to the platform are welcome (encouraged, even!) to attend.


Attendee Prerequisites:


Attendees are expected to bring their own laptops to follow along and to participate in the Hand-On Labs.

  • Supported Operating Systems: Windows 7 or Windows Vista
    • Windows® Vista® (x86 and x64) ENU with Service Pack 2 – all editions except Starter Edition
    • Windows 7 (x86 and x64) ENU – all editions except Starter Edition
  • Installation requires 3 GB of free disk space on the system drive.
  • Minimum 2 GB RAM
  • DirectX 10 capable graphics card with a WDDM 1.1 driver

Technical Prerequisites: To save time, be sure to have the following installed on your laptop before arriving for the event:

Knowledge of a development language such as C#, C/C++, Java, or JavaScript is expected.

Knowledge and experience with previous versions of Visual Studio, C#, Silverlight and XNA is useful but not required.

Agenda Topics


The following topics will be covered at the event:

  • Windows Phone 7 introduction & design philosophy
  • Lap Around Windows Phone 7 platform
  • Lap Around the Developer and Designer tools
  • Introduction to Silverlight
  • Building Silverlight Applications for Windows Phone 7
  • Hardware Access (camera, accelerometer, touch, etc.)
  • Push notifications
  • Marketplace
  • Introduction to XNA
  • XNA and Windows Phone 7
  • Performance tips


This event is free of charge. However, attendees are responsible for booking and paying for their own travel and accommodation. Both breakfast and lunch will be provided for session days.


Redmond: Numerous hotels are available close to the Platform Adoption Center. For your convenience we’ve provided a hotel map of the area as well as a more comprehensive list of Redmond-area hotels.

Silicon Valley: The Silicon Valley event will be held at the Hilton Santa Clara hotel.


Register Information

Register Today:

Please register here!

Silicon Valley:
Please register here!

Date and Time

Redmond: May 18-19
Silicon Valley: May 25-26



Microsoft Campus
Platform Adoption Center
Building 20
Redmond, WA
Platform Adoption Center


Silicon Valley:

Hilton – Santa Clara
4949 Great America Parkway
Santa Clara, CA 95054


Level: 300-400


Language: English

Audience: Mobile Application and Game developers


Email me or post a comment below

Windows Azure Lessons Learned: RiskMetrics

Category : Windows Azure
Date : January 27, 2010

WinAzure_h_rgb In this episode of “Azure Lessons Learned” Rob Fraser from RiskMetrics talks about the work they’ve done with Windows Azure to scale some of their heavy computational workloads out to thousands of nodes on Windows Azure.

RiskMetrics specializes in helping to manage risk for financial institutions and government services.  The solution they built on Windows Azure is primarily for calculating financial risk for their clients.  Calculating the risk on portfolios of financial assets is an incredibly compute-intensive problem to solve (Monte Carlo simulations on top of Monte Carlo simulations).  There is an ongoing and increasing demand for this type of computation.  RiskMetrics calculations require enormous computational power but the need for that power tends to come in peaks.  That means the required hardware is idle for much of the time.  Windows Azure solves this problem by allowing RiskMetrics to quickly acquire the very large number of required processors, use them for a short time and then release them.

Get Microsoft Silverlight
Channel 9: Windows Azure Lessons Learned: RiskMetrics


To give you a sense of the scale RiskMetrics is talking about, the initial target is to use 10,000 worker roles on Windows Azure.  And that’s just a beginning as Rob thinks they could eventually be using as many as 30,000.

While using Windows Azure may help control costs, the real motivation is having the kind of compute power they need to build analytic services for their clients that they just wouldn’t otherwise be able to do easily.

Rob goes in to some depth on the architectural pattern they devised to ensure the efficient flow of work packets from their data center into the cloud for processing and then back again with the results.  The architecture is an interesting hybrid of on-premises and cloud computing.

Rob (along with his colleague Phil Jacob) also presented some of this in a PDC session.


The Steady Progress of Storage

Category : Geeking Out
Date : January 23, 2010

I’m building a Windows Media Center for a home theater setup I’m planning and in the process was installing a new hard drive into the PC.  Before I dropped it into the new machine I was showing it to my son and pulled out an old drive I had for comparison.  I was a little taken aback at the contrast of the two drives below.  The one on the left is a 10 megabyte (MB) Seagate ST-412.  The one on the right is a 1 terabyte (TB) Western Digital Caviar.  In case you’re having trouble doing the math in your head, let me help you out.  1TB is roughly equal to 1,000,000MB. So the drive on the right holds roughly about 100,000 times more data than the one on the left.

Comparison of a 10MB Drive with a 1TB Drive
Click to see the full size photo


That Seagate ST-412 on the left is pretty old.  I’ve had it since forever and just use it as a bookend.  For those interested in the history of that drive, that was the first hard drive used in the original IBM PC XT back in 1981.

Good times, good times…  <grumble grumble>


SQL Azure Lessons Learned: ESRI

Category : Windows Azure
Date : January 21, 2010

SQL-Azure_rgbIn this episode of Lessons Learned I chat with Rex Hansen of ESRI.  Rex works on MapIt; a product for visualizing enterprise data on maps.  This was recently released as a on-premises product that enables developers to work with the tabular and spatial data in SQL Server 2008 and integrate that data with maps on ArcGIS online and Bing Maps. 

ESRI has been working to extend that functionality to Windows Azure and SQL Azure.  MapIt takes advantage of SQL Azure to consume location-based data.  The MapIt spatial data service can be deployed as a role on Windows Azure and provides spatial data capabilities to applications using SQL Azure.  This provides a valuable service to folks that miss the spatial data types they were used to using in SQL Server.

Get Microsoft Silverlight
Channel 9: SQL Azure Lessons Learned: ESRI 


Rex walked me through building a Silverlight application with their Silverlight Control Toolkit in Expression Blend.  As Rex mentions in the video ESRI has released the source code for their Silverlight toolkit controls.  You can find those on CodePlex here:

It sounds like ESRI has some big plans for where they want to take the MapIt product to provide even better integration with SQL Azure.

You can find out more about the ESRI MapIt product here.


SQL Azure Lessons Learned: Telerik

Category : Windows Azure
Date : January 6, 2010

SQL-Azure_rgb Telerik is one of the more popular component vendors building good stuff for ASP.NET, Silverlight, and WPF.  I was intrigued by the interest they have taken in the Windows Azure Platform.  Naturally all the UI components just work on the platform with no changes required.  Telerik has gone further in looking at how they can adapt their Object Relational Mapper (ORM) and Content Management System (CMS) technologies to take advantage of the benefits of Azure.

Stephen Forte is their Chief Strategy Officer (love that title :)) responsible for thinking about their new technology directions.  In this episode of Lessons Learned, Stephen shows me how they’re now able to go from SQL Azure tables to persistent classes when developing applications using their OpenAccess ORM product.

Get Microsoft Silverlight
Channel 9: SQL Azure Lessons Learned: Telerik


The process of implementing a SQL Azure provider for OpenAccess was fairly straightforward.  Telerik ran unit tests of their existing SQL Server provider against SQL Azure to find the differences.  They found the few minor issues and were able to get a working version running in three weeks or so.

The biggest difference they found between SQL Server and SQL Azure was the data types.  SQL Azure supports most of the SQL Server data types but some (like spatial, text, etc) are not supported.  Another difference was multiple active result sets (MARS).  This one was a little trickier and with some work they were able to get the same end-result using different t-sql.

The OpenAccess ORM product is available now.  Telerik is also dogfooding it internally using another of their products: Sitefinity CMS.  The next release of Sitefinity will then support SQL Azure as a data store.

A few links mentioned in this episode: