ABI (Application Binary Interface), 25
accelerometer, 149
accessing and saving data, 183–189
lambda expressions, 194
actual target, 133
animations, discrete, 83
application files, 172
application lifecycle, 157–160
connected, applications suspended/terminated remaining, 176–177
termination, 166
application manifest, 43
Application UI section, 43
Capabilities section, 44
Declaration section, 44
Packaging section, 45
application settings, 172, 181–183
Application UI section of application manifest, 43
architecture and design improved with testing, 305
assumptions eliminated with testing, 302
asymmetric key, 213
Atom, 206
audience, accessibility to global, 330
Base64, 212
BASIC (Beginner’s All-Purpose Symbolic Instruction Code), 5
basic tiles, 221
BCL (Base Class Library), 7
blank application template (Visual Studio 2012), 38
brokered API calls, 14
buffers, 208
bugs fixed at source with testing, 303
built-in controls (XAML), 107–109
built-in icons, 138
Callisto, 280
Canvas layout control, 88
Capabilities section of application manifest, 44
charms, 16, 256. See also contracts
Search charm, 258
Start charm, 256
class library template (Visual Studio 2012), 40
CLI (Common Language Infrastructure), 13
CLR (Common Language Runtime), 6
code for your first Windows 8 application, 45–53
LINQ, 200
filters, 202
grouping, 202
join and projections, 203
queries, 201
sorting, 202
COM (Common Object Model), 5
compass, 149
connected and alive, 19
connected, applications suspended/terminated remaining, 176–177
ContentControl layout control, 97–98
contracts, 16, 253–254. See also charms
Share contract, 267
receiving content, 274, 277–279
sourcing content for sharing, 267–273
control, keeping end user in, 330
controls, application bar, 136–142
creating your first Windows 8 application, 37
application manifest, 43
Application UI section, 43
Capabilities section, 44
Declaration section, 44
Packaging section, 45
templates, 37
blank application, 38
class library, 40
split application, 40
unit test library, 41
Windows Runtime Component, 41
user interface (UI), creating, 42–43
customization
splash screens, 143–144, 177–178
data
lambda expressions, 194
buffers, 208
asymmetric key, 213
Base64, 212
local data, 173
roaming data, 173
storing and retrieving, 173–176
debugging, 164
fixing bugs at source, 303
remote debugging, 164
Declaration section of application manifest, 44
deferred execution, 201
design guidelines, 19
architecture and design improved with testing, 305
connected and alive, 19
contracts, 16
fast and fluid, 15
snap and scale, 15
developers improved by testing, 306
direct calls to underlying kernels, 14
DirectX, 13
discovering applications, 318–321
documenting code with help from testing, 303
advantages of, 290
misconceptions about, 289
pattern vocabulary, 292
view model, 295
encoding, 209
asymmetric key, 213
Base64, 212
symmetric key, 211
end user, providing value to, 329
Engelbart, Douglas, 9
English, Bill, 9
Essential LINQ, 103
extending and maintaining applications with testing, 304
fast and fluid, 15
feeds, 206
Filters, LINQ, 202
flat navigation, 168
FlipView layout control, 106
Gates, Bill, 2
GDI (Graphics Device Interface), 7
generics, 185
geolocation, 150
gestures
keyboard equivalents, 49
mouse equivalents, 49
given...when...then pattern, 310
global audience, accessibility to, 330
Gossman, John, 287
green stack, 27
grid application template (Visual Studio 2012), 39–40
GridView layout control, 102–105
Grouping, LINQ, 202
gyrometer, 151
Harris, Jensen, 14
hierarchical navigation, 168
HLSL (High Level Shading Language, 24
HttpClient, 203
icons
built-in icons, 138
IDE (Interactive Development Environment), 5
identify and understand, making application easy to, 331
inclinometer, 151
installation
virtual machine install, 31, 35
IoC (Inversion of Control), 298–300
iPhones, 9
ItemsControl layout control, 99
joins and projections, LINQ, 203
JSON (JavaScript Object Notation), 187–188, 271
keyboards
gestures, keyboard equivalents for, 49
history of, 8
support, 129
lambda expressions, 194
Canvas layout control, 88
ContentControl layout control, 97–98
FlipView layout control, 106
GridView layout control, 102–105
ItemsControl layout control, 99
ListBox layout control, 106
ListView layout control, 105
ScrollViewer layout control, 99
simulator used to test changes in, 112–115
StackPanel layout control, 92
virtualizing stack panel, 93–94
VariableSizedWrapGrid layout control, 96
ViewBox layout control, 100–102
WrapGrid layout control, 94
light sensor, 152
Likness, Jeremy, 340
LINQ (Language Integrated Query), 103, 200
deferred execution, 201
filters, 202
grouping, 202
joins and projections, 203
queries, 201
sorting, 202
syntax, 174
ListBox layout control, 106
ListView layout control, 105
local data, 173
logo. See live tiles.
lossless compression, 208
lossy compression, 208
MAC (Message Authentication Code), 213
maintaining and extending applications with testing, 304
ILDASM tool used to inspect metadata for components, 57–59
mouse
gestures, mouse equivalents for, 49
history of, 9
MSIL (Microsoft Intermediate Language), 6
MVVM (Model-View-View-Model), 285–288
advantages of, 290
misconceptions about, 289
pattern vocabulary, 292
view model, 295
namespaces, 63
flat, 168
hierarchical, 168
Newton-King, James, 271
Next Generation Windows Services (NGWS), 5
notifications. See toast notifications.
NUI (Natural User Interface), 9–11
packaging section of application manifest, 45
pattern vocabulary, 292
PCL (Portable Class Library), 296–300
PLM (Process Lifetime Management), 160
connected, applications suspended/terminated remaining, 176–177
termination, 166
PNG (Portable Network Graphics) format, 50
pointer events, 125
predictable behavior, 330
preparing your application for Windows Store, 329
control, keeping end user in, 330
global audience, accessibility to, 330
identify and understand, making application easy to, 331
predictable behavior, 330
value to end user, providing, 329
Prosise, Jeff, 184
queries, LINQ, 201
receiving content, 274, 277–279
refactoring isolation, 286
regular expressions, 205
remote debugging, 164
resource dictionaries, 86
REST (Representational State Transfer), 214
resuming applications, 166–168
Richter, Jeffrey, 184
roaming data, 173
Robbins, John, 184
root visual, 88
routed events, 64
RSS (Real Simple Syndication), 206
saving and accessing data, 183–189
lambda expressions, 194
ScrollViewer layout control, 99
Search charm, 258
Search contract, 257, 260–262, 265–266
Search charm, 258
Search contract, 257, 260–262, 265–266
Segoe UI Symbol font, 138
sensors, 148
accelerometer, 149
compass, 149
geolocation, 150
gyrometer, 151
inclinometer, 152
light sensor, 152
setting up your development environment, 30
full install, 32
virtual machine install, 35
receiving content, 274, 277–279
sourcing content for sharing, 267–273
Sholes, Christopher, 8
Silverlight, 26
simulator, 326
layouts and views, testing changes in, 112–115
snap and scale, 15
SOAP (Simple Object Access Protocol), 214–215
software testing. See testing
sorting, LINQ, 202
sourcing content for sharing, 267–273
split application template (Visual Studio 2012), 40
StackPanel layout control, 92
virtualizing stack panel, 93–94
Start charm, 256
Start screen, 257
static resource, 79
submission process for Windows Store, 331, 336
symmetric key, 211
templates, 37
blank application, 38
class library, 40
split application, 40
unit test library, 41
Windows Runtime Component, 41
termination, 166
testing, 301
architecture and design improved with, 305
assumptions, eliminating, 302
developers improved by, 306
documenting code, 303
extending and maintaining applications, 304
fixing bugs at source, 303
Windows Store unit testing framework, 308–311
white box tests, 306
basic, 221
tools, 20
Blend, 21
Visual Studio 2012, 20
touch-first, 125
UI (User Interface)
routed events, 64
UI (user interface) design patterns, 286
advantages of, 290
misconceptions about, 289
pattern vocabulary, 292
view model, 295
understand and identify, making application easy to, 331
unit test library template (Visual Studio 2012), 41
Windows Store unit testing framework, 308–311
pointer events, 125
value to end user, providing, 329
VariableSizedWrapGrid layout control, 96
VB (Visual Basic) programming language, 5
ViewBox layout control, 100–102
view model (MVVM), 295
Canvas layout control, 88
ContentControl layout control, 97–98
FlipView layout control, 106
GridView layout control, 102–105
ItemsControl layout control, 99
ListBox layout control, 106
ListView layout control, 105
ScrollViewer layout control, 99
simulator used to test changes in, 112–115
StackPanel layout control, 92
virtualizing stack panel, 93–94
VariableSizedWrapGrid layout control, 96
ViewBox layout control, 100–102
WrapGrid layout control, 94
VirtualBox, 35
virtualizing stack panel, 93–94
virtual machine install, 31, 35
templates, 37
blank application, 38
class library, 40
split application, 40
unit test library, 41
Windows Runtime Component, 41
visual target, 133
VSM (Visual State Manager), 115–119, 287-288
white box tests, 306. See also unit tests
Wii console, 10
Windows 7 operating system, 11
connected and alive, 19
contracts, 16
fast and fluid, 15
snap and scale, 15
tools, 20
Blend, 21
Visual Studio 2012, 20
Windows 8 operating system, 12
full install, 32
virtual machine install, 35
Windows App Certification Kit, 332–334
Windows Registry, 54
Windows Runtime Component template (Visual Studio 2012), 41
discovering applications, 318–321
preparing your application for, 329
control, keeping end user in, 330
global audience, accessibility to, 330
identify and understand, making application easy to, 331
predictable behavior, 330
value to end user, providing, 329
simulator, 326
unit testing framework, 307–311
Windows App Certification Kit, 332–334
Windows Store applications. See Windows 8 applications
WinRT (Windows Runtime), 1, 12–14, 26
brokered API calls, 14
direct calls to underlying kernel, 14
projection, 13
WNS (Windows Notification Service), 242–250
WPF (Windows Presentation Foundation), 7, 27, 61
WrapGrid layout control, 94
WSDL (Web Services Description Language), 215
XAML (Extensible Application Markup Language), 7, 61–62
layout, 88
Canvas layout control, 88
ContentControl layout control, 97–98
FlipView layout control, 106
GridView layout control, 102–105
ItemsControl layout control, 99
ListBox layout control, 106
ListView layout control, 105
ScrollViewer layout control, 99
StackPanel layout control, 92–94
VariableSizedWrapGrid layout control, 96
ViewBox layout control, 100–102
WrapGrid layout control, 94
namespaces, 63
static resource, 79