Build immersive, responsive touch apps for Windows 8 tablets, computers, and other devices! Top Microsoft MVP and Wintellect consultant Jeremy Likness shows how to leverage your existing C#, XAML, WPF, or Silverlight skills with new Visual Studio 12 tools and best practices to build incredibly powerful Windows 8/WinRT apps! Likness covers everything from line-of-business to consumer apps, showing exactly how Windows 8/WinRT builds upon and contrasts with earlier WPF/Silverlight development. Using outstanding code examples, he shows how to make the most of new platform features including integrated social networking and search, contracts, charms, and tiles. Building Windows 8 Apps with C# and XAML covers the entire application lifecycle, from planning and MVVM-based design through coding, testing, and beyond. Throughout, Likness addresses crucial development challenges that have only been discussed on MSDN, blog posts, and Twitter feeds -- and never with this depth and clarity before. His comprehensive insights and best practices will help readers join the "first wave" of Windows 8 developers -- and gain a powerful competitive advantage in Windows development for every new device and form factor. Bonus projects are available for download online. For all experienced and aspiring Microsoft developers and architects, especially those who are at least somewhat familiar with Silverlight, WPF, C#, XAML, and/or related .NET technologies.
Product Description
“Jeremy builds real apps for real customers. That’s why I can heartily recommend this book. Go out and write some great apps…and keep this book handy.”
—From the Foreword by Jeff Prosise
Build Exceptionally Immersive and Responsive Touch-Based Windows Store Apps for Windows 8 with C# and XAML
This is the first practical guide to building breakthrough applications for Windows 8 from project templates through publication to the new Windows Store. Microsoft “MVP of the Year” Jeremy Likness helps you combine your existing developer skills with new Visual Studio 2012 tools and best practices to create apps that are intuitive and innovative. His guidance and insight will help you dive into Windows 8 development—and gain a powerful competitive advantage for years to come.
Likness illuminates the entire apps lifecycle, from planning and Model-View-View Model (MVVM) based design through coding, testing, packaging, and deployment. He covers both business and consumer apps, showing how Windows 8/WinRT development builds upon and contrasts with older WPF and Silverlight approaches.
Using carefully crafted downloadable code examples and sample projects, Likness shows how to make the most of new platform features, including integrated social networking, search, contracts, charms, and tiles. Throughout, he addresses crucial development challenges that have only been discussed on MSDN, blog posts, and Twitter feeds—and never with this depth and clarity before.
Coverage includes
• Mastering real-world Windows 8 development for all devices and form factors • Understanding the new WinRT framework and the unique characteristics of Windows 8 apps
• Designing apps that are faster, more responsive, do more with less, and maximize battery life
• Creating exceptionally fluid interfaces with VS 2012 templates, built-in animations, and XAML
• Building apps that respond consistently to multiple forms of input, including complex touch manipulations
• Using contracts and charms to expose services or enable users to do so
• Providing information to users through Live Tiles even when your app isn’t running
• Connecting your app seamlessly to multiple data sources, including social networks and cloud storage
• Syndicating rich, network-based content
• Using Model-View-ViewModel (MVVM)
• Securing Windows 8 apps through authentication and authorization
• Efficiently testing, debugging, packaging, and deploying apps
Backcover
Foreword xv
Preface xix
Chapter 1 The New Windows Runtime 1
Looking Back: Win32 and .NET 2
Looking Forward: Rise of the NUI 8
Introducing the Windows Store Application 12
Windows 8 Design 14
Fast and Fluid 15
Snap and Scale 15
Use of Right Contracts 16
Great Tiles 17
Connected and Alive 19
Embrace Windows 8 Design Principles 19
Windows 8 Tools of the Trade 19
Blend for Visual Studio 20
HTML5 and JavaScript 21
C++ and XAML 23
VB/C# and XAML 24
Behind the Scenes of WinRT 25
WPF, Silverlight, and the Blue Stack 26
Summary 28
Chapter 2 Getting Started 29
Setting Up Your Environment 30
Windows 8 30
Visual Studio 2012 35
Blend 36
Hello, Windows 8 37
Creating Your First Windows 8 Application 37
Templates 37
The ImageHelper Application 42
Under the Covers 53
Summary 60
Chapter 3 Extensible Application Markup Language (XAML) 61
Declaring the UI 62
The Visual Tree 64
Dependency Properties 67
Attached Properties 70
Data-Binding 73
Value Converters 78
Storyboards 80
Styles and Resources 85
Layout 88
Canvas 88
Grid 89
StackPanel 91
VirtualizingPanel and VirtualizingStackPanel 93
WrapGrid 94
VariableSizedWrapGrid 96
ContentControl 97
ItemsControl 99
ScrollViewer 99
ViewBox 100
GridView 102
ListView 105
FlipView 106
ListBox 106
Common Controls 107
Summary 109
Chapter 4 Windows 8 Applications 111
Layouts and Views 111
The Simulator 112
The Visual State Manager 115
Semantic Zoom 119
Handling User Input 122
Pointer Events 124
Manipulation Events 126
Mouse Support 128
Keyboard Support 129
Visual Feedback 131
Targeting 132
Context Menus 134
The Application Bar 136
Icons and Splash Screens 143
About Page 145
Sensors 148
Accelerometer 149
Compass 149
Geolocation 150
Gyrometer 151
Inclinometer 151
Light Sensor 152
Orientation Sensor 153
Summary 154
Chapter 5 Application Lifecycle 157
Process Lifetime Management 160
Activation 161
Suspension 163
Termination 166
Resume 166
Navigation 168
Application Data API 172
Connected and Alive 176
Custom Splash Screen 177
Summary 179
Chapter 6 Data 181
Application Settings 181
Accessing and Saving Data 183
The Need for Speed and Threading 189
Understanding async and await 191
Lambda Expressions 194
IO Helpers 195
Embedded Resources 196
Collections 199
Language Integrated Query (LINQ) 200
Web Content 203
Syndicated Content 205
Streams, Buffers, and Byte Arrays 207
Compressing Data 208
Encrypting and Signing Data 211
Web Services 214
OData Support 217
Summary 219
Chapter 7 Tiles and Toasts 221
Basic Tiles 221
Live Tiles 222
Badges 229
Secondary Tiles 231
Toast Notifications 236
Windows Notification Service 242
Summary 250
Chapter 8 Giving Your Application Charm 253
Searching 256
Sharing 266
Sourcing Content for Sharing 267
Receiving Content as a Share Target 274
Settings 280
Summary 283
Chapter 9 MVVM and Testing 285
UI Design Patterns 286
The Model 292
The View 293
The View Model 295
The Portable Class Library 296
Why Test? 301
Testing Eliminates Assumptions 302
Testing Kills Bugs at the Source 302
Testing Helps Document Code 303
Testing Makes Extending and Maintaining Applications Easier 304
Testing Improves Architecture and Design 305
Testing Makes Better Developers 305
Conclusion: Write Those Unit Tests! 306
Unit Tests 306
Windows Store Unit Testing Framework 307
Mocks and Stubs 311
Summary 315
Chapter 10 Packaging and Deploying 317
The Windows Store 317
Discovery 318
Reach 322
Business Models 323
Advertising 328
Preparing Your App for the Store 329
The Process 331
The App Certification Kit 332
What to Expect 335
Side-Loading 337
Summary 339
Index 341
Product Description
“Jeremy builds real apps for real customers. That’s why I can heartily recommend this book. Go out and write some great apps…and keep this book handy.”
—From the Foreword by Jeff Prosise
Build Exceptionally Immersive and Responsive Touch-Based Windows Store Apps for Windows 8 with C# and XAML
This is the first practical guide to building breakthrough applications for Windows 8 from project templates through publication to the new Windows Store. Microsoft “MVP of the Year” Jeremy Likness helps you combine your existing developer skills with new Visual Studio 2012 tools and best practices to create apps that are intuitive and innovative. His guidance and insight will help you dive into Windows 8 development—and gain a powerful competitive advantage for years to come.
Likness illuminates the entire apps lifecycle, from planning and Model-View-View Model (MVVM) based design through coding, testing, packaging, and deployment. He covers both business and consumer apps, showing how Windows 8/WinRT development builds upon and contrasts with older WPF and Silverlight approaches.
Using carefully crafted downloadable code examples and sample projects, Likness shows how to make the most of new platform features, including integrated social networking, search, contracts, charms, and tiles. Throughout, he addresses crucial development challenges that have only been discussed on MSDN, blog posts, and Twitter feeds—and never with this depth and clarity before.
Coverage includes
• Mastering real-world Windows 8 development for all devices and form factors • Understanding the new WinRT framework and the unique characteristics of Windows 8 apps
• Designing apps that are faster, more responsive, do more with less, and maximize battery life
• Creating exceptionally fluid interfaces with VS 2012 templates, built-in animations, and XAML
• Building apps that respond consistently to multiple forms of input, including complex touch manipulations
• Using contracts and charms to expose services or enable users to do so
• Providing information to users through Live Tiles even when your app isn’t running
• Connecting your app seamlessly to multiple data sources, including social networks and cloud storage
• Syndicating rich, network-based content
• Using Model-View-ViewModel (MVVM)
• Securing Windows 8 apps through authentication and authorization
• Efficiently testing, debugging, packaging, and deploying apps
Backcover
Foreword xv
Preface xix
Chapter 1 The New Windows Runtime 1
Looking Back: Win32 and .NET 2
Looking Forward: Rise of the NUI 8
Introducing the Windows Store Application 12
Windows 8 Design 14
Fast and Fluid 15
Snap and Scale 15
Use of Right Contracts 16
Great Tiles 17
Connected and Alive 19
Embrace Windows 8 Design Principles 19
Windows 8 Tools of the Trade 19
Blend for Visual Studio 20
HTML5 and JavaScript 21
C++ and XAML 23
VB/C# and XAML 24
Behind the Scenes of WinRT 25
WPF, Silverlight, and the Blue Stack 26
Summary 28
Chapter 2 Getting Started 29
Setting Up Your Environment 30
Windows 8 30
Visual Studio 2012 35
Blend 36
Hello, Windows 8 37
Creating Your First Windows 8 Application 37
Templates 37
The ImageHelper Application 42
Under the Covers 53
Summary 60
Chapter 3 Extensible Application Markup Language (XAML) 61
Declaring the UI 62
The Visual Tree 64
Dependency Properties 67
Attached Properties 70
Data-Binding 73
Value Converters 78
Storyboards 80
Styles and Resources 85
Layout 88
Canvas 88
Grid 89
StackPanel 91
VirtualizingPanel and VirtualizingStackPanel 93
WrapGrid 94
VariableSizedWrapGrid 96
ContentControl 97
ItemsControl 99
ScrollViewer 99
ViewBox 100
GridView 102
ListView 105
FlipView 106
ListBox 106
Common Controls 107
Summary 109
Chapter 4 Windows 8 Applications 111
Layouts and Views 111
The Simulator 112
The Visual State Manager 115
Semantic Zoom 119
Handling User Input 122
Pointer Events 124
Manipulation Events 126
Mouse Support 128
Keyboard Support 129
Visual Feedback 131
Targeting 132
Context Menus 134
The Application Bar 136
Icons and Splash Screens 143
About Page 145
Sensors 148
Accelerometer 149
Compass 149
Geolocation 150
Gyrometer 151
Inclinometer 151
Light Sensor 152
Orientation Sensor 153
Summary 154
Chapter 5 Application Lifecycle 157
Process Lifetime Management 160
Activation 161
Suspension 163
Termination 166
Resume 166
Navigation 168
Application Data API 172
Connected and Alive 176
Custom Splash Screen 177
Summary 179
Chapter 6 Data 181
Application Settings 181
Accessing and Saving Data 183
The Need for Speed and Threading 189
Understanding async and await 191
Lambda Expressions 194
IO Helpers 195
Embedded Resources 196
Collections 199
Language Integrated Query (LINQ) 200
Web Content 203
Syndicated Content 205
Streams, Buffers, and Byte Arrays 207
Compressing Data 208
Encrypting and Signing Data 211
Web Services 214
OData Support 217
Summary 219
Chapter 7 Tiles and Toasts 221
Basic Tiles 221
Live Tiles 222
Badges 229
Secondary Tiles 231
Toast Notifications 236
Windows Notification Service 242
Summary 250
Chapter 8 Giving Your Application Charm 253
Searching 256
Sharing 266
Sourcing Content for Sharing 267
Receiving Content as a Share Target 274
Settings 280
Summary 283
Chapter 9 MVVM and Testing 285
UI Design Patterns 286
The Model 292
The View 293
The View Model 295
The Portable Class Library 296
Why Test? 301
Testing Eliminates Assumptions 302
Testing Kills Bugs at the Source 302
Testing Helps Document Code 303
Testing Makes Extending and Maintaining Applications Easier 304
Testing Improves Architecture and Design 305
Testing Makes Better Developers 305
Conclusion: Write Those Unit Tests! 306
Unit Tests 306
Windows Store Unit Testing Framework 307
Mocks and Stubs 311
Summary 315
Chapter 10 Packaging and Deploying 317
The Windows Store 317
Discovery 318
Reach 322
Business Models 323
Advertising 328
Preparing Your App for the Store 329
The Process 331
The App Certification Kit 332
What to Expect 335
Side-Loading 337
Summary 339
Index 341