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.
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?