(X) Hide this
    • Login
    • Join
      • Say No Bots Generate New Image
        By clicking 'Register' you accept the terms of use .

Getting ready for the Windows Phone 7 Exam 70-599 (Part 1)

(10 votes)
Peter Kuhn
Peter Kuhn
Joined Jan 05, 2011
Articles:   44
Comments:   29
More Articles
32 comments   /   posted on Jun 06, 2011
Categories:   Windows Phone
"Taking the WP7 70-599 exam was a bit tricky due to there being no set material. But @silverlightshow has a good guide on what to learn, which I followed myself."

Matt Cavanagh, http://roguecode.co.za

Microsoft's certification exam 70-599 for its new mobile platform is named "Designing and Developing Windows Phone 7 Applications" and will be published on July 14th, 2011. This series will try to bring you up to speed to take the exam once it is available, or can be used as a basis to plan your own, self-paced learning to prepare for the exam at a later point.

Certification Requirements (updated July 15th)

After the exam had officially been published on July 14th, Microsoft also added the final requirements for the Microsoft Certified Professional Developer certificate the exam counts as credit toward to their MCPD certifications page. The details about this can be found here. In particular, to earn this certification you need the following exams:

Another important detail that has now been added to the page of the 70-599 exam is:

Note that candidates who earn the MCPD: Windows Phone Developer certification will be required to show continuing ability to perform in this technology area by completing a recertification exam every two years.

This means that unlike most other MCPD certificates that are valid until the end-of-life of the involved products and technologies, this certification is only valid for a limited period of time. You need to re-take an exam to prove your ongoing knowledge every two years. This accommodates for the nature of the platform which will evolve and improve in the future.


Unlike with Silverlight for the desktop which had no exam available until version 4, Microsoft pushed out a beta version of the exam for Windows Phone 7 only a few months after the devices hit the market. The publish date for the final version of that exam in July means we'll see the first certification option for developers in a lot less than a year of presence in the market. This once again demonstrates the importance of the platform to Microsoft, and is the attempt to establish a standard to attest a developer's knowledge level early on. For you as a developer this opens the opportunity to demonstrate your expertise by an official certificate and be recognized by potential employers or clients as someone who has internalized and mastered the essential concepts of the platform successfully.

The structure of this article series is based on the measured skills outline available from Microsoft to make it easy to follow along and map what you learn to the requirements of the exam. That outline, along with additional information about the exam, can be found online here: http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-599#tab2. The individual parts are:

  • Designing Data Access Strategies (19%) (this article)
  • Designing and Implementing Notification Strategies (17%)
  • Working with Platform APIs, Tasks, and Choosers (21%)
  • Designing the Application Architecture (21%)
  • Designing the User Interface and User Experience (22%)

You may notice that this sums up to 101%, which means we may finally have found the missing percent of the Silverlight 4 exam.
[This mistake has been corrected by Microsoft, the values now correctly sum up to 100%.]

General Learning Material

In addition to preparing for the exact skills listed on the exam page, it is always a great idea to have a solid knowledge of the basics and an overview of the platform and technology you're working with. One way to acquire that knowledge is to read one of the available books. The books section here on Silverlight Show lists more than a dozen books on Windows Phone 7, ranging from introductory material and general development guides to specialized topics like game programming with XNA. As a special offer, Microsoft Press also offers a free download of Charles Petzold's "Programming Windows Phone 7", a 1,000 pages work that is a round-trip to all the important client-side topics on the phone.

Microsoft has also managed to provide an immense amount of online learning materials, for example:

  • Windows Phone 7 Training Kit – This is an offline kit of 12 labs for both Silverlight and XNA that provides step-by-step explanations and detailed descriptions of key concepts and programming samples.
  • Windows Phone 7 Jump Start – A series of 19 videos on Channel 9 that also explain the basic concepts and features, suitable if you like learning by watching videos.
  • Windows Phone development quickstarts – Another great resource for learning the fundamental features of Windows Phone 7, in code and step-by-step. Don't forget to also check out the other resources in the education section.
  • Code Samples for Windows Phone 7 – A collection of several sample projects on MSDN that not only cover the most common programming tasks and problems, but also include complete applications you can use to learn from.
  • Building a WP7 Application from Start to Finish – Also on MSDN is this interesting series that covers what the title says: creating a whole application from scratch, including the conceptual phase in the beginning as well as information about the submission process to the Marketplace.
  • .toolbox Tutorials and Courses – Takes a designer-oriented approach and teaches concepts and tips and tricks for Windows Phone 7 application design and layout, with focus on tools like Expression Blend.

I will also use these resources as reference for particular topics that are part of the exam. In addition to any kind of material that covers common topics or particular programming tasks, you should also always keep an eye on both the "Windows Phone UI Design and Interaction Guide" (pdf) and the Application Certification Requirements (pdf). Those documents are "the dos and don'ts" guideline for developers and therefore also contains valuable information that might come in handy for the exam.

Designing Data Access Strategies

The first part of the exam is divided into the following sub-topics:

  • Send and receive data
  • Design a data storage strategy
  • Plan for bandwidth limitations and implement network connectivity detection

We'll take a look at each one of those now. A quick note on the MSDN links: all online resources in the MSDN library for the Windows Phone documentation are now the pre-release documents for Windows Phone OS 7.1 ("Mango"). The original documentation for Windows Phone OS 7.0 (which the exam is likely based on) can be downloaded for offline use here (CHM format). Often there's little difference or it is likely that the changes have no effect on the exam; however in some cases this might not be the case or there are options available in "Mango" that are not part of the RTM release, so you should carefully compare the different versions, and if in doubt, base your learning on the 7.0 documentation.

Send and receive data

"This objective may include but is not limited to: design connection mechanisms for communicating with external web services; plan how to consume and parse data from web services (for example, WCF and WS*); ensure a trusted transfer of data to and from a phone"

In our connected world, smart phones like Windows Phone 7 devices have the possibility to access remote resources wherever we are. Using web services to access these resources therefore is a fundamental feature every Windows Phone developer should be able to implement and be familiar with.

A first overview of your options regarding web services can be found in the quick start "getting data into your Windows Phone application". This is an article that explains and/or links to further explanations of the basic web service terminology and technologies, how they fit the picture with Windows Phone, and what your decision should be driven by when you need to choose from the available options. From there, you can start exploring both the Networking and Web Services portal for Windows Phone on MSDN as well as the OData (WCF Data Services) site. Other relevant and interesting resources on this topic are:

WebClient and HttpWebRequest

Both classes are used to send and receive data to and from URI based resources, and hence can take part in all kinds of HTTP-based programming. HttpWebRequest is a lower level method that requires more code, but also gives you more control over the details. These classes can be used for simple tasks or to connect to legacy systems.

Web Services

Apart from using a low-level access using the above mentioned classes, you can also access web services by creating proxy classes and then enjoy comparable comfort to what Silverlight on the desktop enables.


Cloud platforms provide a great scalability for both processing power and storage needs. Windows Phone can make use of the Windows Azure features, for example to access cloud-based services:


Securing communication between the phone and a web service usually is done by transport security, i.e. using HTTPS/SSL.

Design a data storage strategy

"This objective may include but is not limited to: differentiate between persistent and transient data; determine when to use isolated storage; plan for size limitations of isolated storage; design cloud-based storage"

Storing data always is an important topic, but on Windows Phone this becomes a top priority. Microsoft has created a user experience that encourages to seamlessly transition between different applications, which means you always need to be prepared that your application is unloaded or deactivated, and in turn needs to persist important data. Also, you might need to think about local caching and temporary storage of remote data (see below) for performance optimization and/or if you only have limited connectivity.

All applications on the phone are isolated from each other, and also from the rest of the system, so your primary choice for persisting data is limited to the flavor of isolated storage. In addition you have the option to use transient storage (in the form of state dictionaries) for data that is not vital but should be kept and restored when the application is only temporarily deactivated, for example by an interrupting incoming phone call.

In addition to local storage, you can also make use of cloud-based storage. Windows Azure offers this under the name of "Storage Services", and in contrast to the Compute Services that are suitable for web services hosting and similar (see above), the Storage Services offers various possibilities to store data in a file-like manner, both structured and unstructured (Table service and Blob service), as well as other features.

Plan for bandwidth limitations and implement network connectivity detection

"This objective may include but is not limited to: plan for disconnected scenarios; plan for low network bandwidth"

Although it has the potential to provide an "always-on" experience, mobile connectivity also creates a whole new class of problems. Connections are much more unreliable and most of the time slower than tethered ones, and devices seamlessly switch between different kinds of connections like Wi-Fi and 3G. If your application relies on remote resources, you have to accommodate for that and take into account that at worst you don't have any data connection at all.

Windows Phone offers some simple mechanisms to determine the current network status and connected network type (using the NetworkInterface class and NetworkInterfaceType enumeration) as well as the possibility to get notified about network changes (using the NetworkChange class). This makes it easy to e.g. schedule your downloads for when a faster connection is available.


I hope this first part of the series gives you a good overview of the data access options on Windows Phone 7 for remote and local resources. The amount of linked external resources may seem overwhelming at the moment, but you'll quickly see that this preparation not only is an exercise for the exam, but also improves your coding skills and creates more awareness for your options and alternatives in certain areas. Also, if you study the provided links thoroughly you will later realize that there is some overlapping to topics in the upcoming articles (e.g. regarding the application lifecycle), which should make learning those a bit easier. Let me know any questions or feedback you have, either using the comments or by contacting me directly.

About the Author

Peter Kuhn aka "Mister Goodcat" is an MCPD/MCC and has more than ten years of experience as developer, project lead and technical director. Today he works as trainer for Microsoft Silverlight business application development and the Windows Phone 7 platform (both Silverlight and XNA), as consultant in the field of software design and software development process optimization, and as technical author. You can find his blog here: http://www.pitorque.de/MisterGoodcat



Add Comment

Login to comment:
  *      *       

From this series