BOOKS FOR PROFESSIONALS BY PROFESSIONALS® Companion eBook Available Pro Windows Phone Development also shows you how to tap groundbreaking capabilities of the Windows Phone hardware platform, including using hardware sensors, making your apps location-aware using GPS data, utilizing the rich media capabilities of the handsets, and even how to publish and sell your application through the Windows Phone Marketplace Pro Windows Phone Development will help you: Better explore the relationship of Silverlight, NET, the XNA Framework, Visual Studio, and Expression Blend and how to effectively use these tools Build applications that are aware of the environment around them, using features like the location service, accelerometer, and touch gestures Develop rich media applications that leverage the graphics capabilities of Windows Phone handsets Discover the correct way to design and develop Windows Phone applications utilizing the Model-View-ViewModel architecture • • • • Whether you are a NET developer looking to use your existing skills or an iOS or Android developer looking to expand the market for your existing applications, Pro Windows Phone Development will be your guide to harnessing the power of this new mobile platform Cameron COMPANION eBOOK US $44.99 Shelve in Mobile Computing SOURCE CODE ONLINE www.apress.com Windows Phone Development nlock the potential of Microsoft’s new mobile platform and quickly create state-of-the-art mobile applications with Pro Windows Phone Development Author Rob Cameron, a Windows Phone evangelist with Microsoft, walks you through the complete mobile app development experience, including demonstrating how to effectively use Microsoft technologies like Silverlight, NET, the XNA Framework, Visual Studio, and Expression Blend to develop killer Windows Phone apps Pro U User level: Intermediate–Advanced Master the art of creating authentic mobile applications on Microsoft’s newest platform Pro Windows Phone Development Rob Cameron Download from Wow! eBook 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 Contents v About the Author xii About the Technical Reviewer xiii Acknowledgments xiv Introduction xv ■Chapter 1: Introduction to Windows Phone and Marketplace 1 ■Chapter 2: Silverlight User Interface Development 47 ■Chapter 3: Handling Input on Windows Phone 131 ■Chapter 4: Windows Phone Programming Model 183 ■Chapter 5: Windows Phone Advanced UI Development 251 ■Chapter 6: Windows Phone Advanced Programming Model 309 ■Chapter 7: Building 2D Games with the XNA Framework 367 ■Chapter 8: Advanced XNA Framework Development 405 Index 441 iv Introduction Authoring a book on mobile development with a title that starts with “Pro” is a daunting task Put in too much introductory material and you lose the knowledgeable developer looking to take his application to the next level Breeze through key concepts and the cross-platform professional mobile developer may struggle learning how to work with targeting a relatively new platform in Windows Phone Another challenge is culling down what to cover between Silverlight and the XNA Framework Both are fabulous and interesting technologies so I strived to cover both in a single text, though this book is more geared toward Silverlight developers who are interesting in learning about the XNA Framework as well This book provides a comprehensive overview of XAML and Silverlight since it is a critical aspect of WP7 development It also focuses on many of the more challenging topics such as correctly architecting Silverlight for Windows Phone applications using the Model-View-ViewModel architecture as well as working with services, encryption, and gestures There are many tidbits throughout this book extracted from many long hours of working with top media brands to bring their content and applications to Windows Phone I hope that sharing this knowledge on memory and CPU optimization gleaned from these experiences helps to bring your applications to the top of the rankings in the Windows Phone marketplace Who This Book Is For If you are an existing Silverlight developer, this book will provide details on how to leverage your Silverlight skills for Windows Phone If you are a mobile developer looking to port an existing application to Windows Phone 7, then this book will give you the information you need, covering the core concepts and techniques fundamental for Silverlight for Windows Phone development Having an understanding of the NET Framework will help, but if you are an experienced developer new to the NET Framework, you will still be able to learn Windows Phone development using this book because much of the development is in the XAML markup language as well as in code Note You still may want to grab a programming in C# text such as Adam Freeman’s Introducing Visual C# 2010 (Apress, 2010) if you are not confident with C# The example code in this book is written in C# However, much of the development is in the XAML, not in C#, so if you are a VB.NET developer, the markup is almost exactly the same For the examples that include C# code in the code-behind, the code translates pretty easily, as the NET Framework for Silverlight for Windows Phone is language agnostic xv ■ INTRODUCTION How This Book Is Structured This book consists of chapters that focus on individual topic areas of Windows Phone and is intended to be read in the order in which it is written; however, I strive to point to related sections in other chapters so if you need to skip ahead to a specific topic feel free to so I spend a bit more time on Silverlight than the XNA Framework, but both are covered throughout the book Chapter starts with an introduction to the Windows Phone Platform, the AppHub marketplace, Silverlight, and concludes with a detailed introductory sample on the XNA Framework Chapter focuses exclusively on Silverlight UX development Chapter covers input, leveraging examples both for Silverlight and the XNA Framework With the fundamentals for professional development on Windows Phone out of the way, Chapter dives into the programming model with Silverlight as well as how to integrate into the Windows Phone platform via tasks and choosers Chapter also covers the Bing Maps control and the WebBrowser control, including how to communicate between Silverlight and JavaScript Chapter covers Advanced Silverlight UI development starting with a detailed investigation of the Model-View-ViewModel pattern While this may seem odd in a chapter focused on UI, good architecture focuses on separation of concerns, which leads to better user experience and cleaner XAML Chapter covers advanced programming model concepts, including Advanced Data Binding, the Silverlight toolkit for WP7, working with the Media Library, creating a Photos Extra and Music plus Video hub application, as well as other integration scenarios Chapter dives in deep on XNA Framework development for 2D applications, building on the introductory sample from Chapter It includes coverage on how to leverage the Game Management sample from AppHub to create a professional looking application Chapter starts off with adding polish to the Chapter 2D game development sample, covering saving and load as well supporting tombstoning in XNA A simple particle system is added to the 2D game to add explosions Chapter then delves into the world of 3D game development, covering working with primitives and models in 3D Prerequisites You will need a version of Visual Studio 2010, with Service Pack of Visual Studio 2010 applied You will also need to install Windows Phone Developer Tools available here: http://create.msdn.com/en-us/home/getting_started You will want to download the Silverlight Toolkit for WP7 available here: http://silverlight.codplex.com I also highly recommend that you review the Design Resources for Windows Phone available here: http://msdn.microsoft.com/en-us/library/ff637515(VS.92).aspx Downloading the Code The code is available in zip file format in the Source Code/Download section of the Apress web site Please review the readme.txt for setup instructions Contacting the Author To reach the author, please go to his blog and click the Email link to send him an email Rob Cameron: http://blogs.msdn.com/RobCamer xvi About the Technical Reviewer ■ Rob Garrett has worked with SharePoint since the early beta version of MOSS 2007 and has leveraged his talents for SharePoint architecture and design with Portal Solutions—a SharePoint consultant company in Rockville, MD Rob has extensive background in NET technologies and has developed software for Microsoft Frameworks since the early days of C++ and MFC In pursuit of his career dreams, Rob left his birthplace in England for a journey to the United States on Thanksgiving Day 1999 Upon arrival, he enjoyed his first American meal from a gas station xiii Acknowledgments I would like to acknowledge the incredible support provided by the Apress team who patiently waited as I struggled to balance all the demands in my life the past year Jonathan Hassell has been there with me through all of my books with Apress, and I sincerely appreciate his support Debra Kelly has been a trooper prodding me along to keep this book on track through the final push xiv