Product Cover Image

Programming the Windows Runtime by Example: A Comprehensive Guide to WinRT with Examples in C# and XAML

By Jeremy Likness, John Garland

Published by Addison-Wesley Professional

Published Date: Jun 16, 2014

Description

Master Windows 8.1/Windows Runtime Programming Through 80 Expert Projects
This is the most complete, hands-on, solutions-focused guide to programming modern Windows applications with the Windows Runtime.

Leading Windows development consultants Jeremy Likness and John Garland present easy-to-adapt C# and XAML example code for more than 80 projects. Their real-world application examples help you apply Windows 8.1’s best improvements, including large tiles, the new search control, flyouts, command bars, native WinRT networking, and new deployment and sideloading options.

Drawing on their pioneering experience, they illuminate key areas of the Windows Runtime API, offering uniquely detailed coverage of encryption, cloud connectivity, devices, printers, and media integration. You’ll find cutting-edge tips and tricks available in no other book.

This is an indispensable resource for all intermediate-to-advanced Windows developers, and for any architect building desktop, tablet, or mobile solutions with Microsoft technologies. Its focus on both C# and XAML will make it valuable to millions of Windows developers already familiar with Silverlight, WPF, and/or .NET.

Coverage includes
• Creating robust app interfaces with the newest XAML controls, including flyouts and command bars
• Saving data in a persistent “roaming zone” for syncing across Windows 8.1 devices
• Using Visual State Manager (VSM) to build apps that adapt to various device resolutions and orientations
• Integrating virtually any form of data into your apps
• Connecting with web services, RSS, Atom feeds, and social networks
• Securing apps via authentication, encrypting, signing, and single sign-on with Microsoft Account, Facebook, Google, and more
• Leveraging Windows 8.1 media enhancements that improve battery life and app performance
• Networking more effectively with Windows 8.1’s revamped HTTP implementation and new location APIs
• Using Tiles and Toasts to keep apps alive and connected, even when they aren’t running
• Enabling users to send content between devices via NFC tap and send
• Ensuring accessibility and globalizing your apps
• Efficiently debugging, optimizing, packaging, and deploying your apps
• Building sideloadable apps that don’t have to be published in Windows Store

“This book doesn’t just focus on singular concepts, it also provides end-to-end perspective on building an app in WinRT. It is one of those essential tools for Windows developers that will help you complete your software goals sooner than without it!”
—Tim Heuer, Principal Program Manager Lead, XAML Platform, Microsoft Corporation


Table of Contents

Foreword     xix
Preface     xxii

Chapter 1  The New Windows Runtime     1
Windows Runtime Specifics     1
Windows Store Apps     4
   Example: Create a Windows Store App     5
.NET and WinRT    9
   Fundamental Types     9
   Mapped Types     10
   Streams and Buffers     14
Desktop Applications     15
   Example: Reference WinRT from a Desktop Application     15
   Example: Examine Projections in a WinRT Component     20
Asynchronous Functions     24
Summary     27
Chapter 2  Windows Store Apps and WinRT Components     29
Fundamentals of a Windows Store App     30
   Windows Store App Templates     32
   Understanding the App Manifest     45
   Finding Your Package on Disk     52
   Running Your App     54
Application Lifecycle     61
   The Navigation Helper and Suspension Manager     67
Managed WinRT Components    75
   Creating a Managed WinRT Component     76
   Calling Managed WinRT Components from Any Language     78
Summary     79
Chapter 3  Layouts and Controls     81
The Visual Tree    83
Data-Binding     85
   Dependency Properties     91
   Attached Properties    94
   Value Precedence    95
   Property Change Notification    95
Animations    97
   Example: Dynamically Apply Animations to a Control     97
The Visual State Manager    100
   Example: Visual State Manager     101
   Groups     103
   States     105
   Transitions     106
The Visual State Manager Workflow     107
Programmatic Access to Visual States    109
Custom Visual State Managers     109
Styles    111
Templates     112
   Example: Using Templates     112
Layouts     115
   Panel     115
   Border    115
   Canvas     116
   Grid     116
   StackPanel     117
   VirtualizingPanel and VirtualizingStackPanel     118
   WrapGrid    119
   VariableSizedWrapGrid     119
   ContentControl     120
   ItemsControl     121
   ScrollViewer     122
   ViewBox     122
   GridView     123
   ListBox     123
   ListView     124
   FlipView     124
   Example: Using the Viewbox and Various Layouts     125
Controls     130
   Flyouts     133
Custom Controls     135
   Example: Creating a Custom Control     136
Parsing XAML     140
HTML Pages     143
   Example: Working with HTML and JavaScript     144
Summary     150
Chapter 4  Data and Content     153
Example: Data Manipulation with the Skrape App    154
The Clipboard     154
Application Storage     159
   Roaming Data     161
   Containers     162
   Settings     163
   Composite Values     165
Storage Folders and Files     166
   Storage Folders     168
   Storage Files     170
   Buffers and Streams     171
   Path and File Helper Classes     174
   Storage Query Operations     176
   Pickers and Cached Files     180
   Compression     187
Data Formats    191
   Example: Working with Data Formats     192
   XSLT Transformations     195
Document Data     196
Summary     198
Chapter 5  Web Services and Syndication     199
SOAP     200
REST     209
OData Client     217
Syndication     219
Summary     223
Chapter 6  Tiles and Toasts     225
Tiles     226
   Default Tiles     227
   Live Tiles     229
   Cycling Tile Notifications     234
   Secondary Tiles     236
Badges     239
Periodic Notifications     242
Toasts     242
   Toasts in Desktop Applications     248
Push Notifications     249
   Registering to Receive Push Notifications     251
   Sending Push Notifications     253
Summary     259
Chapter 7  Connecting to the Cloud     261
Windows Azure Mobile Services     262
   Example: Managing a Shared Group of Subscribers     267
   Connecting an App to a Mobile Services Instance     267
   Authentication     269
   Data Storage     274
   Custom APIs     289
   Integrated Push Notification Support     291
   Scheduled Tasks     297
   Mobile Services Deployment Tiers     298
Live Connect     301
   Getting Started     302
   The Example App     304
   Authentication     304
   Working with Profile Information     308
   Working with Contacts     310
   Working with Calendars and Events     311
   Working with OneDrive     315
Summary     321
Chapter 8  Security     323
Authentication     324
   Multistep Authentication (Google)     330
   Unlocking the Password Vault     331
Encryption and Signing    333
   The Data Protection Provider     333
   Symmetrical Encryption     337
   Verification     343
   Asymmetric Algorithms     345
Summary     347
Chapter 9  Model-View-ViewModel (MVVM)     349
UI Design Patterns     350
   The Model     351
   The View     352
   Model-View-Controller (MVC)     353
   Model-View-Presenter (MVP)     354
   Model-View-ViewModel (MVVM)     355
The ViewModel Decomposed     356
Common MVVM Misperceptions     362
Benefits of MVVM     364
Common MVVM Solutions     367
   Design-Time Data     367
   Accessing the UI Thread     369
   Commands     371
   Handling Dialogs     371
   Selection Lists     371
   Filtered Lists     373
   Validation     375
Summary     377
Chapter 10  Networking     379
Web and HTTP     379
HomeGroup     382
Connectivity and Data Plans     384
Sockets     389
   WebSockets     389
   UDP and TCP Sockets    392
Proximity (Near Field Communications)     397
   NFC-Only Scenarios     397
   Tap-to-Connect Scenarios     403
Background Transfers     408
Summary     412
Chapter 11  Windows Charms Integration     415
Displaying App Settings     417
   The Settings Example     418
   Adding Settings Entries     418
Sharing     421
   The Share Source Example     423
   Creating a Share Source App     424
   The Share Target Example     433
   Creating a Share Target App     434
   Debugging Share Target Apps     441
Using Play To     442
   The Play To Example     443
   Creating a Play To Source App     444
   Creating a Play To Target App     446
Summary     448
Chapter 12  Additional Windows Integration     451
Integrating with the File and Contact Pickers     452
   The Example App     453
   File Open Picker     454
   File Save Picker    458
   Contact Picker     460
Application Activation Integration     462
   The Example App     463
   File Activation     463
   Protocol Activation     467
   Account Picture Provider     470
   AutoPlay     471
Working with Contacts and Appointments     473
   The Example App     474
   Contacts     474
   Appointments     476
Summary     478
Chapter 13  Devices     479
Working with Input Devices     480
   The Example App     480
   Identifying Connected Input Devices     481
   Pointer, Manipulation, and Gesture Events    484
   Keyboard Input     495
Sensor Input     498
   The Example App     498
   Geolocation     502
   Geofencing     510
   Motion and Orientation Sensors     517
Summary     529
Chapter 14  Printers and Scanners     531
Working with Printers     532
   The Example App     532
   Getting Started     533
   Configuring a Print Task     534
   Providing Printing Content     542
Working with Scanners    547
   The Example App     547
   Determining Scanner Availability     548
   Working with Scan Sources    549
   Previewing     550
   Scanning     551
   Scanner Settings     552
Summary     556
Chapter 15  Background Tasks     559
The Thread Pool     560
Uploads and Downloads     562
Audio 563   
Lock Screen Tasks    570
   Lock Screen Capabilities     570
   The Background Task     573
   Listing Background Tasks     576
   Timer     578
   Conditions     578
   Debugging Background Tasks     580
Raw Push Notifications     581
Control Channel     585
System Events     587
Summary     588
Chapter 16  Multimedia     589
Playing Multimedia Content     590
   The Example App     590
   Getting Started     591
   Controlling Playback     592
   Appearance     595
   Audio Settings     596
   Media Information     597
   Markers     597
Acquiring Audio and Video     598
   The Example App     599
   Declaring Application Capabilities     599
   Using CameraCaptureUI     600
   Using MediaCapture     604
Text-to-Speech Support     610
   The Example App     611
   Using the SpeechSynthesizer     611
Summary     613
Chapter 17  Accessibility    615
Requested Theme     616
   High Contrast     618
Keyboard Support     620
Automation Properties     622
Testing with Narrator     623
Automation and Lists     624
Live Settings     625
Automation Peers     626
Accessibility Checker     627
Summary     629
Chapter 18  Globalization and Localization     631
Design Considerations     632
Default Language     633
Configuring Preferred Languages    635
Resource Qualification and Matching     637
Localizing XAML Elements     639
Formatting Dates, Numbers, and Currencies for Locale     642
MVVM and Localization    643
Multilingual Toolkit    644
Summary     648
Chapter 19  Packaging and Deploying    649
Packaging Your App     650
   Creating an App Package     650
   App Package and App Bundle Contents     654
   Package Identifier     655
Deploying Your App     657
   Publishing Your App in the Windows Store    657
   Other Deployment Options     665
Making Money with Your App in the Windows Store     667
   The Example App     668
   Pricing Your App in the Windows Store     669
   Trial Mode Apps     670
   In-App Purchases     675
   Including Advertisements     678
Summary     683
Chapter 20  Debugging and Performance Optimization     685
Understanding the Debugger     686
   Native, Managed, and Script Debuggers     686
   Just My Code     688
   Edit and Continue     690
   Just in Time Debugging     691
   How to Launch the Debugger     691
   Program Databases     692
   Debug Windows     693
   Managing Exceptions     694
Logging and Tracing     696
Profiling and Performance Analysis     702
   Performance Tips     704
   CPU Sampling     706
   XAML UI Responsiveness     709
   Energy Consumption    710
Code Analysis     712
Summary     717
Appendix A  Under the Covers     719
Fundamental WinRT Concepts     719
Namespaces     720
Base Types     720
Primitives     720
Classes and Class Methods     721
Structures     722
Generics     722
Null     723
Enumerations     723
Interfaces     723
Properties     723
Delegates     724
Events     724
Arrays     725
WinRT Internals     725
Appendix B  Glossary     733
Index     749



Purchase Info

ISBN-10: 0-321-92797-4

ISBN-13: 978-0-321-92797-2

Format: Book

$54.99 | Free Ground Shipping.

Add to Cart

Digital Choices ?

MyLab & Mastering with Pearson eText is a complete digital substitute for a print value pack at a lower price.

eBook (Watermarked) ?

Includes EPUB, MOBI, and PDF

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

eTextbook ?

With CourseSmart eTextbooks and eResources, you save up to 60% off the price of new print textbooks, and can switch between studying online or offline to suit your needs.

Once you have purchased your eTextbooks and added them to your CourseSmart bookshelf, you can access them anytime, anywhere.