Metro Revealed Download from Wow! eBook Building Windows Apps with XAML and C# Adam Freeman Contents at a Glance About the Author xiii About the Technical Reviewer xv Acknowledgments xvii ■■Chapter 1: Getting Started ■■Chapter 2: Data, Binding, and Pages 17 ■■Chapter 3: AppBars, Flyouts, and Navigation 35 ■■Chapter 4: Layouts and Tiles 53 ■■Chapter 5: App Life Cycle and Contracts 71 ■■Index .87 v Chapter Getting Started Metro apps are an important addition to Microsoft Windows 8, providing the cornerstone for a single, consistent programming and interaction model across desktops, tablets, and smartphones The Metro app user experience is very different from previous generations of Windows applications: Metro-style apps are full-screen and favor a usability style that is simple, direct, and free from distractions Metro apps represent a complete departure from previous versions of Windows There are entirely new APIs, new interaction controls, and a very different approach to managing the life cycle of applications Metro apps can be developed using a range of languages, including JavaScript, Visual Basic, C++, and, the topic of this book, C# Windows builds on the familiar to let developers use their existing C# and XAML experience to build rich Metro apps and integrate into the wider Windows platform This book gives you an essential jump start into the world of Metro; by the end, you will understand how to use the controls and features that define the core Metro experience ■■Note Microsoft uses the terms Metro style and Metro-style app I can’t bring myself to use these awkward terms, so I am just going to refer to Metro and Metro apps I’ll leave you to mentally insert style as needed About This Book This book is for experienced C# developers who want to get a head start creating Metro applications for Windows using the Consumer Preview test release I explain the concepts and techniques you need to get up to speed quickly and to boost your Metro app development techniques and knowledge before the final version of Windows is released What Do You Need to Know Before You Read This Book? You need to have a good understanding of C# and, ideally, of XAML If you have worked on WPF or Silverlight projects, then you will have enough XAML knowledge to build Metro apps Don’t worry if you haven’t worked with XAML before; you’ll can pick it up as you go, and I give you a brief overview later in this chapter to get you started I’ll be calling out the major XAML concepts as they apply to XAML as I use them What Software Do You Need for This Book? You will need the Windows Consumer Preview and the Visual Studio 11 Express Beta for Windows You can download both of these from http://preview.windows.com You don’t need any other tools to develop Metro applications or for the examples in this book CHAPTER ■ Getting Started Windows Consumer Preview is not a finished product, and it has some stability issues You’ll get the best experience if you install Windows directly onto a well-specified PC, but you can get by with a virtual machine if you are not ready to make the switch What Is the Structure of This Book? I focus on the key techniques and features that make a Metro app You already know how to write C#, and I am not going to waste your time teaching you what you already know This book is about translating your C# and XAML development experience into the Metro world, and that means focusing on what makes a Metro app special I have taken a relaxed approach to mixing topics together Aside from the main theme in each chapter, you’ll find some essential context to explain why features are important and why you should implement them By the end of this book, you will understand how to build a Metro app that integrates properly into Windows and presents a user experience that is consistent with Metro apps written using other languages, such as C++ or JavaScript This is a primer to get you started on Metro programming for Windows It isn’t a comprehensive tutorial; as a consequence, I have focused on those topics that are the major building blocks for a Metro app There is a lot of information that I just couldn’t fit into such a slim volume If you want more comprehensive coverage of Metro development, then Apress will be publishing Jesse Liberty’s Pro Windows Development with XAML and C# book for the final release of Windows They will also be publishing my Pro Windows Development with HTML5 and JavaScript if you want to use more web-oriented technologies to build your Metro apps The following sections summarize the chapters in this book Chapter 1: Getting Started This chapter Aside from introducing this book, I show you how to create the Visual Studio project for the example Metro app that I use throughout this book I give you a brief overview of XAML, take you on a tour of the important files in a Metro development project, show you how to run your Metro apps in the Visual Studio simulator, and explain how to use the debugger Chapter 2: Data, Bindings, and Pages Data is at the heart of any Metro application, and in this chapter I show you how to define a view model and how to use Metro data bindings to bring that data into your application layouts These techniques are essential to building Metro apps that are easy to extend, easy to test, and easy to maintain Along the way, I’ll show you how to use pages to break your app into manageable chunks of XAML and C# code Chapter 3: AppBars, Flyouts, and NavBars There are some user interface controls that are common to all Metro apps, regardless of which language is used to create them In this chapter, I show you how to create and configure AppBars, Flyouts, and NavBars, which are the most important of these common controls; together they form the backbone of your interaction with the user Chapter 4: Layouts and Tiles The functionality of a Metro application extends to the Windows Start menu, which offers a number of ways to present the user with additional information In this chapter, I show you how to create and update dynamic Start tiles and how to apply badges to those tiles About the Technical Reviewer Fabio Claudio Ferracchiati is a senior consultant and a senior analyst/developer using Microsoft technologies He works for Brain Force (http://www.brainforce.com) in its Italian branch (http://www.brainforce.it) He is a Microsoft Certified Solution Developer for NET, a Microsoft Certified Application Developer for NET, a Microsoft Certified Professional, and a prolific author and technical reviewer Over the past ten years, he’s written articles for Italian and international magazines and coauthored more than ten books on a variety of computer topics xiii Acknowledgments I would like to thank everyone at Apress for working so hard to bring this book to print In particular, I would like to thank Jennifer Blackwell for keeping me on track and Ewan Buckingham for commissioning and editing this revision I would also like to thank my technical reviewer, Fabio, whose efforts made this book far better than it would have been otherwise —Adam Freeman xv ... C# and XAML experience to build rich Metro apps and integrate into the wider Windows platform This book gives you an essential jump start into the world of Metro; by the end, you will understand... understanding of C# and, ideally, of XAML If you have worked on WPF or Silverlight projects, then you will have enough XAML knowledge to build Metro apps Don’t worry if you haven’t worked with XAML. .. end, you will understand how to use the controls and features that define the core Metro experience ■■Note Microsoft uses the terms Metro style and Metro- style app I can’t bring myself to use these