Nothing at all and Everything in general.

Guidelines for Windows Mobile Marketplace Certification

 The developer guidelines are available on the Windows Mobile Developer portal for download. The guidelines aren't terribly different from the Mobile2Market certification guidelines (Microsoft reps have been saying for months to review the Mobile2Market guidelines to get an idea of what would be required for the Windows Mobile Market Place).  That being said I am going to assume to most people haven't done this and will highlight some of the items of the guidelines assuming that you've got little to no familiarity with guidelines at all.  At the time of this writing the guidline document has external links to other documents that are not yet available.  But here are the highlights of the information that is available.

What do I get for Passing Certification?
If your application apsses certification you get the right to label your software with the "Made for Windows Phone" graphic.  Some users may give more trust to software that wears this badge. It's also required for entry into the Market place.

I have an app that passed certification for 6.0/6.1.  Does it need to be recertified?
Yes.  While the document refers to the changes in certification as evolutionary (and not revolutionary) applications that have passed 6.0/6.1 certification must be retested to ensure that they don't violate any of the new guidelines[5].

I have an app that contains content that isn't allowed in the Market Place.  Can I still get it certified?
Yes, you can.  There's a seperate submission process for such applications but they will still go through the same testing.

So passing the certification test means that a program works perfectly, right?
No.  Passing certification means that the application conforms to guidelines.  Certification testing is *not* QA testing, though the application will need to be stable enough for that testing to occurr. 

Does my Application have to pass all the guidelines?
No. There are some guidelines that are recommendations.  Some guidelines are only applicable to certain application types.

I've created software for a specific hardware accessory I sell.  How do I get it certified?
You'll need to send the hardware to the certification lab.

How do files need to be packaged?
Files should be packaged as a CAB file.  Note that the cab file must conform to certain behaviours. The cab should be able to install without prompting the user. The installation must create a shortcut for the program in \Windows\Start Menu\Programs or \Windows\Programs\Games.  During uninstallation the application must clean up data files that it has created.

Are there any API restrictions?
Applications must use the connection manager for all connectivity options.  If the application runs in full screen it must use the SHFullScreen function to do so.  And don't use GAPI.  It's deprecated.  Use the ALLKEYS API instead.

What Screensizes do I need to Support?
Applications must resize their controls to fit common screen sizes. 240x240 is the lowest resolution that must be supported. Your application must respond to the WM_SIZE (for native/C++ apps) or Resize event (for managed/C#/VB.Net apps).  Also note the application must be able to handle the SIP appearing.

How can I get feedback from my users on app crashes?

Register your application with the Windows Quality Labs. For more details see http://winqual.microsoft.com.

What are some of the other guidelines I should know?

  • Shut off timers when your application is run in the background.
  • Don't require/expect external storage to be available
  • No duplication of Outlook/MAPI functionality
  • Application must pass the Hopper test for 2 hours (will do another post about this).
  • Application must pass one hour of the Application Verifier Test.
  • 16x16 and 32x32 pixel icons are required.
    • If an app is designed for VGA devices it is required to also have a 64x64 pixel icon
    • If high DPI mode is supported 22x22 and 44x44 icons are also recommended

What about Widgets?
Widgets have a lot of their own requirements.  For the uninitiated Widgets are apps composed by writing HTML and JavaScript and zipping them up into a *.WGT file.  The link in the guideline document is currently now pointing to a document.

Innovate on Windows Mobile Code Signing Offer

If you've developed a Windows Mobile application and would like to see it listed on the Windows Mobile Application Catalog then it will need to be tested for certification requirements and code signed.  This normally cost up to $800.  But Microsoft is offering a program whereby you can have these services performed for free.  Just visit the Innovation Site  and register.  Remember, make sure that your application adhere's to certification guidelines before submitting the application. Otherwise you could consume part if the $800 woth of service unnecessarily.

Gavin Jacke's HCCB Become's Microsoft's Tag

Gavin Jacke  is a Director of Engineering for Microsoft Research.  One of his inventions is the High Capacity Color Barcode. Microsoft's applied this technology to a new Windows Mobile product called "Tag."  In short a Tag is a color barcode that you can place on a product or in an ad, and some one with the client application on their phone can aim it at your tag to get referred to a website with more information, receive a vCard, or be connected to a phone number.  Pretty cool!