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

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

By: Jeremy Likness (author), John Garland (author)Paperback

Up to 2 WeeksUsually despatched within 2 weeks

£32.79 RRP £40.99  You save £8.20 (20%) With FREE Saver Delivery


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

About Author

Jeremy Likness is a multi-year Microsoft MVP for XAML technologies. A Principal Consultant for Wintellect with 20 years of experience developing enterprise applications, he has worked with software in multiple verticals ranging from insurance, health and wellness, supply chain management, and mobility. His primary focus for the past decade has been building highly scalable web-based solutions using the Microsoft technology stack with client stacks ranging from WPF, Silverlight, and Windows 8.1 to HTML5 and JavaScript. Jeremy has been building enterprise line of business applications with Silverlight since version 2.0, and he started writing Windows 8 apps when the Consumer Preview was released in 2011. Prior to Wintellect, Jeremy was Director of Information Technology and served as development manager and architect for AirWatch, where he helped the company grow and solidify its position as one of the leading wireless technology solution providers in the United States prior to their acquisition by VMware. A fluent Spanish speaker, Jeremy served as Director of Information Technology for HolaDoctor (formerly Dr. Tango), where he architected a multilingual content management system for the company's Hispanic-focused online diet program. Jeremy accepted his role there after serving as Development Manager for Manhattan Associates, an Atlanta-based software company that provides supply chain management solutions. John Garland is a Principal Consultant for Wintellect with more than 15 years of experience developing software solutions. Prior to consulting, he spent much of his career working on high-performance video and statistical analysis tools for premier sports teams, with an emphasis on the NFL, the NBA, and Division 1 NCAA football and basketball. His consulting clients range from small businesses to Fortune-500 companies, and his work has been featured at Microsoft conference keynotes and sessions. John is a Microsoft Client Development MVP, as well as a member of the Windows Azure Insiders and Windows Azure Mobile Services Advisory Board. He lives in New Hampshire with his wife and daughter, where he is an active speaker and participant in the New England software development community. He is a graduate of the University of Florida with a Bachelor's degree in Computer Engineering and holds Microsoft Certifications spanning Windows, Silverlight, Windows Phone, and Windows Azure. John is the author of the ebook Windows Store Apps Succinctly (Syncfusion, 2013).


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

Product Details

  • ISBN13: 9780321927972
  • Format: Paperback
  • Number Of Pages: 816
  • ID: 9780321927972
  • weight: 1256
  • ISBN10: 0321927974

Delivery Information

  • Saver Delivery: Yes
  • 1st Class Delivery: Yes
  • Courier Delivery: Yes
  • Store Delivery: Yes

Prices are for internet purchases only. Prices and availability in WHSmith Stores may vary significantly