Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (2 votes)
14 views

Immediate download Programming Windows Store Apps with HTML CSS and JavaScript Second Edition Kraig Brockschmidt ebooks 2024

Programming

Uploaded by

giamomoedexn
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
14 views

Immediate download Programming Windows Store Apps with HTML CSS and JavaScript Second Edition Kraig Brockschmidt ebooks 2024

Programming

Uploaded by

giamomoedexn
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Download the Full Version of textbook for Fast Typing at textbookfull.

com

Programming Windows Store Apps with HTML CSS and


JavaScript Second Edition Kraig Brockschmidt

https://textbookfull.com/product/programming-windows-store-
apps-with-html-css-and-javascript-second-edition-kraig-
brockschmidt/

OR CLICK BUTTON

DOWNLOAD NOW

Download More textbook Instantly Today - Get Yours Now at textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Programming Windows Store Apps with HTML CSS and


JavaScript Second Edition Kraig Brockschmidt

https://textbookfull.com/product/programming-windows-store-apps-with-
html-css-and-javascript-second-edition-kraig-brockschmidt/

textboxfull.com

Sams Teach Yourself HTML, CSS, and JavaScript All in One


Julie C. Meloni

https://textbookfull.com/product/sams-teach-yourself-html-css-and-
javascript-all-in-one-julie-c-meloni/

textboxfull.com

Web Development for beginners Learn HTML CSS Javascript


step by step with this Coding Guide Programming Guide for
beginners Website development 1st Edition Mastery
https://textbookfull.com/product/web-development-for-beginners-learn-
html-css-javascript-step-by-step-with-this-coding-guide-programming-
guide-for-beginners-website-development-1st-edition-mastery/
textboxfull.com

Sams Teach Yourself HTML CSS and JavaScript All in One 1st
Edition Meloni Julie C

https://textbookfull.com/product/sams-teach-yourself-html-css-and-
javascript-all-in-one-1st-edition-meloni-julie-c/

textboxfull.com
Web Design Playground: HTML + CSS the Interactive Way,
Second Edition Paul Mcfedries

https://textbookfull.com/product/web-design-playground-html-css-the-
interactive-way-second-edition-paul-mcfedries/

textboxfull.com

New Perspectives on HTML 5 and CSS 8th Edition Patrick M.


Carey

https://textbookfull.com/product/new-perspectives-on-html-5-and-
css-8th-edition-patrick-m-carey/

textboxfull.com

Learning PHP MySQL JavaScript With jQuery CSS HTML5 5th


Edition Robin Nixon

https://textbookfull.com/product/learning-php-mysql-javascript-with-
jquery-css-html5-5th-edition-robin-nixon/

textboxfull.com

New Perspectives on HTML 5 and CSS Comprehensive 8th


Edition Patrick M Carey

https://textbookfull.com/product/new-perspectives-on-html-5-and-css-
comprehensive-8th-edition-patrick-m-carey/

textboxfull.com

Reactive Programming with JavaScript 1st Edition Hayward


Jonathan

https://textbookfull.com/product/reactive-programming-with-
javascript-1st-edition-hayward-jonathan/

textboxfull.com
PUBLISHED BY
Microsoft Press
A Division of Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399

Copyright © 2014 Microsoft Corporation

All rights reserved. No part of the contents of this book may be reproduced or tr ansmitted in any form or by any means
without the written permission of the publisher.

Microsoft Press books are available through booksellers and distributors worldwide. If you need support related to
this book, email Microsoft Press Book Support at mspinput@microsoft.com. Please tell us what you think of this
book at http://aka.ms/tellpress.

Unless otherwise noted, the companies, organizations, products, domain names, e -mail addresses, logos, people,
places, and events depicted in examples herein are fictitious. No association with any real company, organization,
product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under
copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any
purpose, without the express written permission of Microsoft Corporation.

Microsoft and the trademarks listed at http://www.microsoft.com/about/legal/en/us/IntellectualProperty/


Trademarks/EN-US.aspx are trademarks of the Microsoft group of companies. All other marks are property of their
respective owners.

This book expresses the author’s views and opinions. The information contained in this book is provided without any
express, statutory, or implied warranties. Neither the authors, Microsoft Cor poration, nor its resellers, or distributors will
be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.

Acquisitions, Developmental, and Project Editor: Devon Musgrave


Cover: Twist Creative • Seattle and Joel Panchot

1
Table of Contents
Introduction ........................................................................................................................ 21
Who This Book Is For ........................................................................................................ 23
What You'll Need (Can You Say “Samples”?) ...................................................................... 24
A Formatting Note............................................................................................................ 25
Acknowledgements .......................................................................................................... 26
Free Ebooks from Microsoft Press ..................................................................................... 28
The “Microsoft Press Guided Tours” App ........................................................................... 28
Errata & Book Support ...................................................................................................... 28
We Want to Hear from You............................................................................................... 29
Stay in Touch ................................................................................................................... 29
Chapter 1 The Life Story of a Windows Store App: Characteristics of the
Windows Platform .............................................................................................................. 30
Leaving Home: Onboarding to the Windows Store ............................................................. 32
Discovery, Acquisition, and Installation.............................................................................. 35
Playing in Your Own Room: The App Container .................................................................. 39
Different Views of Life: Views and Resolution Scaling ......................................................... 42
Those Capabilities Again: Getting to Data and Devices ........................................................ 46
Taking a Break, Getting Some Rest: Process Lifecycle Management ..................................... 49
Remembering Yourself: App State and Roaming................................................................. 51
Coming Back Home: Updates and New Opportunities ........................................................ 56
And, Oh Yes, Then There’s Design ..................................................................................... 58
Feature Roadmap and Cross-Reference ............................................................................. 59
Chapter 2 Quickstart .......................................................................................................... 65
A Really Quick Quickstart: The Blank App Template ............................................................ 65
Blank App Project Structure .......................................................................................... 68

2
QuickStart #1: Here My Am! and an Introduction to Blend for Visual Studio ........................ 72
Design Wireframes ....................................................................................................... 73
Create the Markup ....................................................................................................... 76
Styling in Blend............................................................................................................. 78
Adding the Code........................................................................................................... 83
Extra Credit: Improving the App ........................................................................................ 97
Receiving Messages from the iframe ............................................................................. 98
Improving the Placeholder Image with a Canvas Element ................................................ 99
Handling Variable Image Sizes ..................................................................................... 100
Moving the Captured Image to AppData (or the Pictures Library) .................................. 103
Using a Thumbnail Instead of the Full Image ................................................................ 105
The Other Templates: Projects and Items ........................................................................ 107
Navigation App Template............................................................................................ 107
Grid App Template ..................................................................................................... 107
Hub App Template...................................................................................................... 108
Split Template ............................................................................................................ 108
Item Templates .......................................................................................................... 108
What We’ve Just Learned ............................................................................................... 109
Chapter 3 App Anatomy and Performance Fundamentals .................................................. 111
App Activation ............................................................................................................... 112
Branding Your App 101: The Splash Screen and Other Visuals ....................................... 113
Activation Event Sequence .......................................................................................... 117
Activation Code Paths ................................................................................................. 119
WinJS.Application Events ............................................................................................ 121
Optimizing Startup Time ............................................................................................. 124
WinRT Events and removeEventListener.......................................................................... 126
App Lifecycle Transition Events and Session State ............................................................ 128
Suspend, Resume, and Terminate................................................................................ 129

3
Basic Session State in Here My Am! ............................................................................. 133
Page Controls and Navigation ......................................................................................... 136
WinJS Tools for Pages and Page Navigation .................................................................. 136
The Navigation App Template, PageControl Structure, and PageControlNavigator ......... 139
The Navigation Process and Navigation Styles .............................................................. 146
Optimizing Page Switching: Show-and-Hide ................................................................. 148
Page-Specific Styling ................................................................................................... 149
Async Operations: Be True to Your Promises .................................................................... 151
Using Promises ........................................................................................................... 151
Joining Parallel Promises ............................................................................................. 153
Sequential Promises: Nesting and Chaining .................................................................. 153
Managing the UI Thread with the WinJS Scheduler........................................................... 156
Scheduler Priorities .................................................................................................... 157
Scheduling and Managing Tasks .................................................................................. 158
Setting Priority in Promise Chains ................................................................................ 160
Long-Running Tasks .................................................................................................... 162
Debugging and Profiling.................................................................................................. 165
Debug Output and Logging.......................................................................................... 165
Error Reports and the Event Viewer............................................................................. 166
Async Debugging ........................................................................................................ 169
Performance and Memory Analysis ............................................................................. 170
The Windows App Certification Toolkit ........................................................................ 175
What We’ve Just Learned ............................................................................................... 176
Chapter 4 Web Content and Services ................................................................................ 177
Network Information and Connectivity ............................................................................ 179
Network Types in the Manifest.................................................................................... 180
Network Information (the Network Object Roster) ....................................................... 181
The ConnectionProfile Object...................................................................................... 183

4
Connectivity Events .................................................................................................... 184
Cost Awareness .......................................................................................................... 185
Running Offline .......................................................................................................... 189
Hosting Content: the WebView and iframe Elements ....................................................... 191
Local and Web Contexts (and iframe Elements) ............................................................ 192
Dynamic Content........................................................................................................ 195
App Content URIs ....................................................................................................... 197
The <x-ms-webview> Element..................................................................................... 198
HTTP Requests ............................................................................................................... 209
Using WinJS.xhr.......................................................................................................... 210
Using Windows.Web.Http.HttpClient........................................................................... 211
Suspend and Resume with Online Content................................................................... 216
Prefetching Content ................................................................................................... 218
Background Transfer ...................................................................................................... 219
Basic Downloads ........................................................................................................ 221
Basic Uploads ............................................................................................................. 225
Completion and Error Notifications ............................................................................. 226
Providing Headers and Credentials .............................................................................. 227
Setting Cost Policy ...................................................................................................... 227
Grouping Transfers ..................................................................................................... 228
Suspend, Resume, and Restart with Background Transfers ............................................ 228
Authentication, the Microsoft Account, and the User Profile ............................................ 230
The Credential Locker ................................................................................................. 231
The Web Authentication Broker .................................................................................. 233
Single Sign-On ............................................................................................................ 237
Using the Microsoft Account ....................................................................................... 238
The User Profile (and the Lock Screen Image) ............................................................... 244
What We’ve Just Learned ............................................................................................... 246

5
Chapter 5 Controls and Control Styling .............................................................................. 248
The Control Model for HTML, CSS, and JavaScript ............................................................ 249
HTML Controls ............................................................................................................... 251
Extensions to HTML Elements ..................................................................................... 254
WinJS Controls ............................................................................................................... 255
Syntax for data-win-options ........................................................................................ 259
WinJS Control Instantiation ......................................................................................... 261
Strict Processing and processAll Functions ................................................................... 262
Example: WinJS.UI.HtmlControl................................................................................... 263
Example: WinJS.UI.Rating (and Other Simple Controls) ................................................. 264
Example: WinJS.UI.Tooltip .......................................................................................... 265
Example: WinJS.UI.ItemContainer ............................................................................... 266
Working with Controls in Blend ....................................................................................... 269
Control Styling ............................................................................................................... 272
Styling Gallery: HTML Controls .................................................................................... 274
Styling Gallery: WinJS Controls .................................................................................... 276
Some Tips and Tricks .................................................................................................. 284
Custom Controls ............................................................................................................ 285
Implementing the Dispose Pattern .............................................................................. 288
Custom Control Examples ........................................................................................... 289
Custom Controls in Blend ............................................................................................ 293
What We’ve Just Learned ............................................................................................... 297
Chapter 6 Data Binding, Templates, and Collections .......................................................... 298
Data Binding .................................................................................................................. 299
Data Binding Basics..................................................................................................... 299
Data Binding in WinJS ................................................................................................. 301
Under the Covers: Binding mixins ................................................................................ 311
Programmatic Binding and WinJS.Binding.bind............................................................. 313

6
Binding Initializers ...................................................................................................... 315
Binding Templates.......................................................................................................... 319
Template Options, Properties, and Compilation ........................................................... 322
Collection Data Types ..................................................................................................... 324
Windows.Foundation.Collection Types ........................................................................ 325
WinJS Binding Lists ..................................................................................................... 331
What We’ve Just Learned ............................................................................................... 342
Chapter 7 Collection Controls ........................................................................................... 344
Collection Control Basics................................................................................................. 345
Quickstart #1: The WinJS Repeater Control with HTML controls .................................... 345
Quickstart #2: The FlipView Control Sample ................................................................. 349
Quickstart #3: The ListView Essentials Sample .............................................................. 351
Quickstart #4: The ListView Grouping Sample .............................................................. 353
ListView in the Grid App Project Template ................................................................... 357
The Semantic Zoom Control ............................................................................................ 361
How Templates Work with Collection Controls................................................................. 364
Referring to Templates ............................................................................................... 364
Template Functions (Part 1): The Basics ....................................................................... 365
Creating Templates from Data Sources in Blend ........................................................... 368
Repeater Features and Styling......................................................................................... 372
FlipView Features and Styling.......................................................................................... 377
Collection Control Data Sources ...................................................................................... 380
The Structure of Data Sources (Interfaces Aplenty!)...................................................... 381
A FlipView Using the Pictures Library ........................................................................... 384
Custom Data Sources and WinJS.UI.VirtualizedDataSource ........................................... 386
ListView Features and Styling .......................................................................................... 393
When Is ListView the Right Choice? ............................................................................. 393
Options, Selections, and Item Methods........................................................................ 395

7
Styling ....................................................................................................................... 399
Loading State Transitions ............................................................................................ 401
Drag and Drop ............................................................................................................ 402
Layouts ...................................................................................................................... 405
Template Functions (Part 2): Optimizing Item Rendering .................................................. 414
What We’ve Just Learned ............................................................................................... 419
Chapter 8 Layout and Views ............................................................................................. 421
Principles of Page Layout ................................................................................................ 423
Sizing, Scaling, and Views: The Many Faces of Your App.................................................... 426
Variable View Sizing and Orientations .......................................................................... 426
Screen Resolution, Pixel Density, and Scaling ............................................................... 437
Multiple Views ........................................................................................................... 442
Pannable Sections and Styles .......................................................................................... 446
Laying Out the Hub ..................................................................................................... 447
Laying Out the Sections .............................................................................................. 448
Panning Styles and Railing ........................................................................................... 449
Panning Snap Points and Limits ................................................................................... 451
Zooming Snap Points and Limits .................................................................................. 452
The Hub Control and Hub App Template.......................................................................... 453
Hub Control Styling..................................................................................................... 460
Using the CSS Grid .......................................................................................................... 461
Overflowing a Grid Cell ............................................................................................... 463
Centering Content Vertically ....................................................................................... 463
Scaling Font Size ......................................................................................................... 464
Item Layout ................................................................................................................... 465
CSS 2D and 3D Transforms .......................................................................................... 466
Flexbox ...................................................................................................................... 466
Nested and Inline Grids............................................................................................... 467

8
Fonts and Text Overflow ............................................................................................. 468
Multicolumn Elements and Regions ............................................................................. 470
What We’ve Just Learned ............................................................................................... 472
Chapter 9 Commanding UI ................................................................................................ 474
Where to Place Commands ............................................................................................. 475
The App Bar and Nav Bar ................................................................................................ 480
App Bar Basics and Standard Commands ..................................................................... 481
App Bar Styling ........................................................................................................... 490
Command Menus ....................................................................................................... 494
Custom App Bars ........................................................................................................ 495
Nav Bar Features ........................................................................................................ 497
Nav Bar Styling ........................................................................................................... 505
Flyouts and Menus ......................................................................................................... 507
WinJS.UI.Flyout Properties, Methods, and Events......................................................... 509
Flyout Examples ......................................................................................................... 510
Menus and Menu Commands ..................................................................................... 513
Message Dialogs ............................................................................................................ 518
Improving Error Handling in Here My Am! ....................................................................... 519
What We’ve Just Learned ............................................................................................... 525
Chapter 10 The Story of State, Part 1: App Data and Settings ............................................. 527
The Story of State........................................................................................................... 529
App Data Locations..................................................................................................... 532
App Data APIs (WinRT and WinJS) ................................................................................... 533
Settings Containers..................................................................................................... 534
State Versioning ......................................................................................................... 536
Folders, Files, and Streams.............................................................................................. 537
FileIO, PathIO, and WinJS Helpers (plus FileReader) ...................................................... 543
Encryption and Compression....................................................................................... 544

9
Q&A on Files, Streams, Buffers, and Blobs.................................................................... 544
Using App Data APIs for State Management..................................................................... 552
Transient Session State ............................................................................................... 552
Local and Temporary State.......................................................................................... 553
IndexedDB, SQLite, and Other Database Options .......................................................... 555
Roaming State ............................................................................................................ 556
Settings Pane and UI....................................................................................................... 559
Design Guidelines for Settings ..................................................................................... 561
Populating Commands ................................................................................................ 563
Implementing Commands: Links and Settings Flyouts ................................................... 566
Programmatically Invoking Settings Flyouts.................................................................. 568
Here My Am! Update ..................................................................................................... 570
What We’ve Just Learned ............................................................................................... 571
Chapter 11 The Story of State, Part 2: User Data, Files, and OneDrive ................................ 573
The Big Picture of User Data ........................................................................................... 574
Using the File Picker and Access Cache ............................................................................ 579
The File Picker UI ........................................................................................................ 580
The File Picker API ...................................................................................................... 585
Access Cache.............................................................................................................. 589
StorageFile Properties and Metadata .............................................................................. 592
Availability ................................................................................................................. 593
Thumbnails ................................................................................................................ 594
File Properties ............................................................................................................ 598
Media-Specific Properties ........................................................................................... 601
Folders and Folder Queries ............................................................................................. 607
KnownFolders and the StorageLibrary Object ............................................................... 609
Removable Storage .................................................................................................... 612
Simple Enumeration and Common Queries .................................................................. 613

10
Custom Queries.......................................................................................................... 618
Metadata Prefetching with Queries ............................................................................. 623
Creating Gallery Experiences........................................................................................... 625
File Activation and Association ........................................................................................ 627
What We’ve Just Learned ............................................................................................... 632
Chapter 12 Input and Sensors ........................................................................................... 634
Touch, Mouse, and Stylus Input ...................................................................................... 635
The Touch Language and Mouse/Keyboard Equivalents ................................................ 636
What Input Capabilities Are Present? .......................................................................... 643
Unified Pointer Events ................................................................................................ 645
Gesture Events ........................................................................................................... 649
The Gesture Recognizer .............................................................................................. 658
Keyboard Input and the Soft Keyboard ............................................................................ 659
Soft Keyboard Appearance and Configuration .............................................................. 660
Adjusting Layout for the Soft Keyboard ........................................................................ 663
Standard Keystrokes ................................................................................................... 666
Inking ............................................................................................................................ 667
Geolocation ................................................................................................................... 669
Geofencing ................................................................................................................ 673
Sensors.......................................................................................................................... 676
What We’ve Just Learned ............................................................................................... 680
Chapter 13 Media............................................................................................................. 681
Creating Media Elements ................................................................................................ 682
Graphics Elements: Img, Svg, and Canvas (and a Little CSS) ............................................... 684
Additional Characteristics of Graphics Elements ........................................................... 688
Some Tips and Tricks .................................................................................................. 689
Rendering PDFs .......................................................................................................... 694
Video Playback and Deferred Loading.............................................................................. 699

11
Disabling Screen Savers and the Lock Screen During Playback ....................................... 703
Video Element Extension APIs ..................................................................................... 703
Applying a Video Effect ............................................................................................... 705
Browsing Media Servers.............................................................................................. 706
Audio Playback and Mixing ............................................................................................. 706
Audio Element Extension APIs ..................................................................................... 708
Playback Manager and Background Audio .................................................................... 708
The Media Transport Control UI .................................................................................. 714
Playing Sequential Audio ............................................................................................. 717
Playlists ......................................................................................................................... 719
Text to Speech ............................................................................................................... 723
Loading and Manipulating Media .................................................................................... 725
Image Manipulation and Encoding............................................................................... 726
Manipulating Audio and Video .................................................................................... 732
Handling Custom Audio and Video Formats ................................................................. 735
Media Capture ............................................................................................................... 742
Flexible Capture with the MediaCapture Object ........................................................... 744
Selecting a Media Capture Device................................................................................ 748
Streaming Media and Play To .......................................................................................... 751
Streaming from a Server and Digital Rights Management.............................................. 751
Streaming from App to Network.................................................................................. 753
Play To ....................................................................................................................... 754
What We Have Learned .................................................................................................. 757
Chapter 14 Purposeful Animations.................................................................................... 759
Systemwide Enabling and Disabling of Animatio ns ........................................................... 761
The WinJS Animations Library ......................................................................................... 762
Animations in Action .................................................................................................. 765
CSS Animations and Transitions ...................................................................................... 769

12
Designing Animations in Blend for Visual Studio ........................................................... 775
The HTML Independent Animations Sample ................................................................. 777
Rolling Your Own: Tips and Tricks .................................................................................... 779
What We’ve Just Learned ............................................................................................... 785
Chapter 15 Contracts ........................................................................................................ 786
Share ............................................................................................................................. 788
Share Source Apps...................................................................................................... 793
Share Target Apps ...................................................................................................... 805
The Clipboard............................................................................................................. 816
Launching Apps with URI Scheme Associations ................................................................ 818
Search ........................................................................................................................... 823
The Search Charm UI .................................................................................................. 825
The WinJS.UI.SearchBox Control.................................................................................. 829
Providing Query Suggestions ....................................................................................... 831
Providing Result Suggestions ....................................................................................... 835
SearchBox Styling ....................................................................................................... 837
Indexing and Searching Content .................................................................................. 840
The Search Contract ................................................................................................... 849
Contacts ........................................................................................................................ 850
Contact Cards............................................................................................................. 850
Using the Contact Picker ............................................................................................. 856
Appointments ................................................................................................................ 860
What We’ve Just Learned ............................................................................................... 864
Chapter 16 Alive with Activity: Tiles, Notifications, the Lock Screen, and
Background Tasks.............................................................................................................. 865
Alive with Activity: A Visual Tour ..................................................................................... 866
The Four Sources of Updates and Notifications ................................................................ 875
Tiles, Secondary Tiles, and Badges ................................................................................... 878

13
Secondary Tiles .......................................................................................................... 880
Basic Tile Updates ...................................................................................................... 887
Cycling, Scheduled, and Expiring Updates .................................................................... 900
Badge Updates ........................................................................................................... 902
Periodic Updates ............................................................................................................ 904
Creating an Update Service ......................................................................................... 907
Debugging a Service Using the Localhost...................................................................... 911
Windows Azure and Azure Mobile Services .................................................................. 912
Toast Notifications ......................................................................................................... 917
Creating Basic Toasts .................................................................................................. 919
Butter and Jam: Options for Your Toast ....................................................................... 921
Tea Time: Scheduled Toasts and Alarms....................................................................... 923
Toast Events and Activation ........................................................................................ 926
Push Notifications and the Windows Push Notification Service ......................................... 927
Requesting and Caching a Channel URI (App) ............................................................... 929
Managing Channel URIs (Service) ................................................................................ 931
Sending Updates and Notifications (Service) ................................................................ 932
Raw Notifications (Service).......................................................................................... 933
Receiving Notifications (App) ...................................................................................... 934
Debugging Tips ........................................................................................................... 935
Tools and Providers for Push Notifications ................................................................... 935
Background Tasks and Lock Screen Apps.......................................................................... 937
Background Tasks in the Manifest ............................................................................... 938
Building and Registering Background Tasks .................................................................. 939
Conditions ................................................................................................................. 941
Tasks for Maintenance Triggers ................................................................................... 942
Tasks for System Triggers (Non-Lock Screen) ................................................................ 944
Lock Screen–Dependent Tasks and Triggers ................................................................. 945

14
Debugging Background Tasks ...................................................................................... 949
What We’ve Just Learned (Whew!) ................................................................................. 950
Chapter 17 Devices and Printing ....................................................................................... 952
Declaring Device Access.................................................................................................. 956
Enumerating and Watching Devices ................................................................................ 957
Scenario API Devices ...................................................................................................... 962
Image Scanners .......................................................................................................... 962
Barcode and Magnetic Stripe Readers (Point-of-Service Devices) .................................. 967
Smartcards................................................................................................................. 970
Fingerprint (Biometric) Readers................................................................................... 971
Bluetooth Call Control ................................................................................................ 972
Printing Made Easy......................................................................................................... 973
The Printing User Experience ...................................................................................... 974
Print Document Sources ............................................................................................. 977
Providing Print Content and Configuring Options.......................................................... 979
Protocol APIs: HID, USB, Bluetooth, and Wi-Fi Direct ........................................................ 981
Human Interface Devices (HID).................................................................................... 983
Custom USB Devices ................................................................................................... 990
Bluetooth (RFCOMM) ................................................................................................. 992
Bluetooth Smart (LE/GATT) ......................................................................................... 996
Wi-Fi Direct ................................................................................................................ 999
Near Field Communication and the Proximity API............................................................1000
Finding Your Peers (No Pressure!) ..............................................................................1002
Sending One-Shot Payloads: Tap to Share ...................................................................1007
What We’ve Just Learned ..............................................................................................1009
Chapter 18 WinRT Components: An Introduction .............................................................1010
Choosing a Mixed Language Approach (and Web Workers)..............................................1012
Quickstarts: Creating and Debugging Components ..........................................................1014

15
Quickstart #1: Creating a Component in C# .................................................................1015
Simultaneously Debugging Script and Managed/Native Code .......................................1020
Quickstart #2: Creating a Component in C++ ...............................................................1021
Comparing the Results ...............................................................................................1023
Key Concepts for WinRT Components.............................................................................1026
Implementing Asynchronous Methods .......................................................................1028
Projections into JavaScript .........................................................................................1042
Scenarios for WinRT Components ..................................................................................1044
Higher Performance (Perhaps) ...................................................................................1044
Access to Additional APIs ...........................................................................................1047
Obfuscating Code and Protecting Intellectual Property ................................................1051
Concurrency..............................................................................................................1052
Library Components ..................................................................................................1053
What We’ve Just Learned ..............................................................................................1056
Chapter 19 Apps for Everyone, Part 1: Accessibility and World-Readiness .........................1058
Accessibility ..................................................................................................................1059
Screen Readers and Aria Attributes ............................................................................1063
Handling Contrast Variations ......................................................................................1068
World Readiness and Localization ..................................................................................1075
Globalization .............................................................................................................1077
Preparing for Localization ..........................................................................................1087
Creating Localized Resources: The Multilingual App Toolkit ..........................................1101
Localization Wrap-Up ................................................................................................1108
What We’ve Just Learned ..............................................................................................1109
Chapter 20 Apps for Everyone, Part 2: The Windows Store .............................................1110
Your App, Your Business ................................................................................................1111
Planning: Can the App Be a Windows Store App? ........................................................1113
Planning for Monetization (or Not) .............................................................................1114

16
Growing Your Customer Base and Other Value Exchanges ...........................................1125
Measuring and Experimenting with Revenue Performance ..........................................1126
The Windows Store APIs ................................................................................................1127
The CurrentAppSimulator Object................................................................................1130
Trial Versions and App Purchase.................................................................................1133
Listing and Purchasing In-App Products.......................................................................1137
Handling Large Catalogs .............................................................................................1145
Receipts ....................................................................................................................1146
Instrumenting Your App for Telemetry and Analytics .......................................................1148
Releasing Your App to the World....................................................................................1155
Promotional Screenshots, Store Graphics, and Text Copy.............................................1156
Testing and Pre-Certification Tools .............................................................................1158
Creating the App Package ..........................................................................................1159
Onboarding and Working through Rejection ...............................................................1163
App Updates .................................................................................................................1166
Getting Known: Marketing, Discoverability, and the Web ................................................1168
Connecting Your Website and Web-Mapped Search Results ........................................1170
Face It: You’re Running a Business! ................................................................................1171
Look for Opportunities...............................................................................................1172
Invest in Your Business ..............................................................................................1172
Fear Not the Marketing .............................................................................................1172
Support Your Customers ............................................................................................1173
Plan for the Future ....................................................................................................1173
Selling Your App When It’s Not Running......................................................................1174
You’re Not Alone .......................................................................................................1175
Final Thoughts: Qualities of a Rock Star App ...................................................................1175
What We’ve Just Learned ..............................................................................................1176
Appendix A Demystifying Promises..................................................................................1178

17
What Is a Promise, Exactly? The Promise Relationships ...................................................1178
The Promise Construct (Core Relationship) .....................................................................1181
Example #1: An Empty Promise! .................................................................................1183
Example #2: An Empty Async Promise.........................................................................1185
Example #3: Retrieving Data from a URI ......................................................................1186
Benefits of Promises ......................................................................................................1187
The Full Promise Construct ............................................................................................1188
Nesting Promises.......................................................................................................1192
Chaining Promises .....................................................................................................1195
Promises in WinJS (Thank You, Microsoft!) .....................................................................1200
The WinJS.Promise Class ............................................................................................1201
Originating Errors with WinJS.Promise.WrapError .......................................................1203
Some Interesting Promise Code .....................................................................................1204
Delivering a Value in the Future: WinJS.Promise.timeout .............................................1204
Internals of WinJS.Promise.timeout ............................................................................1205
Parallel Requests to a List of URIs ...............................................................................1205
Parallel Promises with Sequential Results ...................................................................1206
Constructing a Sequential Promise Chain from an Array...............................................1208
PageControlNavigator._navigating (Page Control Rendering) .......................................1208
Bonus: Deconstructing the ListView Batching Renderer ...................................................1210
Appendix B WinJS Extras .................................................................................................1214
Exploring WinJS.Class Patterns .......................................................................................1214
WinJS.Class.define .....................................................................................................1214
WinJS.Class.derive .....................................................................................................1217
Mixins.......................................................................................................................1218
Obscure WinJS Features ................................................................................................1219
Wrappers for Common DOM Operations ....................................................................1219
WinJS.Utilities.data, convertToPixels, and Other Positional Methods ............................1221

18
WinJS.Utilities.empty, eventWithinElement, and getMember ......................................1222
WinJS.UI.scopedSelect and getItemsFromRanges ........................................................1222
Extended Splash Screens ...............................................................................................1223
Adjustments for View Sizes ........................................................................................1229
Custom Layouts for the ListView Control ........................................................................1231
Minimal Vertical Layout .............................................................................................1233
Minimal Horizontal Layout .........................................................................................1235
Two-Dimensional and Nonlinear Layouts ....................................................................1239
Virtualization ............................................................................................................1241
Grouping...................................................................................................................1243
The Other Stuff .........................................................................................................1244
Appendix C Additional Networking Topics........................................................................1249
XMLHttpRequest and WinJS.xhr .....................................................................................1249
Tips and Tricks for WinJS.xhr ......................................................................................1250
Breaking Up Large Files (Background Transfer API) ..........................................................1251
Multipart Uploads (Background Transfer API) .................................................................1252
Notes on Encryption, Decryption, Data Protection, and Certificates .................................1255
Syndication: RSS, AtomPub, and XML APIs in WinRT ........................................................1255
Reading RSS Feeds .....................................................................................................1256
Using AtomPub .........................................................................................................1259
Sockets .........................................................................................................................1260
Datagram Sockets......................................................................................................1261
Stream Sockets..........................................................................................................1265
Web Sockets: MessageWebSocket and StreamWebSocket...........................................1268
The ControlChannelTrigger Background Task ..............................................................1273
The Credential Picker UI ................................................................................................1273
Other Networking SDK Samples .....................................................................................1277
Appendix D Provider-Side Contracts ................................................................................1279

19
File Picker Providers ......................................................................................................1279
Manifest Declarations................................................................................................1280
Activation of a File Picker Provider..............................................................................1281
Cached File Updater ......................................................................................................1288
Updating a Local File: UI.............................................................................................1291
Updating a Remote File: UI ........................................................................................1292
Update Events ...........................................................................................................1294
Contact Cards Action Providers ......................................................................................1297
Contact Picker Providers ................................................................................................1300
Appointment Providers..................................................................................................1303
About the Author .............................................................................................................1309

20
Introduction
Welcome, my friends, to Windows 8.1! On behalf of the thousands of designers, program managers,
developers, test engineers, and writers who have brought the product to life, I'm del ighted to welcome
you into a world of Windows Reimagined.

This theme is no mere sentimental marketing ploy, intended to bestow an aura of newness to
something that is essentially unchanged, like those household products that make a big splash on the
idea of "New and Improved Packaging!" No, starting with version 8, Microsoft Windows truly has been
reborn—after more than a quarter-century, something genuinely new has emerged.

I suspect—indeed expect—that you're already somewhat familiar with the reimagined user
experience of Windows 8 and Windows 8.1. You're probably reading this book, in fact, because you
know that the ability of Windows to reach across desktop, laptop, and tablet devices, along with the
global reach of the Windows Store, will provide you with many business opportunities, whether you're
in business, as I like to say, for fame, fortune, fun, or philanthropy.

We'll certainly see many facets of this new user experience throughout the course of this book. Our
primary focus, however, will be on the reimagined developer experience.

I don't say this lightly. When I first began giving presentations within Microsoft about building
Windows Store apps, I liked to show a slide of what the world was like in the year 1985. It was the time
of Ronald Reagan, Margaret Thatcher, and Cold War tensions. It was the time of VCRs and the
discovery of AIDS. It was when Back to the Future was first released, Michael Jackson topped the charts
with Thriller, and Steve Jobs was kicked out of Apple. And it was when software developers got their
first taste of the original Windows API and the programming model for desktop applications.

The longevity of that programming model has been impressive. It's been in place for nearly three
decades now and has grown to become the heart of the largest business ecosystem on the planet. The
API itself, known today as Win32, has also grown to become the largest on the planet! What started
out on the order of about 300 callable methods has expanded three orders of magnitude, well beyond
the point that any one individual could even hope to understand a fraction of it. I'd certainly given up
such futile efforts myself.

So when I bumped into my old friend Kyle Marsh in the fall of 2009, just after Windows 7 had been
released, and heard from him that Microsoft was planning to reinvigorate native app development for
Windows 8, my ears were keen to listen. In the months that followed I learned that Microsoft was
introducing a completely new API called the Windows Runtime (or WinRT). This wasn't mea nt to
replace Win32, mind you; desktop applications would still be supported. No, this was a programming
model built from the ground up for a new breed of touch-centric, immersive apps that could compete
with those emerging on various mobile platforms. It would be designed from the app developer's point
of view, rather than the system's, so that key features would take only a few lines of code to implement

21
rather than hundreds or thousands. It would also enable direct native app development in multiple
programming languages. This meant that new operating system capabilities would surface to those
developers without having to wait for an update to some intermediate framework. It also meant that
developers who had experience in any one of those language choices would find a natural home when
writing apps for Windows 8 and Windows 8.1.

This was very exciting news to me because the last time that Microsoft did anything significant to
the Windows programming model was in the early 1990s with a technology called the Component
Object Model (COM), which is exactly what allowed the Win32 API to explode as it did. Ironically, it was
my role at that time to introduce COM to the developer community, which I did through two editions
of Inside OLE (Microsoft Press, 1993 and 1995) and seemingly endless travel to speak at conferences
and visit partner companies. History, indeed, does tend to repeat itself, for here I am again, with
another second edition!

In December 2010, I was part of the small team who set out to write the very first Windows Store
apps using what parts of the new WinRT API had become available. Notepad was the text editor of
choice, we built and ran apps on the command line by using abstruse Powershell scripts that required
us to manually type out ungodly hash strings, we had no documentation other than oft-incomplete
functional specifications, and we basically had no debugger to speak of other than the tried and true
window.alert and document.writeln. Indeed, we generally worked out as much HTML, CSS, and
JavaScript as we could inside a browser with F12 debugging tools, adding WinRT-specific code only at
the end because browsers couldn't resolve those APIs. You can imagine how we celebrated when we
got anything to work at all!

Fortunately, it wasn't long before tools like Visual Studio Express and Blend for Visual Studio became
available. By the spring of 2011, when I was giving many training sessions to people inside Microsoft on
building apps for Windows 8, the process was becoming far more enjoyable and exc eedingly more
productive. Indeed, while it took us four to six weeks in late 2010 to get even Hello World to show up
on the screen, by the fall of 2011 we were working with partner companies who pulled together
complete Store-ready apps in roughly the same amount of time.

As we've seen—thankfully fulfilling our expectations—it's possible to build a great app in a matter
of weeks. I'm hoping that this ebook, along with the extensive resources on http://dev.windows.com,
will help you to accomplish exactly that and to reimagine your own designs.

Work on this second edition began almost as soon as the first edition was released. (I’d make a quip
about the ink not being dry, but that analogy doesn’t work for an ebook!) When Windows 8 became
generally available in the fall of 2012, work on Windows 8.1 was already well underway: the
engineering team had a long list of improvements they wanted to make along with features that they
weren’t able to complete for Windows 8. And in the very short span of one year, Windows 8.1 was itself
ready to ship.

At first I thought writing this second edition would be primarily a matter of making small updates to
each chapter and perhaps adding some pages here and there on a handful of new features. But as I got
deeper into the updated platform, I was amazed at just how much the API surface area had expanded!
22
Windows 8.1 introduces a number of additional controls, an HTML webview element, a stronger HTTP
API, content indexing, deeper OneDrive support, better media capabilities, more tiles sizes (small and
large), more flexible secondary tile, access to many kinds of peripheral devices, and more options for
working with the Windows Store, like consumable in-app purchases. And clearly, this is a very short list
of distinct Windows 8.1 features that doesn’t include the many smaller changes to the API. (A fuller list
can be found on Windows 8.1: New APIs and features for developers).

Furthermore, even as I was wrapping up the first edition of this book, I already had a long list of
topics I wanted to explore in more depth. I wrote a number of those pieces for my blog, with the
intention of including them in this second edition. A prime example is Appendix A, “Demystifying
Promises.”

All in all, then, what was already a very comprehensive book in the first edition has become even
more so in the second! Fortunately, with this being an ebook, neither you nor I need feel guilty about
matters of deforestation. We can simply enjoy the process of learning about and writing Windows
Store Apps with HTML, CSS, and JavaScript.

And what about Windows Phone 8.1? I’m glad you asked, because much of this book is completely
applicable to that platform. Yes, that’s right: Windows Phone 8.1 supports writing apps in HTML, CSS,
and JavaScript, just like Windows 8.1, meaning that you have the same flexibility of implementation
languages on both. However, the decision to support JavaScript apps on Windows Phone 8.1 came very
late in the production of this book, so I’m only able to make a few notes here and there for Phone -
specific concerns. I encourage you to follow the Building Apps for Windows blog, where we’ll be
posting more about the increasingly unified experience of Windows and Windows Phone.

Who This Book Is For

This book is about writing Windows Store apps using HTML, CSS, and JavaScript. Our primary focus will
be on applying these web technologies within the Windows platform, where there are unique
considerations, and not on exploring the details of those web technologies themselves. For the most
part, I'm assuming that you're already at least somewhat conversant with these standards. We will cover
some of the more salient areas like the CSS grid, which is central to app layout, but otherwise I trust
that you're capable of finding appropriate references for most everything else. For Java Script
specifically, I can recommend Rey Bango’s Required JavaScript Reading list, though I hope you’ll spend
more time reading this book than others!

I'm also assuming that your interest in Windows has at least two basic motivations. One, you
probably want to come up to speed as quickly as you can, perhaps to carve out a foothold in the
Windows Store sooner rather than later. Toward that end, Chapter 2, “Quickstart,” gives you an
immediate experience with the tools, APIs, and some core aspects of app development and the
platform. On the other hand, you probably also want to make the best app you can, one that performs
really well and that takes advantage of the full extent of the platform. Toward this end, I've also

23
endeavored to make this book comprehensive, helping you at least be aware of what's possible and
where optimizations can be made.

Let me make it clear, though, that my focus in this book is the Windows pla tform. I won’t talk much
about third-party libraries, architectural considerations for app design, and development strategies and
best practices. Some of these will come up from time to time, but mostly in passing.

Nevertheless, many insights have come from working directly with real-world developers on their
real-world apps. As part of the Windows Ecosystem team, myself and my teammates have been on the
front lines bringing those first apps to the Windows Store. This has involved writing bits of code for
those apps and investigating bugs, along with conducting design, code, and performance reviews with
members of the Windows engineering team. As such, one of my goals with this book is to make that
deep understanding available to many more developers, including you!

What You'll Need (Can You Say “Samples”?)

To work through this book, you should have Windows 8.1 (or a later update) installed on your
development machine, along with the Windows SDK and tools. All the tools, along with a number of
other resources, are listed on Developer Downloads for Windows Store Apps. You’ll specifically need
Microsoft Visual Studio Express 2013 for Windows. (Note that for all the screenshots in this book, I
switched Visual Studio from its default “dark” color theme to the “light” theme, as the latter works
better against a white page.)

We’ll also acquire other tools along the way as we need them in this ebook, specifically to run some
of the examples in the companion content. Here’s the short list:

 Live SDK (for Chapter 4)

 Bing Maps SDK for Windows Store Apps (for Chapters 10 and beyond)

 Visual Studio Express 2013 for Web (for Chapter 16)

 Multilingual App Toolkit (for Chapter 19)

Also be sure to visit the Windows 8.1 Samples Pack page and download at least the JavaScript
samples. We'll be drawing from many—if not most—of these samples in the chapters ahead, pulling in
bits of their source code to illustrate how many different tasks are accomplished.

One of my secondary goals in this book, in fact, is to help you understand where and when to use
the tremendous resources in what is clearly the best set of samples I’ve ever seen for any release of
Windows. You’ll often be able to find a piece of code in one of the samples that does exactly what you
need in your app or that is easily modified to suit your purpose. For this reason I’ve made it a point to
personally look through every one of the JavaScript samples, understand what they demonstrate, and
then refer to them in their proper context. This, I hope, will save you the trouble of having to do that
level of research yourself and thus make you more productive in your development efforts.

24
In some cases I’ve taken one of the SDK samples and made certain modifications, typically to
demonstrate an additional feature but sometimes to fix certain bugs or demonstrate a better
understanding that came about after the sample had to be finalized. I’ve included these modifications
in the companion content for this book, which you can download at

http://aka.ms/BrockschmidtBook2/CompContent

The companion content also contains a few additional examples of my own, which I always refer to
as “examples” to make it clear that they aren’t official SDK content. (I’ve also rebranded the modified
samples to make it clear that they’re part of this book.) I’ve written these examples to fill gaps that the
SDK samples don’t address or to provide a simpler demonstration of a feature that a related sample
shows in a more complex manner. You’ll also find many revisions of an app called “Here My Am!” that
we’ll start building in Chapter 2 and we’ll refine throughout the course of this book. This includes
localizing it into a number of different languages by the time we reach the end.

There are also a number of videos that I’ve made for this book, which more readily show dynamic
effects like animations and user interaction. You can find all of them at

http://aka.ms/BrockschmidtBook2/Videos

Beyond all this, you’ll find that the Windows Store app samples gallery as well as the Visual Studio
sample gallery let you search and browse projects that have been contributed by other developers —
perhaps also you! (On the Visual Studio site, by the way, be sure to filter on Windows Store apps
because the gallery covers all Microsoft platforms.) And of course, there will be many more developers
who share projects on their own.

In this book I occasionally refer to posts on a number of blogs. First are a few older blogs, namely
the Windows 8 App Developer blog, the Windows Store for Developers blog, and—for the Windows 8
backstory of how Microsoft approached this whole process of reimagining the operating system —the
Building Windows 8 blog. As of the release of this book, the two developer blogs have merged into the
Building Apps for Windows blog that I mentioned earlier.

A Formatting Note

Throughout this book, identifiers that appear in code, such as variable names, property names, and API
functions and namespaces, are formatted with a color and a fixed-point font. Here’s an example:
Windows.Storage.ApplicationData.current . At times, certain fully qualified names—those that that
include the entire namespace—can become quite long, so it’s necessary to occasionally hyphenate
them across line breaks, as in Windows.Security.Cryptography.CryptographicBuffer.-
convertStringToBinary. Generally speaking, I’ve tried to hyphenate after a dot or between whole
words but not within a word. In any case, these hyphens are never part of the identifier except in CSS
where hyphens are allowed (as in -ms-high-contrast-adjust) and with HTML attributes like aria-
label or data-win-options.

25
Occasionally, you’ll also see identifiers that have a different color, as in datarequested. These
specifically point out events that originate from Windows Runtime objects, for which there are a few
special considerations for adding and removing event listeners in JavaScript, as discussed toward the
end of Chapter 3. I make a few reminders about this point throughout the chapters, but the purpose of
this special color is to give you a quick reminder that doesn’t break the flow of the discussion
otherwise.

Acknowledgements

In many ways, this isn't my book—that is, it's not an account of my own experiences and opinions
about writing apps for Windows. I'm serving more as a storyteller, where the story itself has been
written by the thousands of people in the Windows team whose passion and dedication have been a
constant source of inspiration. Writing a book like this wouldn't be possible without all the work that's
gone into customer research; writing specs; implementing, testing, and documenting all the details;
managing daily builds and public releases; and writing again the best set of samples I've ever seen for a
platform. Indeed, the words in some sections come directly from conversations I've had with the people
who designed and developed a particular feature. I'm grateful for their time, and I’m delighted to give
them a voice through which they can share their passion for excellence with you.

A number of individuals deserve special mention for their long-standing support of this project. To
Mahesh Prakriya, Ian LeGrow, Anantha Kancherla, Keith Boyd and their respective teams, with whom
I've worked closely, and to Kathy Carper, Roger Gulrajani, Keith Rowe, Dennis Flanagan, and Adam
Denning, under whom I've had the pleasure of serving.

Thanks also to Devon Musgrave at Microsoft Press, who put in many long hours editing my many
long chapters, many times over. My teammates, Kyle Marsh, Todd Landstad, Shai Hinitz, Patrick
Dengler, Lora Heiny, Leon Braginski, and Joseph Ngari have also been invaluable in sharing what
they've learned in working with real-world partners. A special thanks goes to Kenichiro Tanaka of
Microsoft Japan, for always being the first one to return a reviewed chapter to me and for joyfully
researching different areas of the platform whenever I asked. Many bows to you, my friend! Nods also
to others in our international Windows Ecosystem teams who helped with localizing the Here My Am!
app for Chapter 19: Gilles Peingné, Sam Chang, Celia Pipó Garcia, Juergen Schwertl, Maarten van de
Bospoort, Li-Qun Jia, and Shai Hinitz.

The following individuals all contributed to this book as well, with chapter reviews, answers to my
questions, deep discussions of the details, and much more. I’m grateful to all of you for your time and
support:

Shakil Ahmed Ryan Demopoulos Jakub Kotynia Jason Olson Adam Stritzel

Arvind Aiyar Scott Dickens Jared Krinke Elliot H Omiya Shijun Sun

Jessica Alspaugh Tyler Donahue Victoria Kruse Lisa Ong Ellick Sung

Gaurav Anand Brendan Elliott Nathan Kuchta Larry Osterman Sou Suzuki

26
Chris Anderson Matt Esquivel Elmar Langholz Rohit Pagariya Simon Tao

Erik Anderson David Fields Bonny Lau Ankur Patel Henry Tappen

Axel Andrejs Sean Flynn Wonhee Lee Harry Pierson Chris Tavares

Tarek Ayna Erik Fortune Travis Leithead Steve Proteau David Tepper

Art Baker Jim Galasyn Dale Lemieux Hari Pulapaka Lillian Tseng

Adam Barrus Gavin Gear Chantal Leonard Arun Rabinar Sara Thomas

Megan Bates Derek Gephard Cameron Lerum* Matt Rakow Ryan Thompson

Tyler Beam Marcelo Garcia Gonzalez Brian LeVee Ramu Ramanathan Bill Ticehurst

Matthew Beaver Sean Gilmour Jianfeng Lin Sangeeta Ranjit Peter Torr

Kyle Beck Sunil Gottumukkala Tian Luo Ravi Rao Stephen Toub

Ben Betz Scott Graham Sean Lyndersay Brent Rector Tonu Vanatalu

Johnny Bregar Ben Grover David Machaj Ruben Rios Jeremy Viegas

John Brezak Paul Gusmorino Mike Mastrangelo Dale Rogerson Alwin Vyhmeister

John Bronskill Chris Guzak Jordan Matthiesen Nick Rotondo Nick Waggoner

Jed Brown Zainab Hakim Ian McBurnie David Rousset David Washington

Kathy Carper Rylan Hawkins Sarah McDevitt George Roussos Sarah Waskom

Vincent Celie John Hazen Isaac McGarvey Jake Sabulsky Marc Wautier

Raymond Chen Jerome Holman Jesse McGatha Gus Salloum Josh Williams

Rian Chung Scott Hoogerwerf Matt Merry Michael Sciacqua Lucian Wischik

Arik Cohen Stephen Hufnagel Markus Mielke Perumaal Shanmugam Dave Wood

Justin Cooperman Sean Hume Pavel Minaev Edgar Ruiz Silva Kevin Michael Woley

Michael Crider Mathias Jourdain John Morrow Poorva Singal Charing Wong

Monica Czarny Damian Kedzierski Feras Moussa Karanbir Singh Bernardo Zamora

Nigel D’Souza Suhail Khalid John Mullaly Peter Smith Michael Ziller

Priya Dandawate Deen King-Smith Jan Nelson* Sam Spencer

Darren Davis Daniel Kitchener Marius Niculescu Edward Sproull

Jack Davis Kishore Kotteri Daniel Oliver Ben Srour

* For Jan and Cameron, a special acknowledgement for riding down from Redmond, Washington, to visit me in
Portland, Oregon (where I was living at the time), and sharing an appropriately international Thai lunch while we
discussed localization and multilingual apps.

Let me add that during the production of this second edition, I did manage to lose the extra weight
that I’d gained during the first edition. All things must balance out, I suppose!

Finally, special hugs to my wife Kristi and our son Liam (now seven and a half), who have lovingly

27
been there the whole time and who don't mind my traipsing through the house to my office either late
at night or early in the morning.

Free Ebooks from Microsoft Press

From technical overviews to drilldowns on special topics, these free ebooks are available in PDF, EPUB,
and/or Mobi for Kindle formats, ready for you to download:

http://aka.ms/mspressfree

The “Microsoft Press Guided Tours” App

Check the Windows Store soon for the Microsoft Press Guided Tours app, which provides insightful
tours of new and evolving technologies created by Microsoft. While you’re exploring each tour’s
original content, the app lets you manipulate and mark that content in ways to make it more useful to
you. You can, of course, do the usual things—such as highlight, add notes, mark as favorite, and mark
to read later—but you can also

 view all links to external documentation and samples in one place via a Resources view;
 sort the Resources view by Favorites, Read Later, and Noted;
 view a list of all your notes and highlights via the app bar;
 share text, code, or links to resources with friends via email; and
 create your own list of resources, as you navigate online resources, beyond those pointed to in the
Guided Tour.

Our first Guided Tour is based on this ebook. Kraig acts as a guide in two senses: he leads
experienced web developers through the processes and best practices for building Windows Store
apps, and he guides you through Microsoft’s extensive developer documentation, pointing you to the
appropriate resources at each step in your app development process so that you can build your apps as
effectively as possible.

Enjoy the app, and we look forward to providing more Guided Tours soon!

Errata & Book Support

We’ve made every effort to ensure the accuracy of this ebook and its companion content. Any errors
that are reported after the book’s publication will be listed on http://aka.ms/BrockschmidtBook2/Errata.
If you find an error that is not already listed, you can report it to us through the comments area of the
same page.

28
Another Random Scribd Document
with Unrelated Content
masses of wood, we could hear the roar of waters in the otherwise
profound stillness of the forest. At the chief pass in this chain of hills
we passed a tremendous cliff of rock, which rises sheer out of the
valley to a height (so it has been ascertained) of nearly two thousand
feet, certainly one of the grandest natural objects I had ever seen.
This stupendous mass is called Andrìambàvibé, “Great Princess”;
the large trees on the summit looked like mere bushes seen from
below.
Notwithstanding the fatigue of the journey, it was LUXURIANT
impossible not to be struck with admiration and delight FOLIAGE
at the grandeur of the vegetation. The profusion and luxuriance of
vegetable life were very extraordinary. There appeared to be few
trees of great girth of trunk, but their height was considerable,
especially in the valleys. High over all the other trees shot up the tall
trunks of many varieties of palms, with their graceful crowns of
feathery leaves. A dense undergrowth of shrubs, tree-ferns, and
dwarf palms made in many places quite a green twilight; while
overhead the branches were interlaced and bound together by
countless creeping and climbing plants, whose rope-like tendrils
crossed in all directions and made a labyrinth which it was
impossible to pass through. Occasionally we came across large
trees in flower, giving a glorious mass of colour. With these
exceptions, however, flowers were comparatively few; and during
subsequent journeys I have found that it is true in Madagascar what
Dr Alfred R. Wallace has pointed out as characteristic of all tropical
countries—viz. that in the tropics are not to be found great masses of
floral colour. For these one must go to the temperate zones; foliage,
overpowering in its luxuriance and endless variety, is indeed to be
found in the tropics, but not the large extent of colour given by
heather, buttercups, primroses, or a field of poppies in England.
The orchids, however, were very abundant. Wherever a fallen tree
hung across the path, there they found a lodging-place, and
beautified the decaying trunks with their exquisite waxy flowers of
pink and white. Although what has just been said of wild flowers is
true on the whole, there were a considerable number to be seen, if
carefully looked for. My bearers soon perceived how interested I was
in observing their novel and curious forms, and brought to me all the
different varieties they could find, so that in the evening my
palanquin contained a collection of flowers and plants gathered
during the day. I managed to dry a few, but the greater part had to be
thrown away, as I had no means of preserving them to take up to the
capital.
In some parts of the woods the different species of bamboo give
quite a distinct character to the vistas. Some of them shoot up in one
long slender jointed stem, with fringes of delicate leaves, and hang
over the paths like enormous whips. Another kind, a climbing
species, with stems no thicker than a quill, clothes the lower trees
with a dense mantle of pale green drapery. As we got into the higher
and cooler parts of the forest, numbers of the trees had long pendent
masses of feathery grey lichen, a species of Usnea, giving them
quite a venerable appearance, and reminding me of the opening
lines of Longfellow’s “Evangeline”:
“This is the forest primeval. The murmuring pines and the hemlocks,
Bearded with moss, and in garments green, indistinct in the twilight,
Stand like Druids of old, with voices sad and prophetic,
Stand like harpers hoar, with beards that rest on their bosoms.”
Although the vegetation was most luxuriant, I was ANIMAL LIFE IN
THE FOREST
surprised and somewhat disappointed by the stillness
of the forest, and the few signs of animal life and the rarity of the
song of birds. It is true that at certain seasons the notes of many
songsters may be heard, and that in certain places the cries of
different species of lemur resound through the woods. Still, on the
whole, I had imagined that a tropical forest would be much more
visibly full of life. Subsequent experience and research showed me
that there is a considerable variety and number of living creatures in
these forests, but they have to be looked for, and when found they
are full of interest, as we shall see. It may be noticed, too, that both
bird and insect life are more evident in the outskirts of the woods and
in the occasional openings among the trees than in the densest
forest, all living things delighting in sunlight.
From what has been already said it will be seen that the flora of
Madagascar presents many new and striking forms of vegetable life;
but its fauna is still more noteworthy, for it presents one of the
strangest anomalies in the geographical distribution of animals. This
zoological peculiarity consists as much, or more, in what is wanting,
as in what is present. Separated from Africa by a channel not three
hundred miles broad at one point, we should have supposed that
Madagascar would partake to a great extent of the same
characteristics, as regards animal life, as the neighbouring continent.
But it is really remarkably different. There is a strange absence of the
larger species of mammalia, and this statement applies not only to
the forests but to all parts of the island, the bare highlands of the
interior and the extensive lower plains of the west and the south.
First of all, the large carnivora are all wanting; there ABSENCE OF
are no lions, leopards, tigers, panthers, or hyenas. LARGE ANIMALS
The large thick-skinned animals, so plentiful in the rivers and forests
of Africa, have no representatives in Madagascar; no elephant
browses in the woods, no rhinoceros or hippopotamus lazily gambols
in the streams, although there was a small species of the last-named
pachyderm which was living during the latest quaternary epoch. The
numerous species of fleet-footed animals—antelope, gazelle, deer,
and giraffe, zebra and quagga—which scour the African plains are
entirely absent; and the ox, the sheep, the goat, the horse and the
ass have all been introduced, the three former from Africa and the
others from Europe. The order of mammalia most developed here is
the quadrumana, but this, again, is represented by but a single
division, the lemurs and their allies, which are the most characteristic
animals of the island. There are no true monkeys, baboons, or apes,
nor do the gorilla or chimpanzee put in an appearance. The lemurs
are very distinct from all these and are pretty creatures, bearing little
resemblance to the half-human, grotesque appearance of many of
the quadrumanous animals, or to the savage character of the larger
apes and baboons. They vary in size from that of a large monkey to
species not larger than a rat. They are mostly gentle in disposition,
and some kinds are tame enough to be kept about the house as
pets.
Family Tomb of the Late Prime Minister, Antanànarìvo
The tomb is under the upper open arcade
Royal Tombs in the Courtyard of the Palace, Antanànarìvo
On the right is that of Radàma I, on the left that of Ràsohèriva

It is probable that the mammalia of Madagascar are MADAGASCAR


AND AFRICA
now fairly well known, although a few of the smallest
species may still await discovery; and the following summary may be
here given of their divisions and numbers—excluding the bats, of
which there are seventeen species, ninety species of terrestrial
mammals have been classified and described, and of the following
orders:—Lemuroida, thirty-nine species; Carnivora, almost all being
civets and quite small animals, ten species; Insectivora, including
shrews and small creatures resembling hedgehogs, twenty-four
species; Rodentia, rats and mice, sixteen species; and Ungulata,
one or two species of river-hog. It will be seen that about two-fifths of
the mammalian fauna belong to the lemurs, and that with very few
exceptions, all the others are small and inconspicuous animals;
many, however, are of exceptional interest, as we shall see. From a
consideration of the facts regarding the mammals, as well as those
of the other forms of animal life found here—birds, reptiles and
insects—the following conclusions may be drawn: First, Madagascar
was anciently joined to Africa, receiving its fauna from the continent,
whose animal life was then much like that of Madagascar at the
present time; but it had also certain connections at an early
geological epoch with Asia and even with South America, as there
are undoubted affinities between its fauna and those of these distant
regions. Secondly, this African connection of Madagascar existed
before the abundant animal life of the continent entered it from the
north, and when Africa was a great continental island—that is, its
central and southern portions, and separated from Europe and Asia
by a shallow sea, now the Sahara Desert. The upheaval of that sea-
bottom was probably to some extent contemporaneous with the
subsidence of the land which is now the Mozambique Channel.
Thirdly, Madagascar must have remained for a long period
separated from every other part of the globe; and while the western
and southern portions have been repeatedly submerged, the
highland interior, of palæozoic rocks, is very ancient land, and much
of its fauna is also antique in its character.
But to leave this zoological dissertation and return to our journey. I
have not mentioned that more than once we saw small companies of
lemurs high over our heads, leaping with wonderful agility from
branch to branch, and uttering their peculiar cry. These cries could
often be heard when the animals were not seen, and sounded
almost like the cry of children; and to myself there was always
something pleasant in it, as that of living creatures rejoicing in their
freedom in these boundless forests.
On Saturday morning I wished Mr Plant good-bye THE BED OF A
and set off, leaving him at the village, which he was to GREAT LAKE
make his head-quarters for some time while collecting natural history
specimens in the forest. The road was not nearly so difficult as on
the previous day, so that I had no need to alight from the palanquin
all the way to Ampàsimpòtsy, where I stayed to breakfast. The hills
were much more moderate in height, with a good deal of open
clearing, although the forest still continued on either hand, but not in
those dense masses of wood through which we had passed the last
three or four days. Leaving our halting-place at noon, we gradually
got clear of the woods, and early in the afternoon ascended a very
high hill, from which we could see a great distance both westward
and eastward. Behind us were the hills and valleys covered with
forest through which we had travelled, while in front stretched a great
undulating plain, bare and almost without a tree, except in a few
places, where there were large circular patches of wood. This was
the plain of Ankay, which separates the two belts of forest, and is the
home of the Bezànozàno tribe. Beyond this again, ten or twelve
miles away, was the upper forest, clothing the slopes and summits of
the edge of the interior highland. Careful examination of this region
has shown that it was formerly the bed of a great lake, from two to
three hundred miles long, extending from the present Lake Alaotra,
farther north, and is its gradually diminishing remnant. Subsequent
action of water has, however, so cut up its former level that it now
presents a very uneven surface.
It was dull travelling alone after the pleasant companionship of a
fellow-traveller; and in making arrangements for meals, etc., I felt
how perfectly helpless a man is when he cannot speak so as to be
understood. I was a barbarian to my men, and they were barbarians
to me; for my stock of Malagasy words was very limited, and
probably almost unintelligible as to pronunciation, so that I was at a
complete standstill for nearly everything I wanted to say. We reached
Mòramànga, a rather large village, at the commencement of the
plain, soon after three in the afternoon and there halted for the rest
of the day. This place was a military post of the Hova government,
and on passing through passports were examined by the officer in
charge.
Next morning we were stirring early and left Mòramànga while it
was yet dusk. There was a thick mist, and my men were shivering
with the cold, for we were now two thousand nine hundred feet
above the sea, and their scanty clothing was but a poor protection.
For an hour or two we saw little except for a few yards around us;
but as the sun rose the fog rolled up like a vast curtain, revealing the
line of the Ifòdy and Angàvo hills straight before us; the slopes were
partly covered with trees, but a good deal of their surface was brown
and bare. In the deepest of the many valleys which cut the surface of
the Ankay plain runs a beautiful and rapid river, the Mangòro, about
one hundred and fifty feet wide where we crossed it in canoes. This
is the longest river of the east coast, and would make a fine means
of access to the interior, were its course not interrupted by rapids
and cataracts at many points.
Soon after crossing the river we commenced the ascent of Ifòdy, a
very steep and difficult path, for an hour or more; but as we mounted
higher and higher a glorious prospect gradually revealed itself.
Looking back after we had reached the summit, there was the
Mòramànga plain, bounded by the distant forest stretching away
north and south, until lost in the dim distance, while below us the
Mangòro could be seen in a wavy blue line in the Ankay plain.
Before us, to the left, was a lovely valley, fertile and green with rice-
fields, watered by the Valàla river and shut in by the Angàvo range of
mountains, while on the right was a confused mass of hills, looking
like a mighty sea which had suddenly been hardened and fixed in its
tossings.
There was much more evidence of cultivation as we AN
proceeded, the valleys being occupied by rice-fields, EXTRAORDINARY
NEST
which were kept covered with a few inches of water by
careful irrigation. Among the bird population of Madagascar there are
some eighteen species of herons and storks which are seen in the
marshes and rice-fields. One of the most noticeable of these is the
Tàkatra or tufted umber, a long-legged stork with a large plume or
crest. It builds an extraordinarily large nest, which is visible at a
considerable distance and might be taken at first sight for half-a-load
of hay. It is usually placed on the fork of a large tree, and is
composed of sticks and grass, plastered inside with a thick lining of
mud. It is from four and a half to six feet in diameter, dome-shaped,
with a lateral entrance, and is divided into three chambers, in one of
which its two large eggs are laid. The entrance is by a narrow tunnel
and is always placed so as to be difficult of access, though the nest
itself may be quite easy to approach. From this conspicuous nest,
and the sedate way in which the tàkatra marches about seeking for
its food, many native superstitions have gathered about the bird, one
of which is that those who destroy its nest will become lepers. If the
sovereign’s path was crossed by a tàkatra, it was considered
unlucky to proceed, and the royal procession had to retrace its steps.
Many native proverbs also refer to this bird. There are also two other
species of stork, one of which is always found together with other
shore birds; it lives in companies of from six to twelve individuals at
river-mouths, feeding on crustacea and mulluscs, from which habit
comes its name of Famàkiakòra or “shell-breaker.”
We were now nearing the country of the Hovas, and THE HOVAS
could see an evident difference in the appearance of
the inhabitants. They were lighter in colour and had longer and
straighter hair than the coast tribes. But owing to the fashion, at that
time, of both sexes wearing their hair done up in a number of knots,
and from the apparent absence of whisker or beard, I was
sometimes puzzled to know at first sight whether the people we
passed were men or women; and there was little difference in dress,
the làmba being worn by both. Not only were the people different in
appearance to those we had mostly seen, but the dwellings also had
a much more civilised look. Several of the houses at
Ambòdinangàvo were of the true Hova type, with high-pitched roofs,
made of strong timber framing and filled in, for the walls, with thick
upright planking, instead of the slight bamboos and leaves of the
coast and forest houses. Some had boarded floors and had a room
in the roof; and the crossed rafters at the gables were carried up for
two or three feet above the ridge. The house in which I stayed had a
much more comfortable appearance than any I had been in before,
having two rooms on the ground floor, the walls covered with
matting, and there were actually chairs! a luxury I had not
experienced since leaving Tamatave. I felt that I was getting near
civilisation again.
While dinner was preparing I strolled out into a ravine near the
house and was struck with the beauty and variety of the insects, as
indeed I had been in many parts of the journey. There were
butterflies of gorgeous hues, dragonflies, crimson, blue and dull gold
in colour, grasshoppers with scarlet wings, and the very spiders with
gold and silver markings. Some species of these latter were of great
size; we saw hundreds of them in their large geometric webs
stretching over the paths as we came along.
On Monday morning, 12th October, we left the A COMBINATION
village before sunrise and immediately began the OF BEAUTY
ascent of Angàvo, which rises from fifteen hundred to sixteen
hundred feet above the valley. It is an enormous mass of granite,
capped with clay, the summit being scarped and fortified with
earthworks; it is, however, not a detached mountain rising from a
plain on every side, but rather a vast natural bastion or outwork of a
higher level of country. There was a gorgeous sunrise, which
covered the greater part of the sky with a crimson light, unlike
anything I had ever seen before. Then for another hour or two we
were passing through the upper belt of forest, here very narrow,
being only ten or twelve miles across, but as dense and as beautiful
as the lower and wider belt. And it was just as difficult to travel
through as the other forest, descending into the gorge of the
Mandràka river and then scaling the steep ascents. One place
especially, where we crossed the stream, was a perfect combination
of beauty—rushing waters, luxuriant foliage of fern and palm and
bamboo—and hundreds of large blue and black papilio butterflies
hovering over the river.
At eight o’clock we reached Ankèramadìnika, a village close to the
last ascent of the forest, and waited for a few minutes while my
bearers bought manioc root at the little market. The people crowded
round me, bringing various articles of food for sale—sweet potatoes,
honeycomb, and wild raspberries. We had now left behind us the
forest region and were on the bare open uplands of Imèrina, the air
being clear and keen. The hills were less steep and more rounded,
reminding me of some parts of the English chalk downs, and there
was hardly a tree to be seen. In several places the granite or gneiss
takes a dome-like form; and in others the same rock formed the
highest points. For many miles I could see them rising high over
every other hill; one of these, on the southern side of a huge
mountain called Angàvokèly, was like a titanic castle; another, which
is divided into three and called Tèlomiràhavàvy (“Three Sisters”),
was like a vast church.
There were signs of approaching the capital in the AMBÀTOMÀNGA
number of villages which came in sight. The country
also was much more cultivated, chiefly, however, in the valleys,
where the bright green patches of the newly sown rice gave a
refreshing contrast to the bare and brown appearance of the hills
and downs, now parched and dry after five or six months without
rain. In many places great black patches showed where the dry
grass had been set on fire. This is done shortly before the rains
come on, and the rank hay-like grass is succeeded by a crop of fine
short herbage suitable for pasture. About noon we caught sight of
the large village of Ambàtomànga, then two or three miles distant.
This place had an important and picturesque appearance, being
considerably larger than any town on the road. Over a number of
smaller dwellings one large house rose conspicuous, with its lofty
high-pitched roof and double verandah. Close to the village is a lofty
mass of blue gneiss rock, about a couple of hundred feet in height,
and crowned by a stone tomb and other buildings, giving it the air of
a fortification. Passing through a large weekly market, where
hundreds of people were buying and selling, we at length entered
the last station on the road to Antanànarìvo.
Ambàtomànga had quite the appearance of a fortified town, having
walls of clay surrounding it, and deep fosses outside them. I stopped
at the large house which I had noticed at first, and found it a well-
finished timber structure, with venetian shutters and framed doors,
quite a contrast to the mere sheds in which I had slept for ten nights
past. It was divided into three rooms on the ground floor, with walls,
floor and ceiling all well planed and finished. The owner, a fine-
looking man and a native noble, gave me a welcome in a little
broken English; but his knowledge of European tongues was
apparently confined to half-a-dozen short phrases, for he repeatedly
said, “Thank you, sir,” giving me a hearty shake of the hand at the
same time, as if he thought that was the proper formula to be
observed. A little before dusk I walked out with him to the fort-like
tomb on the top of the rock. In the light of the setting sun the red clay
hills gave back the warm rays with an intensity of colour that was
remarkable. The tomb at the top is a large stone structure, well
worked, with an open balustrade and bold mouldings. Walking round
the house after dusk, I saw a lurid glare in the sky on all sides, and
then found it was produced by the grass burning on the hills and
downs, which showed in lines of fire for many miles in all directions.
Early on Tuesday morning, with a glad heart I took FIRST VIEW OF
my seat in my palanquin, rejoiced to think that this was THE CAPITAL
the last stage in my long journey. About three-quarters of an hour
after leaving Ambàtomànga we caught our first sight of the capital,
still twelve or fourteen miles distant, and I could not but be struck by
its size and fine situation, a much larger city than I had expected,
built on the summit and slopes of a lofty rocky hill some two miles
long from north to south, which was covered with dark-looking
houses. In the centre stood conspicuous the great bulk of the chief
palace and its smaller neighbour, their arched verandahs and steep
roofs, all painted white, and shining in the morning sun, towering
over every other object. It was a memorable moment to me, as I
thought of what had happened in Antanànarìvo within the last
quarter-century, and that my work was to raise lasting memorials to
the brave Malagasy who had suffered and died for their faith.
On we went over the long rolling moor-like hills, losing sight of the
city every now and then, and presently coming in view of it again as
we mounted the ridges; and every half-hour brought out more of the
details of the place and revealed its masses of dark houses,
clustered on the slopes of the rocky hill. Several streams we crossed
by means of stone arched bridges, and I was struck by the number
of villages to be seen in every direction, many of them enclosed in
high walls made of red clay, laid with care in regular courses and
apparently hard and durable. The houses were all built of the same
material, and many of them were enclosed in circular and others in
square courtyards with gateways. Many of the villages were
surrounded with deep fosses, sometimes two and even three yards
deep, now generally filled with bananas, peach and other fruit trees,
and some with walls and stone gateways, giving one the impression
that there must have formerly been much internal warfare to need
such elaborate defences. This indeed was the case before Imèrina
was governed by one sovereign, about a hundred years ago.
Within a mile or two of the city we passed for a LOCUSTS
quarter of an hour through a perfect cloud of locusts,
which covered the ground and filled the air. At a distance these
insects appeared like a low-lying cloud of dust; and when near to
one, and seen in certain directions, the sun shining on their wings
gave them almost the appearance of a snow shower. I began to
realise one of the plagues of Egypt. Many varieties of locust are
common in Madagascar, and occasionally they do great damage to
the crops. The Malagasy, however, make use of them for food, and
when a cloud of them appears, men, women and children are all out
catching them; and for a few days afterwards great brown heaps of
them are to be seen at all the little wayside shops. They are said to
taste something like shrimps, without any insides; but I must confess
I never brought myself to taste them, for they are anything but
inviting in appearance.
At length I was carried into a compound near the foot of the city
hill, and after some delay was met by one of the L.M.S. missionaries
and conducted by a most difficult and breakneck path up into the
triangular central space called Andohàlo. At the north-eastern corner
of this space was the dispensary and dwelling of our good medical
missionary, Dr Davidson, from whom and Mrs Davidson I received a
hearty welcome, and in a short time also from the rest of the
missionary brethren. With a glad and thankful heart I found myself in
the capital of Madagascar, with cheerful anticipations of being able to
do something in the service of Him who had protected me thus far,
and of helping in various ways the Malagasy people.
CHAPTER VI

T H E C H A N G I N G M O N T H S I N I M È R I N A : C L I M AT E , V E G E TAT I O N

A N D L I V I N G C R E AT U R E S O F T H E I N T E R I O R

M
Y object in these chapters is to describe, as vividly as I am
able, the varied aspects of the different months throughout
the year in this central province of Imèrina, as they present
themselves to anyone who lives in the capital city of Antanànarìvo,
and is frequently travelling in the country around it. I want to show
the variety of nature during the changing seasons, as the result of
the heat or cold, and of the moisture or drought of the climate. And it
must be remembered that although this central province of
Madagascar is by several degrees well within the tropics, our climate
for some months of the year is by no means the “tropical” one
supposed in our ordinary English use of that word. On these interior
highlands, from three to five thousand feet above the sea-level, the
south-easterly winds blow from June to August with a keenness and
force which it needs thick clothing to withstand, and makes a wood
fire during the long evenings a very pleasant addition to the comforts
of home life.
The seasons in the central regions of the island are practically only
two: the hot and rainy period, from the beginning of November to the
end of April; and the cool and dry period, during the other months,
from May to October. The Malagasy are, however, accustomed to
speak of four seasons of their year—viz. the Lòhataona—i.e. “head
of the year”—during September and October, when the planting of
the early rice is going on, and a few showers give promise of the
coming rains; the Fàhavàratra—i.e. “thunder-time”—when severe
storms of thunder and lightning are frequent, with heavy downpours
of rain, from the early part of November to the end of February or
into March; the Fàraràno—i.e. “last rains”—from the beginning of
March and through April; and lastly, the Rinìnina—i.e. “time of
bareness”—when the grass becomes dry and withered, from June to
August.
Taking therefore the seasons in order, from the beginning, not of
January, which gives no natural division of the year, but from the
early part of September, when the blossoms of the trees speak of the
“good time coming” of renewed verdure, I shall note down, in their
succession, the varying aspects of the country, in climate,
vegetation, and culture of the soil, as well as the animal life,
throughout the changing year.
Before, however, proceeding to do this, it may give “THE HEART OF
greater distinctness to the mental picture I want to IMÈRINA”
draw for those who have never been in Madagascar, if I try to
describe in a few words the appearance of this central province of
the island, especially of that portion of it which is in the
neighbourhood of the capital. From the usually pure and clear air of
this elevated region, which is not defiled by the smoke of chimneys,
nor often thickened by the mists of the lowlands, one can see for
extraordinary distances, and hills and rocks twenty or thirty miles
away stand out more sharp and distinct than they would usually do in
England at only four or five miles’ distance.
Let us go up to the highest point of the long rocky ridge on and
around which Antanànarìvo is built, from which we can “view the
landscape o’er,” and try and gain a clear notion of this “heart of
Imèrina,” as it is often called by the Malagasy. The city hill reaches
the greatest elevation at a point called Ambòhimitsímbina—i.e. “Hill
of regarding”—which is seven hundred feet above the general level
of the rice-plains around it. From this “coign of vantage” there is of
course a very extensive view in every direction, and we see at once
that the surrounding country is very mountainous. East and south
there is little but hills of all shapes and sizes to be seen, except
along the valleys of the river Ikòpa and its tributaries, which come
from the edge of the upper forest, thirty miles or so away to the east.
To the north the country is more undulating, but at ten or twelve
miles away high hills and moors close in the view, some of the hills
rising into mountains. The country is everywhere in these directions,
except in the river valleys, covered with red soil of various shades of
colour, through which the granite and gneiss foundations protrude at
almost every elevated point in huge boulder-like rocks, and form the
summits of every hill and mountain, often in dome-shaped or boss-
like masses, and in some like titanic castles and towers.

Earthenware Pottery
Making cooking utensils and pitchers (Sìny)
Digging Up Rice-fields
Notice the long-handled and long-bladed native spade, the handle serving as a lever to turn
over the clods

There is little foliage to be seen except on the top of some of the


hills where the ancient towns and villages are built, and in such
places a circle of old àviàvy trees and an occasional amòntana tree
give a pleasant relief to the prevailing red and ochre tints of the soil,
and, in the cold and dry season, to the russet and grey hues of the
dry grass on the bare hills and downs. The largest mass of green is
at the old capital, Ambòhimànga, eleven miles away to the north,
where the steep sides of the hill are still covered with a remnant of
the original forest, which formerly was doubtless much more
extensive in this part of the central province. In the deep fosses
which surround old villages there is also often a considerable
amount of foliage, as well as in the hollows and along the streams.
But it must be confessed that a large extent of Imèrina, in common
with the rest of the interior, consists of bare rounded down-like hills,
very uninteresting in character; although towards sunset, in the
slanting rays, these hills have a softness of outline in their curves
which has a decided element of beauty not to be ignored.
To the west, from north to south, the prospect is THE GRANARY
very extensive. To the south-west there rises by very OF ANTANÀNARÌVO
gradual slopes, at some thirty-five miles’ distance, the
mass of Ankàratra, its three or four highest peaks reaching an
elevation of nearly nine thousand feet above the sea, and about half
that height above the general level of the country. But even at such a
distance the summits usually stand out sharp and clear against the
sky. Due west and north-west is a considerable extent of
comparatively level country, beyond which mountains fifty miles
away are distinctly seen on the horizon. In the foreground, stretching
away many miles, is the great rice-plain of Bétsimitàtatra, from which
numbers of low red hills, most of them with villages, rise like islands
out of a green sea where the rice is growing. Along the plain the river
Ikòpa can be seen, winding its way northwards to join the Bétsibòka;
the united streams, with many tributaries, flowing into the sea
through the Bay of Bèmbatòka. This great plain, “the granary of
Antanànarìvo,” was formerly an immense marsh, and earlier still an
extensive lake with numerous bays among the surrounding hills; but
since the embanking of the river by some of the early kings of
Imèrina, it has become the finest rice-plain of the island and, with its
connected valleys, furnishes the bulk of the food of the people of the
central province.
The embankments require, of course, constant DAMAGE BY
attention during the rainy season, when the river is STORMS
swollen by the heavy rains; and during the time of the native regime,
an unusually wet season would cause them to give way, so that the
rice-fields were flooded. At such times the whole population would
be called out to help in stopping the breaches, and I remember one
occasion, a Sunday, when we had no afternoon service, and with
others of my brother missionaries I spent several hours in carrying
sods and stones, together with our people. Another such calamity
occurred in January 1893; for on the night of Saturday, the 28th, and
the following day, there was an unusually heavy storm, doing
immense damage, destroying hundreds of houses and village
churches, and breaking the river banks, so that in a day or two
hundreds of thousands of acres of the great rice-plain were under
water, three or four feet deep. In some parts it was difficult to trace
the river banks; it was “water, water everywhere,” and scores of low
hills were again turned into islands, cut off from all communication,
except by canoe, with the world around them. If one could have
forgotten the terrible loss to the people of their crops of rice just
ready to be cut, it was a most beautiful scene, and reminded one
that in ancient times this great plain was always a lake, when many
now extinct animals, reptiles and gigantic birds found a home in it
and on its shores. For centuries the heavy rains—probably far
heavier then than now, from the greater extent of forest—went on
filling up the valleys with the rich black and blue loam; gradually the
lake became less and less deep; slowly the river cut out its bed; and
then man came on the scene, and the old native kings aided nature
by embanking the river; the marshes became rice-fields and supplied
with food the present large population which lives all around it.
From this elevated point at least a hundred small towns and
villages can be recognised, many of them marked by the tiled roof,
and often the tower, of the village church, which shines out distinctly
amid the brown thatched roofs of most of the houses. This view from
the summit of the capital is certainly an unrivalled one, in
Madagascar at least, for its variety and extent, as well as for the
human interest of its different parts, as shown by the large
population, the great area of cultivated land, the embanked rivers,
and the streams and water-channels for irrigation seen in every
direction.
Pounding and Winnowing Rice
A palanquin bearer is in the doorway
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like