Présentation du développement Windows 1. Introduction 15 2. Les applications Windows Store 17 3. Le design moderne par Microsoft 20 4. Le Windows Runtime 22 Les bases du développement WinRT 1. Créer une première application 25 1.1 Présentation des outils 25 1.2 Contenu d'un projet Windows Store 26 1.3 Le manifeste 29 1.3.1 Application 29 1.3.2 Ressources visuelles 31 1.3.3 Capacités 33 1.3.4 Déclarations 35 1.3.5 URI de contenu 36 1.3.6 Package 36 1.4 Utiliser les modèles de Visual Studio 37 1.5 Les autres types de projets 40 2. Les nouveaux contrôles XAML 41 2.1 ProgressRing 42 2.2 ToggleButton, ToggleSwitch 42 2.3 DatePicker, TimePicker 43 2.4 AppBar 45 2.4.1 AppBarButton 46 2.4.2 AppBarToggleButton 49 1/13
2.4.3 AppBarSeparator 50 2.5 CommandBar 51 2.6 ListView 53 2.7 GridView 56 2.8 FlipView 58 2.9 SemanticZoom 60 2.10 Hub 65 2.11 Flyout 69 2.12 MenuFlyout 71 2.13 Les autres contrôles 73 3. Déployer une application Windows 8 à des fins de test 73 3.1 Déployer une application localement 74 3.2 Déployer une application sur une machine distante 74 3.3 Utiliser le simulateur 77 Cycle de vie d'une application 1. État d'une application 79 1.1 Présentation 79 1.2 Enjeux 80 1.3 Mise en place d'une gestion d'état 81 2. Lancement et activation de l'application 82 2.1 Principe 82 2.2 Gérer le lancement 83 2.3 Nuance entre lancement et activation 84 3. Naviguer au sein d'une application 86 3.1 Principe 86 3.2 Fonctionnement général 86 3.3 Navigation hiérarchique 90 3.4 Navigation à plat 91 3.5 Implémentation par défaut de la navigation 92 2/13
4. Mise en application 92 4.1 Exemple fourni 92 4.2 Aller plus loin 93 L'asynchronisme 1. Les enjeux de l'asynchronisme 95 2. Les mots clés async/await 97 3. Utiliser la Task Parallel Library (TPL) 98 3.1 Présentation 98 3.2 Instancier l'objet Task 98 3.3 Enchaîner des tâches 99 3.4 Synchroniser des tâches 100 3.5 Utiliser le résultat d'une tâche 101 3.6 Annuler une tâche 101 4. Notions avancées et bonnes pratiques 102 4.1 Gestion d'erreurs 102 4.2 Détails de fonctionnement 105 4.3 Contexte de synchronisation 106 4.4 Éviter les pièges de l'asynchronisme et du parallélisme 108 Stockage des données 1. Introduction 111 2. Le stockage local 113 2.1 Les nouvelles API 113 2.2 Les données de l'application 114 3/13
2.2.1 Cas d'utilisation 114 2.2.2 ApplicationData 114 2.2.3 Schéma d'accès aux ApplicationData 117 2.2.4 Gérer des dossiers 117 2.2.5 Gérer des fichiers 120 2.2.6 Sérialiser des données 126 2.2.7 Gérer des versions de fichiers 130 2.3 Les données de l'utilisateur 131 2.3.1 Cas d'utilisation 131 2.3.2 Utiliser les pickers 132 2.3.3 Accéder aux fichiers sans picker 136 2.4 Les paramètres 139 2.4.1 Pourquoi utiliser les paramètres? 139 2.4.2 Utilisation simple des paramètres 140 2.4.3 Créer des conteneurs 142 2.4.4 Utilisation des paramètres composés 143 2.5 Gestion des librairies 144 3. Roaming des données 148 3.1 Qu'est-ce que le roaming? 148 3.2 Quelles données faut-il synchroniser? 149 3.3 Le roaming des données et settings 151 3.4 Savoir quand a lieu la synchronisation des données 153 4. Utiliser une base SQLite 155 4.1 Présentation 155 4.2 Installation et préparation de SQlite 156 4.3 Utilisation de SQLite 159 4.3.1 Création du modèle de données 159 4.3.2 Initialisation de la base et création des tables 160 4.3.3 Insertion de données 161 4.3.4 Récupération de données 163 4.3.5 Mise à jour de données 164 4.3.6 Suppression de données 164 4.3.7 Suppression de tables 165 4/13
4.4 SQLite Database Browser 165 États visuels d'une application 1. Windowing 167 1.1 Introduction 167 1.2 Utilisation des VisualState 169 1.3 Mode paysage 171 1.3.1 Implémentation 171 1.3.2 Généralités 177 1.4 Mode portrait 178 1.4.1 Implémentation 178 1.4.2 Généralités 184 1.5 Mode minimal 185 1.5.1 Déclaration dans le manifeste 185 1.5.2 Implémentation 186 1.5.3 Généralités 192 2. Mise à l'échelle 192 3. Multitâche et lancement d'applications 195 4. Projection de plusieurs fenêtres 201 4.1 Présentation 201 4.2 Projection sur un second écran 202 4.3 Création de plusieurs fenêtres sur un même écran 206 Vignettes et notifications 1. Faire vivre son application avec les vignettes 209 1.1 Introduction 209 1.2 Personnaliser le contenu de sa vignette 211 5/13
1.3 Du contenu toujours à jour dans sa vignette 213 1.3.1 Gérer les différents formats de vignettes 213 1.3.2 Planification, expiration et annulation 215 1.3.3 Cycle de contenu 216 1.3.4 Contenu distant 217 1.3.5 Gérer les préférences de l'utilisateur 218 1.4 Vignette secondaire, une autre fenêtre sur l'application 218 1.4.1 Principe 218 1.4.2 Déclaration et utilisation 219 1.4.3 Gestion du lancement de l'application 224 1.5 Consignes et recommandations 225 2. Badges et écran de verrouillage 225 2.1 Présentation 225 2.2 Utiliser les badges 226 2.3 Tirer parti de l'écran de notification 228 2.4 Quelques règles et consignes 229 3. Notifications toasts 230 3.1 Présentation 230 3.2 Utilisation 230 3.2.1 Modèles de toast 230 3.2.2 Paramètres supplémentaires 231 3.2.3 Arguments de lancement 233 3.2.4 Planification des notifications 234 3.3 Règles et recommandations 235 4. Windows Azure Mobile Services 236 4.1 Présentation 236 4.2 Connecter une application à Mobile Services 237 4.3 Mobile Services depuis le portail Windows Azure 242 4.3.1 L'onglet Données 243 4.3.2 L onglet Script 243 4.3.3 L'onglet Notifications Push 245 4.4 Utiliser le SDK Mobile Services 246 6/13
Interagir avec l'écosystème : les contrats 1. Introduction 249 2. Recherche 250 2.1 Présentation 250 2.2 Utilisation de la SearchBox 251 2.2.1 Effectuer une recherche simple 253 2.2.2 Proposer des suggestions à l'utilisateur 256 2.2.3 Proposer des résultats à l'utilisateur 258 2.2.4 Gérer l'historique des recherches 261 3. Contrat de partage 263 3.1 Présentation 263 3.2 Mise en place d'une source de partage 264 3.3 Construction du package de données 267 4. Paramètres 272 4.1 Présentation 272 4.2 Créer un panneau de paramètres 274 4.3 Afficher les panneaux de paramètres 277 4.4 Règles à suivre 280 5. Contacts 281 5.1 Présentation 281 5.2 Afficher la fiche d'un contact 282 5.3 Afficher la fiche d'un contact de façon différée 284 6. Évènements et calendrier 286 6.1 Présentation 286 6.2 Ajout d'un évènement 287 6.3 Modification et suppression d'un évènement 289 6.4 Affichage d'évènements 290 7/13
7. Autres contrats 291 7.1 Sélecteur d'ouverture de fichier 291 7.2 Sélecteur d'enregistrement de fichier 292 7.3 Contrat "Lire sur" 292 7.4 Contrat de mise à jour des fichiers en cache 292 Tirer parti du matériel 1. Utiliser la position de l'utilisateur 293 1.1 Géolocalisation 293 1.1.1 Présentation 293 1.1.2 Utilisation 293 1.1.3 Remarques 296 1.2 Parcage géographique 297 1.2.1 Présentation et concept 297 1.2.2 Implémentation du fonctionnement au premier plan 297 1.2.3 Implémentation du fonctionnement en arrière-plan 300 2. Capteurs de mouvements 302 2.1 Capteurs élémentaires 302 2.2 Capteurs d'orientation 304 3. Caméra et micro 304 3.1 Interface système de capture 304 3.2 Outils avancés 305 3.2.1 Captures simples 305 3.2.2 Prévisualisation de la capture 306 3.2.3 Capture basse latence 307 3.2.4 Appliquer des effets 308 3.2.5 Paramètres de capture 308 Interagir avec le système : les extensions 8/13
1. Introduction 311 2. Les tâches d'arrière-plan 312 2.1 Présentation 312 2.2 Créer, enregistrer et utiliser une tâche 313 2.2.1 Créer une tâche d'arrière-plan 313 2.2.2 Enregistrer une tâche d'arrière-plan 315 2.2.3 Déclarer la tâche dans le manifeste 320 2.2.4 Exécuter une tâche et suivre sa progression 322 3. Activation par protocole et fichier 325 3.1 Présentation 325 3.2 Activation par URI 325 3.3 Activation par fichiers 329 4. Autres extensions 332 4.1 Lecture automatique 332 4.2 Sélecteur de contacts 333 4.3 Fournisseur d'avatar de compte 333 4.4 Certificats SSL 333 4.5 Paramètres de la caméra 333 4.6 Paramètres d'impression 334 4.7 Explorateur de jeux 334 Les opportunités métiers 1. Introduction 335 2. Fonctionnalités POS 335 2.1 Présentation 335 2.2 Scanner de code-barres 336 2.3 Lecteur de cartes magnétiques 339 9/13
3. Synthèse vocale 340 4. WiFi Direct, Bluetooth et NFC 341 4.1 WiFi Direct 341 4.2 Bluetooth 342 4.3 Communication par champ proche (NFC) 343 4.4 API PeerFinder 345 5. Support PDF 348 Monétiser une application 1. Introduction 351 2. Mode d'évaluation 352 2.1 Présentation 352 2.2 Récupérer des informations sur le mode d'évaluation 353 2.3 Récupérer les informations de l'application 355 2.4 Passer du mode gratuit au mode payant 357 3. Achats au sein de l'application (in-app purchases) 359 3.1 Présentation 359 3.2 Récupérer des informations sur les in-app purchases 360 3.3 Acheter une fonctionnalité dans l application 361 3.4 Consommer des in-app purchases 362 Architecturer une application 1. Organiser son code avec MVVM 365 1.1 Principe de MVVM 365 1.2 Les différents types de MVVM 366 10/13
1.3 Le système de liaison de données (DataBinding) 367 1.4 Les commandes 371 1.5 Le système de messagerie 377 1.6 Instanciation des ViewModel 377 1.7 "Blendabilité" 378 2. Les différents frameworks MVVM 380 3. Rendre son code portable 380 3.1 Enjeux de la portabilité 380 3.2 Quoi partager? 381 Diagnostiquer et tester une application 1. Déboguer son application 385 1.1 Déboguer dans Visual Studio 385 1.1.1 Points d'arrêts 385 1.1.2 Fenêtres de visualisation et d'espions 388 1.2 Déboguer une application Windows Store 390 1.3 Objet de débogage DebugSettings 393 1.4 Se servir du simulateur 394 2. Analyse de performance 395 2.1 Présentation 395 2.2 Analyse de consommation processeur 395 2.3 Analyse de réactivité XAML 397 2.4 Analyse de consommation énergétique 399 3. Effectuer des tests unitaires 400 3.1 Présentation 400 3.2 Créer un projet de tests 401 3.3 Écrire des tests unitaires 402 3.4 Jouer des tests unitaires 405 11/13
Windows Store 1. Introduction 407 2. Créer un package à déployer 409 3. Tester le package avant le déploiement 416 4. Déployer sur le Windows Store 422 5. Passer la validation du Windows Store 426 Aller plus loin 1. Notions à explorer 431 1.1 Les jeux 431 1.2 Développer en C++ 432 1.3 Développer en HTML5/JavaScript 433 1.4 Développer des composants Windows Runtime 433 2. Frameworks et outils 434 2.1 Extensions Visual Studio 434 2.1.1 Behavior SDK 434 2.1.2 Microsoft Advertising SDK et Pubcenter 434 2.1.3 Bing Maps SDK 435 2.1.4 PayPal SDK 435 2.2 Bibliothèques NuGet 435 2.2.1 Facebook 435 2.2.2 Callisto 435 2.2.3 Microsoft HTTP Client librairies 435 2.2.4 Json.Net 436 2.2.5 MVVM Light 436 12/13
2.2.6 Prism 436 2.2.7 Catel 436 2.2.8 Caliburn 436 2.3 Lots de composants graphiques 436 2.3.1 Composants Telerik 436 2.3.2 Composants DevExpress 437 2.3.3 Composants Infragistics 437 2.4 Outils 437 2.4.1 XAML Spy 437 3. Conclusion 437 Index 439 13/13