C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio...

20
C# 5 et Visual Studio 2013 Sébastien PUTIER Les fondamentaux du langage

Transcript of C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio...

Page 1: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

C# 5 et Visual Studio 2013

ISBN

: 97

8-2-

7460

-926

4-8

29,9

0 €

Ce livre s’adresse aux développeurs souhaitant maitriser le développe-ment d’applications .Net avec le langage C# dans sa version 5.

Après un tour d’horizon de la plateforme .Net et une description des outils fournis par l’environnement Visual Studio 2013, le lecteur décou-vrira progressivement les éléments clés du langage C# et la program-mation orientée objet, jusqu’à pouvoir appliquer ce concept au déve-loppement d’applications Windows avec WPF. Une initiation aux techniques de débogage avec Visual Studio lui permettra de parfaire sa maîtrise de l’outil.

Le développement d’applications client-serveur est ensuite traité par le thème de l’accès aux données avec ADO.Net. Une description com-plète de Linq au travers d’exemples concrets montre comment ses fonctionnalités simplifient la manipulation des données provenant de sources diverses. Un chapitre est ensuite consacré à la manipulation de données au format XML, permettant l’échange de données entre appli-cations d’une manière simple et standardisée. La fin du cycle de déve-loppement est traitée à travers le déploiement d’une application avec les technologies Windows Installer puis ClickOnce.

Afin d’aider le lecteur dans son apprentissage, un aide-mémoire est fourni ; il résume l’utilité des mots-clés C# traités dans le livre.

Les exemples présentés dans ces pages sont disponibles en télécharge-ment sur le site www.editions-eni.fr.

Consultant et Formateur depuis plusieurs années, Sébastien PUTIER apporte son expertise dans la mise en œuvre de solu-tions Windows, Web et mobiles avec la plateforme .Net depuis ses premières versions. Il est certifié techniquement (MCPD – MCSD) et pédagogiquement (MCT) par Microsoft. À travers les pages de ce livre, il transmet toute son expérience sur le lan-gage C# pour que le lecteur ac-quiert les fondamentaux et soit capable de tirer le meilleur parti possible des fonctionnalités of-fertes par la plateforme .NET.

C# 5 et Visual Studio 2013Les fondamentaux du langage

Téléchargementwww.editions-eni.fr.fr

sur www.editions-eni.fr : b Le code source des exemples traités dans le livre.

C# 5

et V

isua

l Stu

dio

2013

Le

s fo

ndam

enta

ux d

u la

ngag

e

Pour plus d’informations :

Sébastien PUTIER

Les fondamentaux du langage

Les chapitres du livreAvant-propos • La plateforme .NET • Visual Studio 2013 • L’organisation d’une application • Les bases du langage • La programmation orientée objet avec C# • Débogage et gestion des erreurs • Développement d’ap-plications Windows • Accès aux données • LINQ • XML • Déploiement • Aide-mémoire

Page 2: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

1Table des matières

Avant-propos

Chapitre 1La plateforme .NET

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2. Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3. Le Common Language Runtime (CLR). . . . . . . . . . . . . . . . . . . . . . . . 21

4. La Base Class Library (BCL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5. Le Dynamic Language Runtime (DLR) . . . . . . . . . . . . . . . . . . . . . . . . 25

6. Une première application avec Visual C# . . . . . . . . . . . . . . . . . . . . . 266.1 Création. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266.2 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286.3 Analyse de l'assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6.3.1 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306.3.2 Exploration avec ILDASM . . . . . . . . . . . . . . . . . . . . . . . . 31

Chapitre 2Visual Studio 2013

1. Installation et premier lancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.1 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.2 Versions de Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.2.1 Visual Studio Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.2.2 Éditions commerciales. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

1.3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.4 Premier lancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Les éléments à télécharger sont disponibles à l'adresse suivante :http://www.editions-eni.fr

Saisissez la référence ENI du livre RI13CSHA dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.

Page 3: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

2Les fondamentaux du langage

C# 5 et Visual Studio 2013

2. Description des outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.1 Barres d'outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.2 Explorateur de solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.3 Explorateur d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.4 Explorateur de serveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.5 Fenêtre de propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.6 Fenêtre d'édition de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

2.6.1 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.6.2 Suivi des modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.6.3 Mise en surbrillance des références . . . . . . . . . . . . . . . . . 642.6.4 Refactorisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652.6.5 IntelliSense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672.6.6 Snippets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Chapitre 3L'organisation d'une application

1. Les solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.2 Création d'une solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701.3 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711.4 Actions disponibles sur une solution . . . . . . . . . . . . . . . . . . . . . 72

1.4.1 Ajout et suppression d'un projet . . . . . . . . . . . . . . . . . . . 721.4.2 Création d'un dossier de solution . . . . . . . . . . . . . . . . . . . 741.4.3 Chargement et déchargement d'un projet . . . . . . . . . . . . 741.4.4 Création d'un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751.4.5 Génération de la solution . . . . . . . . . . . . . . . . . . . . . . . . . 75

1.5 Configuration de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761.5.1 Configuration des projets de démarrage . . . . . . . . . . . . . 761.5.2 Dépendances du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . 781.5.3 Paramètres d'analyse du code . . . . . . . . . . . . . . . . . . . . . . 791.5.4 Fichiers sources pour le débogage . . . . . . . . . . . . . . . . . . . 801.5.5 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Page 4: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

3Table des matières

2. Les projets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.1 Création d'un projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.2 Propriétés d'un projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

2.2.1 Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912.2.2 Générer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.2.3 Événements de build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972.2.4 Déboguer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992.2.5 Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002.2.6 Paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Chapitre 4Les bases du langage

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

2. Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032.1 Nommage des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042.2 Type des variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

2.2.1 Types valeurs et types références . . . . . . . . . . . . . . . . . . 1052.2.2 Les types intégrés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

2.3 Déclaration des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102.4 Portée des variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102.5 Modificateurs d'accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112.6 Le mot-clé var et l'inférence de type . . . . . . . . . . . . . . . . . . . . . 112

3. Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

4. Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.1 Les opérateurs arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144.2 Les opérateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . 1144.3 Les opérateurs logiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

4.3.1 Négation : ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.3.2 ET logique : & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.3.3 OU logique : | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.3.4 OU exclusif : ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Page 5: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

4Les fondamentaux du langage

C# 5 et Visual Studio 2013

4.3.5 ET conditionnel : && . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.3.6 OU conditionnel : ||. . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.4 Les opérateurs binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.4.1 ET binaire : &. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.4.2 OU binaire : | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.4.3 OU exclusif : ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.4.4 Négation : ~ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.4.5 Décalage vers la droite : >> . . . . . . . . . . . . . . . . . . . . . . 1184.4.6 Décalage vers la gauche : << . . . . . . . . . . . . . . . . . . . . . 119

5. Les structures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195.1 Les structures conditionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . 119

5.1.1 if ... else. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195.1.2 switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

5.2 Les structures d'itération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.2.1 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.2.2 while. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235.2.3 do ... while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245.2.4 foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245.2.5 Contrôler l'exécution d'une boucle. . . . . . . . . . . . . . . . . 125

5.3 Autres structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265.3.1 using . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265.3.2 goto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

6. Les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276.1 Écriture d'une fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1286.2 Paramètres de fonction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296.3 Procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1346.4 Surcharges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

7. Les attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

Page 6: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

5Table des matières

Chapitre 5La programmation orientée objet avec C#

1. Les principes de la programmation orientée objet . . . . . . . . . . . . . . 139

2. Les classes et les structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

2.1.1 Déclaration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432.1.2 Constructeur et destructeur . . . . . . . . . . . . . . . . . . . . . . 1452.1.3 Les classes partielles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

2.2 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1502.3 Création de méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

2.3.1 Création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1512.3.2 Méthodes partielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1522.3.3 Méthodes d'extension . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542.3.4 Méthodes opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

2.4 Création de propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572.4.1 Lecture et écriture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572.4.2 Lecture seule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.4.3 Écriture seule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.4.4 Propriétés automatiques . . . . . . . . . . . . . . . . . . . . . . . . . 1592.4.5 Propriétés indexées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.5 Membres statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1602.6 Utilisation des classes et structures. . . . . . . . . . . . . . . . . . . . . . 161

2.6.1 Instanciation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1612.6.2 Initialisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622.6.3 Les types anonymes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

3. Les espaces de noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

4. L'héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1684.1 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1684.2 Les mots-clés this et base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694.3 Redéfinition et masquage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

4.3.1 Redéfinition de méthode. . . . . . . . . . . . . . . . . . . . . . . . . 1714.3.2 Masquage de méthode. . . . . . . . . . . . . . . . . . . . . . . . . . . 172

Page 7: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

6Les fondamentaux du langage

C# 5 et Visual Studio 2013

4.3.3 Différences entre redéfinition et masquage . . . . . . . . . . 1724.4 Imposer ou interdire l'héritage . . . . . . . . . . . . . . . . . . . . . . . . . 1754.5 Le transtypage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

5. Les interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1795.1 Création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1795.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

5.2.1 Implémentation implicite . . . . . . . . . . . . . . . . . . . . . . . . 1815.2.2 Implémentation explicite . . . . . . . . . . . . . . . . . . . . . . . . 183

6. Les énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

7. Les délégués. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1857.1 Création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1857.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1857.3 Expressions lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

8. Les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1878.1 Déclaration et déclenchement . . . . . . . . . . . . . . . . . . . . . . . . . . 1878.2 Gestion des événements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

9. Les génériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1919.1 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

9.1.1 Définition d'une classe générique . . . . . . . . . . . . . . . . . . 1929.1.2 Utilisation d'une classe générique . . . . . . . . . . . . . . . . . 193

9.2 Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.2.1 Définition d'une interface générique . . . . . . . . . . . . . . . 1939.2.2 Utilisation d'une interface générique . . . . . . . . . . . . . . . 194

9.3 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1969.4 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

9.4.1 Définition d'une méthode générique . . . . . . . . . . . . . . . 1999.4.2 Utilisation d'une méthode générique . . . . . . . . . . . . . . . 200

9.5 Événements et délégués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

10. Les collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20210.1 Types existants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

10.1.1 Array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20310.1.2 ArrayList et List<T> . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

Page 8: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

7Table des matières

10.1.3 Hashtable et Dictionary<TKey, TValue> . . . . . . . . . . 20810.1.4 Stack et Stack<T> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21010.1.5 Queue et Queue<T> . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

10.2 Choisir un type de collection . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

11. La programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

12. La programmation asynchrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21512.1 Les objets Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21512.2 Écrire du code asynchrone avec async et await . . . . . . . . . . . . 218

Chapitre 6Débogage et gestion des erreurs

1. Les différents types d'erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.1 Erreurs de compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191.2 Erreurs d'exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

2. Utilisation des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2222.1 Création et déclenchement d'exceptions . . . . . . . . . . . . . . . . . 222

2.1.1 La classe Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2222.1.2 Le mot-clé throw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2232.1.3 Exceptions spécialisées . . . . . . . . . . . . . . . . . . . . . . . . . . 223

2.2 Gérer les exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2242.2.1 La structure try ... catch . . . . . . . . . . . . . . . . . . . . . . . . . 2242.2.2 Le bloc finally. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

3. Les outils fournis par Visual Studio. . . . . . . . . . . . . . . . . . . . . . . . . . 2283.1 Contrôle de l'exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

3.1.1 Démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2283.1.2 Arrêt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293.1.3 Pause. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293.1.4 Reprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

3.2 Points d'arrêt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

Page 9: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

8Les fondamentaux du langage

C# 5 et Visual Studio 2013

3.3 Visualiser le contenu des variables . . . . . . . . . . . . . . . . . . . . . . 2363.3.1 DataTips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373.3.2 Fenêtres Espion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2383.3.3 Fenêtre Espion express . . . . . . . . . . . . . . . . . . . . . . . . . . 2383.3.4 Fenêtre Variables locales . . . . . . . . . . . . . . . . . . . . . . . . . 240

3.4 Compilation conditionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

Chapitre 7Développement d'applications Windows

1. Présentation de WPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2431.1 Structure d'une application WPF. . . . . . . . . . . . . . . . . . . . . . . . 2441.2 XAML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

1.2.1 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2461.2.2 Espaces de noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

1.3 Contexte de données et Binding . . . . . . . . . . . . . . . . . . . . . . . . 248

2. Utilisation des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522.1 Ajout de contrôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2532.2 Positionnement et dimensionnement des contrôles . . . . . . . . 2562.3 Ajout d'un gestionnaire d'événements à un contrôle . . . . . . . . 259

3. Les principaux contrôles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613.1 Contrôles de fenêtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

3.1.1 Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2623.1.2 NavigationWindow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

3.2 Contrôles de disposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2663.2.1 Grid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2663.2.2 StackPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2703.2.3 DockPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2703.2.4 WrapPanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2723.2.5 Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Page 10: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

9Table des matières

3.3 Contrôles d'affichage de données . . . . . . . . . . . . . . . . . . . . . . . 2743.3.1 TextBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2753.3.2 Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2763.3.3 Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.3.4 ScrollViewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2783.3.5 ItemsControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.3.6 StatusBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2823.3.7 ToolTip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

3.4 Contrôles d'édition de texte. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2833.4.1 TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2833.4.2 RichTextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2843.4.3 PasswordBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

3.5 Contrôles de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2873.5.1 RadioButton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2873.5.2 CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2883.5.3 ComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2883.5.4 ListBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2893.5.5 ListView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2903.5.6 TreeView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2933.5.7 Slider. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2983.5.8 Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2983.5.9 DatePicker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

3.6 Contrôles d'action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2993.6.1 Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3003.6.2 Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3003.6.3 ContextMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3033.6.4 ToolBar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

4. Interactions clavier et souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3054.1 Événements clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3054.2 Événements souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3074.3 Glisser-déposer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

Page 11: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

10Les fondamentaux du langage

C# 5 et Visual Studio 2013

5. Aller plus loin avec WPF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3125.1 Introduction à l'utilisation de Blend . . . . . . . . . . . . . . . . . . . . . 312

5.1.1 L'interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3135.1.2 Ajout et modification de contrôles visuels . . . . . . . . . . 321

5.2 Introduction à MVVM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3235.2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3245.2.2 Les interfaces INotifyPropertyChanged

et INotifyCollectionChanged . . . . . . . . . . . . . . . . . . . . . 3245.2.3 Commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3255.2.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

Chapitre 8Accès aux données

1. Principes d'une base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3411.1 Terminologie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3411.2 Le langage SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

1.2.1 Recherche d'enregistrements . . . . . . . . . . . . . . . . . . . . . 3431.2.2 Ajout d'enregistrements . . . . . . . . . . . . . . . . . . . . . . . . . 3451.2.3 Mise à jour d'informations . . . . . . . . . . . . . . . . . . . . . . . 3451.2.4 Suppression d'informations . . . . . . . . . . . . . . . . . . . . . . 346

2. ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3462.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3462.2 Les fournisseurs de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

2.2.1 SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3482.2.2 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3482.2.3 OLE DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3492.2.4 ODBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

3. Utiliser ADO.NET en mode connecté. . . . . . . . . . . . . . . . . . . . . . . . 3503.1 Connexion à une base de données. . . . . . . . . . . . . . . . . . . . . . . 350

3.1.1 Chaînes de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . 3503.1.2 Pools de connexions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3533.1.3 Gestion de la connexion . . . . . . . . . . . . . . . . . . . . . . . . . 355

Page 12: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

11Table des matières

3.2 Création et exécution de commandes . . . . . . . . . . . . . . . . . . . . 3573.2.1 Définition et création d'une commande . . . . . . . . . . . . 3573.2.2 Sélection de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3583.2.3 Actions sur les données . . . . . . . . . . . . . . . . . . . . . . . . . . 3593.2.4 Paramétrage d'une commande . . . . . . . . . . . . . . . . . . . . 3603.2.5 Exécution de procédures stockées. . . . . . . . . . . . . . . . . . 363

4. Utiliser ADO.NET en mode déconnecté. . . . . . . . . . . . . . . . . . . . . . 3644.1 DataSet et DataTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

4.1.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3654.1.2 Remplissage d'un DataSet à partir d'une base

de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3664.1.3 Remplissage d'un DataSet sans base de données. . . . . . 369

4.2 Manipulation des données hors connexion . . . . . . . . . . . . . . . 3724.2.1 Lecture des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3724.2.2 Création de contraintes. . . . . . . . . . . . . . . . . . . . . . . . . . 3734.2.3 Relations entre DataTables. . . . . . . . . . . . . . . . . . . . . . . 3764.2.4 État et versions d'une DataRow . . . . . . . . . . . . . . . . . . . 3784.2.5 Modification de données. . . . . . . . . . . . . . . . . . . . . . . . . 3804.2.6 Suppression de données . . . . . . . . . . . . . . . . . . . . . . . . . 3814.2.7 Valider ou annuler des modifications. . . . . . . . . . . . . . . 3824.2.8 Filtrage et tri à l'aide d'une DataView . . . . . . . . . . . . . . 3834.2.9 Recherche de données . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

4.3 Valider les modifications au niveau de la base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3874.3.1 Générer des commandes de mise à jour

automatiquement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3894.3.2 Commandes de mise à jour personnalisées . . . . . . . . . . 3914.3.3 Gestion des accès concurrentiels . . . . . . . . . . . . . . . . . . 391

5. Utiliser les transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394

Page 13: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

12Les fondamentaux du langage

C# 5 et Visual Studio 2013

Chapitre 9LINQ

1. Présentation de LINQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

2. Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3982.1 Une première requête LINQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 4012.2 Les opérateurs de requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

2.2.1 Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4042.2.2 Filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4062.2.3 Triage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4082.2.4 Partitionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4092.2.5 Jointure et regroupement . . . . . . . . . . . . . . . . . . . . . . . . 4102.2.6 Agrégation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

3. LINQ to SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4153.1 Le mappage objet-relationnel. . . . . . . . . . . . . . . . . . . . . . . . . . . 415

3.1.1 Utilisation de SQLMetal . . . . . . . . . . . . . . . . . . . . . . . . . 4163.1.2 Utilisation du concepteur objet/relationnel . . . . . . . . . 422

3.2 Utilisation de LINQ to SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4313.2.1 Récupération de données . . . . . . . . . . . . . . . . . . . . . . . . 4313.2.2 Mise à jour de données . . . . . . . . . . . . . . . . . . . . . . . . . . 4333.2.3 Gestion des conflits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

Chapitre 10XML

1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

2. Structure d'un fichier XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4402.1 Constituants d'un document XML . . . . . . . . . . . . . . . . . . . . . . 4402.2 Document bien formé et document valide . . . . . . . . . . . . . . . . 444

3. Manipuler un document XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4453.1 Utilisation de DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4463.2 Utilisation de XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4513.3 Utilisation de LINQ to XML . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

Page 14: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

13Table des matières

Chapitre 11Déploiement

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

2. Windows Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4602.1 Installation de InstallShield Limited Edition . . . . . . . . . . . . . . 4612.2 Création d'un projet d'installation . . . . . . . . . . . . . . . . . . . . . . 463

2.2.1 Informations sur l'application . . . . . . . . . . . . . . . . . . . . 4642.2.2 Prérequis d'installation . . . . . . . . . . . . . . . . . . . . . . . . . . 4652.2.3 Fichiers de l'application . . . . . . . . . . . . . . . . . . . . . . . . . . 4662.2.4 Raccourcis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4692.2.5 Valeurs de la base de registre . . . . . . . . . . . . . . . . . . . . . 4702.2.6 Boîtes de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471

3. ClickOnce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4723.1 La technologie ClickOnce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472

3.1.1 Principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . 4733.1.2 Méthodes de déploiement disponibles . . . . . . . . . . . . . . 4743.1.3 Les mises à jour d'applications avec ClickOnce. . . . . . . 475

3.2 La publication ClickOnce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477

Chapitre 12Aide-mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

Page 15: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

59

Chapitre 3

Les concepts fondamentaux

Les concepts fondamentaux

1. Les systèmes de numération

1.1 Le système binaire

Le système binaire est essentiel car c'est l'unique représentation que lessystèmes informatiques sont en mesure d'interpréter.

Ainsi, qu'il s'agisse de caractères alphanumériques ou de représentations gra-phiques, un système informatique ne peut les traiter qu'à la condition qu'ilslui soient soumis sous forme binaire.

Cette limitation des systèmes informatiques est due au fait qu'il ne s'agit,après tout, que de systèmes électroniques qui ne connaissent que les deuxétats fondamentaux : 0 et 1.

Dans le cadre des réseaux informatiques, le système binaire fait partie desconcepts fondamentaux à maîtriser car il sert de base à un certain nombre defonctions importantes comme l'adressage.

Le système binaire est une méthode de numération qui semble très simplepuisqu'elle ne dispose que de deux valeurs : 0 et 1.

Page 16: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

© E

dit

ions

EN

I -

All r

ights

rese

rved

60Connaissances approfondies sur les réseaux

Les réseaux avec Cisco

Il est également appelé système en base 2 (puisqu'il ne contient que deux pos-sibilités de valeurs). On dénomme "bit" un chiffre binaire, un bit ne peut doncavoir que deux valeurs : 0 ou 1.

Si ce système ne comporte que deux valeurs, comment est-il possible de repré-senter des valeurs décimales voire des caractères alphanumériques ? Réponse :la combinaison de plusieurs bits permet d'exprimer des valeurs plus com-plexes.

Il est important de comprendre également la notion d'octet (byte en anglais).Un octet est le regroupement de 8 bits dans le but de coder une information.Chacun de ces 8 bits pouvant se caractériser en deux états différents (0 ou 1),il est alors possible de coder 28 combinaisons différentes soit 256 valeurs.

Mathématiquement plusieurs méthodes sont valables pour coder un chiffreen binaire.

Une première méthode est de diviser le nombre à convertir par le nombre devaleurs possibles d'un caractère binaire (un bit), soit 2.

– Si le résultat de la division est un nombre à virgule, on note 1.

– Si le résultat de la division est un nombre juste, on note 0.

– La notation reprend ainsi les résultats obtenus de droite à gauche.

Exemple : Conversion d'une valeur décimale en binaire, première méthode

Soit le nombre 97 à convertir :

97/2 = 48,5. On note alors 1 car la division n'est pas juste.

48/2 = 24. On note alors 0 car la division est juste.

24/2 = 12. On note également 0 car la division est juste.

12/2 = 6. On note 0 car la division est juste.

6/2 = 3. On note 0.

3/2 = 1,5. On note 1.

Page 17: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

61Les concepts fondamentauxChapitre 3

1/2 = 0,5. On note 1.

On reprend les résultats obtenus de droite à gauche, du dernier au premier :1100001.

Le nombre 97 se code en binaire en utilisant seulement 7 bits.

La seconde méthode semble plus rapide pour les calculs qui concernent lesadressages réseau.

Il s'agit de considérer la valeur décimale de chacun des bits composant unoctet. Un octet est équivalent à 8 bits :

À partir de ce tableau, il est possible de coder 97 en binaire.

Exemple : Conversion d'une valeur décimale en binaire, seconde méthode

Soit le nombre 97 à convertir :

97 est inférieur à 128, on note 0.

97 est supérieur à 64, on note 1 et on effectue la soustraction 97-64, il reste33.

33 est supérieur à 32, on note 1 et on effectue la soustraction 33-32, il reste 1.

16 est supérieur à 1, on note 0.

8 est supérieur à 1, on note 0.

4 est supérieur à 1, on note 0.

2 est supérieur à 1, on note 0.

1 est égal à 1, on note 1 et il ne reste rien.

La notation donne 01100001, le zéro initial peut être omis.

Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1

128 64 32 16 8 4 2 1

Page 18: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

© E

dit

ions

EN

I -

All r

ights

rese

rved

62Connaissances approfondies sur les réseaux

Les réseaux avec Cisco

Cette dernière méthode est également utilisable pour réaliser l'opérationinverse, c'est-à-dire convertir une valeur binaire en son équivalent décimal.Puisque les valeurs décimales de chacun des bits sont connues, il est possiblede les additionner pour trouver l'équivalence décimale.

Ainsi si vous reprenez l'exemple précédent avec l'octet 0110 0001, vous pouvezcalculer avec le tableau de valeur décimale des bits que l'octet vaut 0 + 64 +32 + 0 + 0 + 0 + 0 + 1, soit 97.

Si le chiffre ne peut pas être codé en binaire sur 8 bits, il est alors nécessaired'ajouter autant de bits que nécessaire. Rappelez-vous que le nombre maxi-mum de combinaisons avec 8 bits est de 256 (256 est le résultat de 28). Rienne vous interdit d'en utiliser 9 ou plus selon le besoin. Pour 9 bits le nombremaximum de combinaisons est de 512 (512 est le résultat de 29).

Dans ce cas la valeur décimale des bits ajoutés est supérieure à celle des bitsprécédents :

1.2 Le système hexadécimal

Le système hexadécimal est aussi dénommé système en base 16 car il contient16 caractères permettant de coder l'information.

La correspondance hexadécimale-numérique est très simple et elle impliquel'utilisation de lettres :

Bits 10 Bits 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1

512 256 128 64 32 16 8 4 2 1

Numérique Hexadécimal

1 1

2 2

… …

10 A

11 B

Page 19: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

63Les concepts fondamentauxChapitre 3

C'est sur cette base que les informations sont codées. Ainsi le chiffre décimal12 est noté de manière hexadécimale 0x0C.

Comme il y a 16 valeurs hexadécimales dans une valeur hexadécimale etqu'elles sont représentées par deux, cela signifie qu'on peut y coder 16*16possibilités soit 256 valeurs.

On peut donc en déduire que chaque caractère hexadécimal vaut 4 bits et quedeux caractères hexadécimaux valent 1 octet.

La conversion hexadécimale vers binaire est assez simple puisque chaque ca-ractère hexadécimal vaut 4 bits. Reprenons l'exemple précédent avec 0x0C.

Les deux caractères hexadécimaux sont respectivement 0 et C. Le premier ca-ractère vaut 0 en décimal et le second caractère représente 12 en décimal.

On pourra ainsi écrire 0x0C en binaire sous la forme 0000 1100.

Mathématiquement il est possible de formuler l'opération en élevant 16 à lapuissance de la valeur binaire du caractère hexadécimal.

Prenons par exemple la valeur hexadécimale FE qui vaut en binaire 1111 1110soit 254.

L'opération est la suivante :

(15 x 161) + (14 x 160) soit 240 + 14 = 254

Prenons un nombre hexadécimal plus complexe, par exemple FE 34 89.

L'opération est la suivante :

(15 x 165) + (14 x 164) + (3 x 163) + (4 x 162) + (8 x 161) + (9 x 160)

15728640 + 917504 + 12288 + 1024 + 128 + 9 = 16659593

12 C

13 D

14 E

15 F

Numérique Hexadécimal

Page 20: C# 5 Visual Studio 2013 C# 5 C# 5 et Visual Studio 2013multimedia.fnac.com/multimedia/editorial/pdf/9782746092648.pdf · C# 5 et Visual Studio 2013 29,90 € ISBN : 978-2-7460-9264-8

© E

dit

ions

EN

I -

All r

ights

rese

rved

64Connaissances approfondies sur les réseaux

Les réseaux avec Cisco

Ou encore en binaire en partant du fait que chaque caractère vaut 4 bits :

1111 1110 0011 0100 1000 1001

Comme on peut le constater, l'avantage principal de la notation hexadécimaleest qu'elle permet d'écrire des valeurs importantes de manière réduite.

Cette notation devient de plus en plus importante de nos jours dans le mondedu réseau à cause d'IPv6 dont la représentation de l'adressage s'effectue enhexadécimal.

1.3 Le système décimal

L’origine de ce système est évidemment liée au fait que nous possédons dixdoigts.

Le nombre 10, caractéristique de la base décimale, intervient par ses diffé-rentes puissances appelées « poids ». Au niveau de l’écriture, seuls apparaissentles coefficients (ici 1, 4, 2, 7 et 3). La multiplication des coefficients par l’indicede base est implicite. Les coefficients peuvent prendre toutes les valeurs infé-rieures à 10, c’est-à-dire inférieures à la base, soit 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9 (dixsymboles).

La numération décimale est une numération de position car chaque rang(chiffre) est pondéré selon sa position, par opposition au code additionnel queles Romains utilisaient (exemple : VII correspondait à 5 + 1 + 1).

2. La volumétrie

La notion de volumétrie a pour objectif de fournir un ordre de grandeur pourmesurer des quantités.

En informatique les quantités dont il est question sont des quantités dedonnées. Qu'il s'agisse de données stockées (disque dur, CD-Rom) ou dedonnées à transmettre sur un réseau, il faut être en mesure d'en connaître levolume, la quantité.