For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance About the Authors..............................................................................................xviii About the Technical Reviewer.............................................................................xix Acknowledgments................................................................................................xx Introduction.........................................................................................................xxi Chapter 1: Introducing Windows Phone and the Windows Phone Platform...........1 Chapter 2: Building Windows Phone Applications................................................15 Chapter 3: Building Windows Phone 7 Applications Using Cloud Services As Data Stores......................................................................................................37 Chapter 4: Catching and Debugging Errors........................................................103 Chapter 5: Packaging, Publishing, and Managing Applications.........................129 Chapter 6: Working with the Accelerometer.......................................................151 Chapter 7: Application Bar..................................................................................171 Chapter 8: The WebBrowser Control...................................................................193 Chapter 9: Working with Controls and Themes...................................................213 Chapter 10: Integrating Applications with the Windows Phone OS....................235 Chapter 11: Creating Trial Applications..............................................................265 Chapter 12: Internationalization.........................................................................287 Chapter 13: Isolated Storage..............................................................................311 Chapter 14: Using Location Services..................................................................329 Chapter 15: Media...............................................................................................357 iv Chapter 16: Working with the Camera and Photos.............................................379 Chapter 17: Push Notifications...........................................................................405 Chapter 18: Reactive Extensions for .NET...........................................................445 Chapter 19: Security...........................................................................................479 Index...................................................................................................................513 v Introduction This is the third edition of this book. We wanted to improve upon the first two editions and update the book with new features of the Windows Phone OS, as well as provide hands-on knowledge on how to program the plethora of features offered by Windows Phone devices. While the second edition was being written, Microsoft and Nokia formally announced their partnership and signed an agreement to seal their commitment. While we were writing the third edition, Nokia phones were being released to the European markets, and they should be coming to the United States in days. We hope that this book will provide developers with the practical knowledge that we gained by developing real-world applications; we also hope it will inspire developers to create many cool applications for the Windows Phone platform. Who This Book Is For This book assumes that you have basic C# and .NET knowledge. This book will provide you with basic fundamentals and skills that you need to be successful in developing Windows Phone applications. You don’t need previous experience developing mobile applications—the only thing you need is a desire to learn new technology. What You Need to Use This Book In order to write Windows Phone applications and test out the examples in this book, you’ll need to download the tools listed here. All of these are available at no charge from Microsoft. You’ll find additional information on how to install and use these tools in Part 1 of this book. • Windows Phone Developer Tools RTW: http://download.microsoft.com/download/ 1/7/7/177D6AF8-17FA-40E7-AB53-00B7CED31729/vm_web.exe • Zune software: www.zune.net/en-us/products/software/download/ • User Experience Design Guidelines for Windows Phone: http://go.microsoft.com/fwlink/?LinkID=183218 • Windows Phone 7 Marketplace Certification Requirements: http://go.microsoft.com/?linkid=9730558 • Microsoft SQL Server 2008 R2 Express: www.microsoft.com/express/Database/ • Azure Tools for Visual Studio 1.2 June 2010: http://download.microsoft.com/ DOWNLOAD/1/F/9/1F96D60F-EBE9-44CB-BD58-88C2EC14929E/VSCLOUDSERVICE.EXE xxi INTRODUCTION • Azure SDK (June 2010): http://www.microsoft.com/windowsazure/sdk/ • Windows Azure Platform Training Kit: http://www.microsoft.com/downloads/en/ details.aspx?familyid=413e88f8-5966-4a83-b309-53b7b77edf78 How This Book Is Organized This book contains 19 chapters, broken into 2 major parts. In Part 1, we will walk you through the development life cycle of the application. You will go from coding the simplest possible Hello World– style Windows Phone 7 application to building a full-blown, modern n-tier application that uses both the Windows Phone development platform and the unique cloud services that support it. The section concludes with step-by-step instructions on how to gain certification from Microsoft and offer an application to the public through the Windows Phone Marketplace. In Part 2, you will learn how to use specific features of Windows Phone devices in your applications, including the accelerometer, location services, the Application Bar, reactive extensions, application hub integration, application life cycle events, Isolated Storage, Silverlight, XAML, skinning controls, web browser controls, media elements, photos, push notifications, internalization, and security. While each of its chapters is a tutorial, you can also use Part 2 as a reference. Each chapter focuses on a single phone feature and provides step-by-step instructions on how to incorporate it into your application. Where to Find Sources for the Examples The source code of all of the examples is available at www.apress.com/ or http://wp7apress.codeplex.com. Send Us Your Comments We value your input. We’d like to know what you like about the book and what you don’t like about it. When providing feedback, please make sure you include the title of the book in your note to us. We’ve tried to make this book as error-free as possible. However, mistakes happen. If you find any type of error in this book, whether it is a typo or an erroneous command, please let us know about it. Visit the book’s web page at www.apress.com/9781430235965 and click the Errata tab. Your information will be validated and posted on the errata page to be used in subsequent editions of the book. Contacting the Authors You can contact us directly at the following e-mail addresses: Henry Lee: [email protected] Eugene Chuvyrov: [email protected] xxii C H A P T E R 1 Introducing Windows Phone and the Windows Phone Platform This is an exciting time for mobile app developers as the smartphone race heats up between the major players: Microsoft Windows Phone, Apple iPhone, and Google Android. As a developer, you are faced with an amazing opportunity to develop a mobile application that can be sold to millions of consumers worldwide using any of these platforms. Gartner predicts that by 2014 the smartphone market will boom, and there will be billions of dollars at stake. Recently, Nokia, one of the largest mobile phone makers in the world, announced that it will replace its Symbian-based operating system with the Windows Phone OS. The partnership between Microsoft and Nokia will potentially boost Windows Phone’s global market share to 30 percent, making it even more attractive for Windows Phone developers. The Windows Phone Marketplace, where consumers can purchase applications, opened in November 2010. You might consider downloading Zune software from www.zune.net/en- US/products/software/download/downloadsoftware.htm to view the current Marketplace, or you can navigate on your browser to www.windowsphone.com/en-US/marketplace. Once you have downloaded the Zune software and fired it up, click the Marketplace APPS links, and you will be able to see all the Windows Phone applications currently published, as shown in Figure 1-1. You will learn more about the Marketplace in Chapter 5. 1 CHAPTER 1 INTRODUCING WINDOWS PHONE AND THE WINDOWS PHONE PLATFORM Figure 1-1. Windows Phone Marketplace There are hundreds of ideas for applications waiting to be discovered and developed by people like you. Take a look at Simply Solitaire, QuotedSuccess, DuckCaller, and the mobile baseball game shown in Figure 1-2. Which of these will be among the first Windows Phone hits to catch fire with consumers and sell millions of units? 2 CHAPTER 1 INTRODUCING WINDOWS PHONE AND THE WINDOWS PHONE PLATFORM Figure 1-2. Windows Phone applications 3 CHAPTER 1 INTRODUCING WINDOWS PHONE AND THE WINDOWS PHONE PLATFORM What application will you be developing? We’ve written this book to guide you through the steps it takes to write and launch a successful application to the Windows Phone Marketplace. So what are you waiting for? Let’s get started by diving into what Windows Phone offers to developers like you. Windows Phone Overview Microsoft Windows Phone is a great mobile platform because it offers all of the modern smartphone features, including GPS, e-mail, SMS, a camera, and a music player, and it also provides an easy-to-use development framework that allows millions of .NET developers to learn and develop on Windows Phone quickly. Also, Windows Phone offers multitouch screen capability, a beautiful user interface (UI) that implements a new modern design called Metro, social networking services such as Facebook, and support for popular e-mail services such as Yahoo, Hotmail, Gmail, and AOL (and, if you’re a corporate user, Microsoft Exchange). Moreover, the platform ships with a version of Microsoft Office—a unique feature of Windows Phone. You can use this version of Office to read, edit, save, and sync Word, Excel, and other Office files. This makes Windows Phone a great mobile platform for those who use Office at home or at work. Windows Phone can also integrate with Xbox LIVE, making it a great choice for gamers. Microsoft Windows Phone uses the Zune software to sync installed applications, pictures, and music, and back up and flash OS updates. As a developer, you’ll also use Zune in conjunction with Visual Studio to debug your applications on a real device; more on that in Chapter 4. Microsoft also introduces the concept of a hub with the Windows Phone—a People hub where users can store all of their contacts and social networking connections; a Music hub where consumers can listen to, download, and purchase music; and an App hub, also known as the Marketplace, where you will publish the applications you create. Having a smartphone that’s a hit with consumers is important because the consumer marketplace is where the greatest opportunities lie. One of the great things about Windows Phone is that Microsoft imposes the hardware specifications on the phone manufacturer, making it easy for you to develop an application without worrying about writing device-specific code. For any future release of Windows Phone, you are guaranteed that the application you write today will work regardless of the brand of the mobile device, as long as it runs Microsoft Windows Phone. Naturally, you want to know what language you’ll need to master for your work. For Windows Phone, the languages of choice today are C# and Visual Basic—the primary .NET languages. As for an application development framework, you have two choices: Silverlight or XNA. Silverlight and XNA both use the core .NET Framework. You will learn more about the two frameworks later in this chapter, but first let’s take a closer look at the hardware features you can expect on a Windows Phone device. Windows Phone Hardware Specifications Knowing what’s included in the Microsoft Windows Phone hardware specifications will help you prepare for the special needs of the projects you will undertake. Table 1-1 lists the minimum hardware requirements that any Windows Phone manufacturer must meet, and it also includes suggestions as to how they can impact developers like you. 4