Développer un code plus sécurisé

Guides de développements sécurisés

OWASP: Software Assurance Maturity Model

IBM: The Building Security In Maturity Model (BSIMM)

Microsoft: Assess Your Security Needs

JavaScript Security Analyzer (JSA) faite partie de IBM Rational AppScan
Standard Edition. Voir aussi IBM Security AppScan Enterprise.

Erreurs communes

  • Null pointer dereference
  • Use after free
  • Double free
  • Dead code caused by logical errors
  • Uninitialized variables
  • Erroneous switch cases
  • Deadlocks
  • Lock Contention
  • Race Conditions
  • Memory leaks
  • File handle leaks
  • Custom memory and network resource leaks
  • Database connection leaks
  • Mismatched array new/delete
  • Missing destructor
  • STL usage errors
  • API error handling
  • API ordering checks
  • Array and buffer overrun
  • Unsafe uses of tainted data

Lire aussi pour les exemples Klocwork_Paper

Microsoft

Windows ISV Software Security Defenses: Windows ISV Software Security Defenses

Download BinScope Binary Analyzer from Official Microsoft Download Center: BinScope Binary Analyzer

Security Briefs: Protecting Your Code with Visual C++ Defenses: Security Briefs Protecting Your Code with Visual C++ Defenses

Hardening Stack-based Buffer Overrun Detection in VC++ 2005 SP1 – Michael Howard’s Web Log: Hardening Stack-based Buffer Overrun Detection in VC++ 2005 SP1

Protecting against Pointer Subterfuge (Kinda!) – Michael Howard’s Web Log: Protecting against Pointer Subterfuge (Kinda!) – Michael Howard’s Web Log

Navigateurs Web

Browser Security Handbook – Google Project Hosting: http://code.google.com/p/browsersec/wiki/Main

006 Convertir les Types de Données C#

Cette nouvelle vidéo explique les types de données de C# dans Visual Studio 2013, qui correspondent à des définitions sous-jacentes du système de type commun (CTS, Common Type System) du Framework .Net. Elle fournit la liste des types de données avec leurs caractéristiques.

Elle traite aussi de la technique de la conversion d’entiers en chaines de caractères et de la conversion de chaines de caractères avec des valeurs numériques en entier.

Dans la vidéo précédente, vous avez définit des variables que vous avez typées.

Visual Studio donne des informations supplémentaires sur le type int. Une structure de type System.int32 représente un entier signé sur 32 bits. Cette information vous donne la correspondance entre le type de données C# int et le type de données .Net. Autrement dit, int représente le type de données System.int32 dans le Framework .Net.

Tous les langages du Framework .Net qui manipulent quelque chose qui ressemble à notre int, utilisent la structure System.int32. D’ailleurs, vous pouvez remplacer int par System.int32. Votre programme va parfaitement fonctionner. Vous pouvez le vérifier en cliquant sur le bouton Démarrer.

Vous remarquerez que vous retrouvez le même System que le System de la première ligne using. Donc, vous n’êtes pas obligé de préfixer par System et écrire simplement int32. En cliquant sur le bouton Démarrer, vous pouvez vérifier que le programme fonctionne toujours. Revenez aux types C#.

Types Entiers

Types EntiersTypes Entiers

Dans ce tableau, vous avez plusieurs types de données C# pour les entiers.

Ces types de données C# correspondent tous à des types de données .NET. Pour chacun de ces types de données, vous avez des plages d’entiers. Il y a de nombreux choix pour les types de données d’entiers.

Dans vos premiers programmes, vous utiliserez certainement les types byte ou int pour les entiers. Ces types de données sont utilisées pour stocker des données entières.

Types Flottants

Types FlottantsTypes Flottants

Vous pouvez stocker des données avec des décimales, ou des nombres très grands, que l’on appelle des flottants.

Vous avez aussi la possibilité de jouer sur la précision, en fonction des besoins de votre programme.

Types Caractères et Logique

Types Caractères et LogiqueTypes Caractères et Logique

Un troisième type de données sont les caractères et logique.

Notamment pour les types de données de type caractères, vous avez le type char et le type string. Le type string a déjà été utilisé pour la variable monMessageBienvenue, qui correspond au type .NET System.String. Bien évidemment, c’est une suite de caractères.

Vous pouvez aussi le vérifier en survolant avec la souris et vous voyez apparaître System.String. Quand vous commencez à taper string, IntelliSense vous affiche deux choix string. Le premier string correspond au type C#. Le second correspond au type .Net.

Types Date et Heure

Il existe un quatrième type de données .NET qui n’a pas d’équivalent C#.

Types Date et HeureTypes Date et Heure

C’est tout ce qui concerne les dates et heures. En particulier vous avez le type de données .Net System.DateTime. Vous pouvez définir une variable intitulée Maintenant. Elle se voit affectée la date et l’heure courante. La ligne dessous affiche le résultat.

Convertir int en string

Dans le programme, enlevez les messages inutiles et gardez uniquement l’affichage du message de bienvenue.

Votre objectif est de convertir une variable de type int dans une variable de type string, c’est-à-dire dans une chaîne de caractères. Pour cela vous créez une chaîne de caractères nommée monMessageComplet.

Cette variable est la concaténation du contenu de la variable monMessageBienvenue plus le contenu de la variable monAge, plus la chaîne  » ans ».

Vous allez aussi modifier le message de bienvenue, en tapant : « Vous avez « . Puis vous remplacez le paramètre de la méthode Console.WriteLine() par la variable monMessageComplet. Dans cette variable, vous avez concaténé une chaîne de caractère avec une variable locale entière et une autre chaîne de caractères fixe.

Visual Studio a supposé que le contenu de la variable monAge devait être converti en une chaîne de caractères. Vous pouvez vérifier qu’il n’y a pas d’erreur en compilant et en démarrant le programme.

Toutefois, il est préférable de demander explicitement la conversion du contenu de la variable monAge en un contenu de type string (chaîne de caractères).

Il existe une méthode qui permet de transformer le contenu d’une variable numérique en un contenu de type string. Si cela paraît étrange d’appliquer une méthode, notamment la méthode ToString(), à une variable. Il faut savoir que la variable est elle-même issue d’un type .NET qui s’appelle System.Int32. Le type System.Int32 possède une méthode qui s’appelle ToString().

Cette méthode permet de convertir explicitement une chaîne numérique en une chaîne de type string. Vous pouvez vérifier que votre programme fonctionne bien en le compilant et en le lançant.

Convertir string en int

Vous pouvez aussi convertir dans l’autre sens.

C’est-à-dire que vous souhaitez récupérer une valeur numérique qui est stockée dans une variable de type string dans une variable de type int.

Mettez en commentaire votre ligne précédente. Pour mettre en commentaire, tapez deux barres obliques (« // ») devant la ligne. Cela indique au compilateur de ne pas tenir compte de la ligne.

Créez la variable de type string, nommée monAgeDouble, qui va contenir la valeur numérique. Ensuite, vous créez une variable de type int, nommée monAgex2 qui est égale à monAgeDouble. Sauf que Visual Studio râle puisqu’effectivement il ne peut pas convertir implicitement le contenu du type string en int.

Pour le faire, il faut utiliser la méthode Parse().

Cette méthode va extraire le contenu de la variable de type string pour le mettre dans la variable de type entier (int). Ensuite il ne reste plus qu’à utiliser la valeur. Par exemple, en affichant « Votre âge est :  » + monAgeNum. Cela va fonctionner mais il est préférable d’appliquer la méthode ToString() pour faire la conversion explicite en chaîne de caractères.

Vous allez aussi vérifier que le contenu de la variable monAgex2 est bien numérique.

Pour cela, vous créez une nouvelle variable de type int, nommée monAgeNum qui est égale à monAgex2 / 2 Mettez en commentaires les lignes inutiles.

Pour résumer, monAgeDouble, qui est de type string, contient une valeur numérique. Le contenu de monAgeDouble est converti dans monAgex2, qui est de type int, et la variable monAgeNum = monAgex2 / 2.

Program.csProgram.cs

Vérifiez que tout fonctionne : ça fonctionne bien.

Téléchargez la vidéo : 006 Convertir les Types de Données C#.

Téléchargez les exemples de code.

Tous les articles sur le développement en C#.

005 Déclarer et Initialiser les Variables en C#

Dans cette vidéo, vous verrez les premières notions de base pour savoir comment déclarer, initialiser, renommer et utiliser des variables dans votre code C# grâce à Visual Studio 2013.

Notamment, vous souhaitez pouvoir changer simplement le message de bienvenue du programme précédent, et rajouter des informations complémentaires.

La première opération à faire est de stocker le message « Bonjour monde ! » dans ce qu’on appelle une variable.

Qu’est-ce que c’est qu’une variable ?

Une variable est une zone dans la mémoire de l’ordinateur qui contient votre message. Pour créer une variable en C#, vous avez une première méthode qui est très simple qui consiste à définir d’abord le type de la variable.

Dans C#, les variables sont typées. C’est-à-dire que vous devez indiquer au compilateur si la variable va contenir une chaîne de caractères, une valeur numérique, une date, etc. Le type de la variable indique s’il s’agit de stocker un nombre, une date, une chaîne de caractères, etc.

Par exemple, pour créer une variable, nommée monAge, qui contient une valeur numérique entière comme l’âge, vous pouvez écrire:

int monAge ; // déclaration

Dans le cas présent, c’est une chaîne de caractères. Vous attribuez donc le type « string ».

Dans la liste de valeurs qui s’affiche, IntelliSense propose les mots qui commencent par « str ». Faites une tabulation pour sélectionner la première valeur (string), puis un espace.

Nommer la variable

Maintenant il faut donner un nom afin d’identifier la variable qui va être manipulée dans le programme.

Donnez un nom significatif qui permet de retrouver l’utilité de cette variable. Par ailleurs, il est préférable que le nom débute par une minuscule. Ce n’est pas une obligation, mais un usage.

Dans le cas présent, nommez votre variable : monMessage, puis fermez l’instruction avec le point-virgule.

Vous venez de définir la variable monMessage. Le compilateur sait donc qu’il doit réserver une zone en mémoire pour stocker une chaîne de caractères. Par contre, il ne sait pas quelle chaîne de caractères vous souhaitez stocker.

Assigner une valeur à une variable

Une fois que vous avez indiqué au compilateur le type de la variable, grâce à des mots clés comme string, int, etc., vous affectez des valeurs avec le signe « = ». Dans C#, le signe « = » n’est pas le signe mathématique d’égalité, c’est un opérateur qui affecte une valeur.

Par exemple, pour indiquer que la variable monAge vaut 25, vous pouvez écrire:

monAge = 25; // initialisation

Sur la ligne dessous, vous tapez le nom de la variable (monMessage) : vous la voyez apparaître dans le petit menu déroulant. Vous la sélectionnez en faisant une tabulation.

Vous tapez le signe égal pour affecter une valeur puis vous saisissez : « Bonjour monde ! ». Vous fermez l’instruction par un point-virgule.

En survolant avec la souris, l’éditeur vous indique qu’il s’agit d’une valeur locale de type string c’est-à-dire de type chaîne de caractères qui contient le message « Bonjour monde ! ».

Maintenant, il suffit de remplacer le message « Bonjour monde ! » dans la méthode WriteLine() par la variable. Une fois de plus, IntelliSense fait son travail en proposant la variable monMessage.

La variable a été définie et une valeur a été assignée.

Maintenant, vérifiez que tout fonctionne. Pour cela, cliquez sur le bouton Démarrer : c’est aussi l’avantage de cet IDE. Vous pouvez vérifier instantanément que tout fonctionne bien. Faites Entrée pour fermer la boîte de dialogue.

C’est un message de bienvenue qui est affiché, mais vous aimeriez aussi avoir un message pour dire au revoir.

Créer une seconde variable

Vous créez une nouvelle variable de type chaînes de caractères. Cette fois-ci, vous la nommez monAuRevoir, puis vous lui assignez la chaîne : « bye bye ».

Vous utilisez cette variable dans Console.WriteLine(monAuRevoir).

Maintenant, vous avez une première variable (monMessage) qui contient le message de bienvenue, puis une deuxième variable intitulée monAuRevoir, qui contient le message pour quitter.

Uniquement pour des raisons de cohérence ça serait mieux de renommer la variable monMessage en monMessageBienvenue.

Renommer une variable

Sélectionnez la variable MonMessage, puis vous tapez le nom de la nouvelle variable : monMessageBienvenue.

Au bout du nom de la nouvelle variable, vous voyez apparaître un petit rectangle rouge. Si vous le survoler avec la souris, une nouvelle petite fenêtre apparaît avec une petite flèche noire.

Cliquez sur la flèche noire : un menu s’affiche. Celui-ci vous propose de renommer automatiquement toutes les occurrences de monMessageBienvenue en monMessageBienvenue. Sélectionnez cette option.

L’ancienne variable est automatiquement renommée dans tout le code.

Cela fonctionne à l’identique, si vous renommez la seconde variable. Pour cela, sélectionnez monAuRevoir puis renommez-en monMessageAuRevoir. Sélectionnez le petit rectangle rouge puis cliquez sur la petite flèche pour renommer monAuRevoir en monMessageAuRevoir.

Vous pouvez aussi créer des variables d’un autre type que chaînes de caractères.

Variable de type numérique

Notamment, vous pouvez créer des variables pour contenir des valeurs numériques.

Typiquement, vous souhaitez stocker un âge. Donc vous allez créer une variable de type numérique. Plus précisément, vous allez créer une variable de type « int ». Int est l’abréviation du mot anglais INTEGER qui signifie Entier, autrement dit un nombre entier : 0,1, 2, etc.

Comme il existe plusieurs types de données numériques, vous indiquez un type précis.

Vous saisissez int puis vous donnez aussi un nom : monAge.

Créer et affecter en une opération

Sachez aussi, que vous pouvez regrouper sur une seule ligne la déclaration et l’initialisation. Par exemple, en écrivant:

int monAge = 25 ; // déclaration et initialisation

Comme pour les deux variables précédentes, vous pourriez créer d’abord la variable puis ensuite lui affecter sa valeur. Vous pouvez aussi faire les deux opérations en une seule.

Dans ce cas, vous définissez la variable avec son type et son nom puis vous lui affectez tout de suite une valeur. Vous n’avez pas besoin de guillemets puisque c’est une valeur numérique. Ensuite, indiquez votre âge, par exemple 35.

Si vous le voulez, vous pouvez reprendre les définitions des variables précédentes et simplifier leur écriture en utilisant la même écriture.

Ainsi, vous auriez sur une seule ligne d’un côté la définition de la variable à gauche du site égal, et à droite l’affectation de la valeur.

Combiner les variables

Vous pouvez aussi utiliser la variable monAge en la combinant à la variable monMessageBienvenue.

Ce qui donne monMessageBienvenue + monAge dans la méthode WriteLine(), avec l’aide éventuelle de IntelliSense.

Ajouter des informations complémentaires

Vous pouvez aussi modifier légèrement le message de bienvenue pour rajouter votre prénom. Puis cliquez sur le bouton Démarrer : le message de bienvenue s’affiche.

Toutefois, l’âge est collé au texte. Vous allez changer ce comportement.

Dans la méthode WriteLine(), vous rajoutez une simple espace blanc pour séparer le contenu de monMessageBienvenue du contenu de monAge.

Vous en profitez pour ajouter qu’il s’agit d’un âge avec un petit texte supplémentaire.

Vous avez pu le faire avec cette méthode. Vous auriez pu aussi intégrer ce texte supplémentaire dans le message de bienvenue. C’est un choix de développement et d’optimisation éventuelle. Mais nous ne sommes pas dans une phase d’optimisation.

Cliquez à nouveau sur le bouton Démarrer : c’est mieux.

Téléchargez la vidéo : 005 Déclarer et Initialiser les Variables en C#.

Téléchargez les exemples de code.

Tous les articles sur le développement en C#.

Surveillance numérique

https://ssd.eff.org/ et https://www.eff.org/

http://www.ccin.mc/

http://zonedinteret.blogspot.fr/

http://www.wikileaks.org/

http://www.cato-unbound.org/2010/08/09/glenn-greenwald/digital-surveillance-state-vast-secret-dangerous

http://www.cato-unbound.org/2010/08/26/glenn-greenwald/surveillance-state-thrives-fear

http://www.salon.com/writer/glenn_greenwald/

http://www.theguardian.com/profile/glenn-greenwald

http://bugbrother.blog.lemonde.fr/

http://www.lemonde.fr/societe/article/2013/07/04/revelations-sur-le-big-brother-francais_3441631_3224.html

http://owni.fr/

http://www.cnil.fr/

004 Découvrir l’Environnement Visual Studio pour C#

Cette vidéo présente les fonctionnalités de base de l’IDE de Visual Studio 2013 comme:
– Retrouver les fenêtres d’origine,
– Comment ajouter les numéros de ligne dans le code,
– IntelliSense fonctionne pour compléter automatiquement et intelligemment la frappe,
– Comment faire le suivi des modifications avec la bande latérale jaune et verte,
– Comment réduire le code grâce aux icônes + / – tout en gardant une vision globale du code.

L’objectif de cette vidéo est vous familiariser avec l’environnement Visual Studio 2013 avec un aperçu du fonctionnement de ses fonctionnalités de base.

Afficher votre programme

Au début, vous pouvez être perdu ou perturbé notamment lorsque les fenêtres habituelles n’apparaissent plus. Par exemple, suite à une mauvaise manipulation, vous les avez toutes fermées : l’écran devient complètement vierge.

Vous avez beau cliquer sur Afficher > Page de démarrage puis vous rechargez votre application mais rien n’apparaît. C’est assez perturbant.

Pour résoudre le problème, il suffit de cliquer sur Afficher puis Explorateur de solutions.

Dans les vidéos suivantes, vous aurez l’occasion de découvrir à quoi sert concrètement l’explorateur de solutions. Dans un premier temps affichez le. Ensuite, vous double-cliquez sur Program.cs Généralement c’est le programme que vous utilisez par défaut.

Afficher les numéros de ligne

Vous pouvez aussi afficher le numéro de ligne, même si vous avez peu de lignes. Avec des programmes de 100 ou 2000 lignes, c’est plus pertinent.

Pour cela, vous allez dans Outils puis Options. Ensuite, vous ouvrez la section des paramètres de l’éditeur de textes, En particulier, celui de C#. En cliquant dessus, vous voyez apparaître différents paramètres notamment le numéro de ligne. Vous cochez Numéro de ligne puis vous faites OK.

Vous voyez apparaître le numéro de ligne dans la colonne de gauche.

Vous avez bien d’autres paramètres d’affichage qui sont disponibles dans ces options.

Changer les couleurs de l’écran et les polices

Dans la section Environnement, vous avez la possibilité par exemple de changer la police ou les couleurs de votre écran.

Par exemple, certains aiment avoir un arrière-plan sombre et des polices claires.

En dehors de ces aspects d’affichage vous avez aussi IntelliSense.

Qu’est-ce qu’IntelliSense ?

À chaque fois que vous tapez quelque chose, l’éditeur analyse précisément votre frappe.

Par exemple, si vous cherchez à taper le mot console, vous voyez apparaître une petite fenêtre qui propose différents choix. Plus vous avancez dans l’écriture du mot Console et plus la fenêtre va afficher une liste de mot précis.

Pour sélectionner la proposition qui vous convient, vous avez plusieurs manipulations possibles : vous pouvez sélectionner le mot en cliquant dessus ou vous pouvez aussi appuyer sur le point (.) du clavier.

Le point sert de délimiteur dans l’expression en cours d’écriture.

Si vous appuyez sur point, tandis que vous étiez positionné sur Console, IntelliSense vous fait apparaître le mot en entier.

Maintenant que IntelliSense sait que vous cherchez à utiliser Console, il vous propose toutes les actions qui sont liées à ce terme. Bien évidemment, vous retrouvez la méthode WriteLine().

Vous pouvez sélectionner ou commencer à taper : la liste des valeurs de la fenêtre d’IntelliSense se restreint jusqu’à faire apparaître uniquement l’option concernée.

Vous sélectionnez avec la flèche bas du clavier le mot WriteLine, et vous pouvez utiliser la parenthèse ouvrante comme délimiteur.

Complétion des saisies

Un autre avantage de Visual Studio est d’afficher automatiquement la parenthèse fermante : il ne reste plus qu’à taper le texte.

Vous tapez sur guillemet (« ), et un autre guillemet apparaît. Puis, entre ces deux guillemets, vous tapez votre texte, comme par exemple, « A bientôt ».

IntelliSense ne se contente pas de proposer car il analyse et complète votre frappe.

Vous voyez apparaître au bout de la ligne Console.WriteLine avec son paramètre, un souligné rouge un peu gondolé et si vous survolez ce souligné avec la souris, IntelliSense vous indique qu’il manque le point-virgule.

En effet, chaque instruction doit se terminer avec un point-virgule.

Détecter des anomalies

Lorsque vous êtes sur un programme compliqué, le fait d’activer la bonne option, permet de détecter des anomalies dans sa logique de programmation.

Par exemple si vous vouliez écrire directement ici Write, IntelliSense ne propose pas WriteLine() puisque pour lui ça n’a pas de sens dans le contexte présent.

L’indentation

L’indentation est un décalage qui apparaît systématiquement et qui facilite la lecture. Si par exemple vous saisissez une autre ligne sous les deux premières. Vous débutez la saisie en début de ligne et vous tapez Console puis point puis WriteLine().

Incidemment, vous remarquerez que IntelliSense a proposé par défaut WriteLine(). Autrement dit, il tient compte de nos habitudes d’écriture.

Si vous continuez la saisie, vous tapez par exemple « bye bye » et que vous terminez par le point-virgule, vous remarquerez que votre saisie a été automatiquement alignée sur les deux lignes précédentes.

C’est l’indentation automatique.

Cliquez sur le bouton Démarrer : les messages s’affichent correctement.

Il existe aussi des aides visuelles qui vous permettent de mieux savoir quelles sont les parties du code sur lesquelles vous êtes intervenues.

Affichage des dernières modifications intervenues

Sur le côté gauche de l’éditeur, une colonne verte signale les lignes que vous avez récemment modifiées et que ces modifications ont été enregistrées.

Par exemple, si vous vous positionnez sous Console.ReadLine() et que vous appuyez sur la touche Entrée, vous voyez apparaître une colonne jaune sur la ligne de votre curseur.

Celle-ci indique que les deux lignes ont été modifiées, mais que les modifications n’ont pas été enregistrées.

L’enregistrement des modifications se fait en cliquant sur Enregistrer.

Dans l’onglet du nom du fichier, une étoile à côté du nom signale que le fichier n’a pas encore été enregistré. Si vous enregistrez, la petite étoile disparaît et la colonne jaune devient verte.

Surimpression des sections

Une autre aide visuelle intéressante concerne l’utilisation des sections.

Lorsque vous déplacez votre souris sur le côté gauche un fond grisé apparaît. Cela permet de repérer l’endroit sur lequel pointe la souris.

En cliquant sur les petits moins qui apparaissent sur le côté gauche, réduire les différentes sections de façon à pouvoir me concentrer visuellement sur la partie qui m’intéresse.

Toutefois, vous pouvez prendre connaissance du contenu d’une section réduite sans être obligé de l’ouvrir.

Si vous survolez avec votre souris le carré avec les trois petits points, qui se trouve au bout de la section, vous voyez apparaître le code de la section réduite en surimpression de votre écran.

Téléchargez la vidéo : 004 Découvrir l’Environnement Visual Studio pour C#.

Téléchargez les exemples de code.

Tous les articles sur le développement en C#.

003 Comprendre Son Premier Programme C#

A partir du programme développé dans la vidéo précédente grâce à Visual Studio 2013, vous verrez les spécificités et l’importance de chaque partie de la syntaxe du programme.

Les notions introduites sont le Framework .Net, la directive using, les espaces de noms, les classes et les méthodes.

L’application que vous avez développé dans la vidéo précédente va vous servir d’exemple pour mieux comprendre la logique du fonctionnement d’un programme C#.

Application001Application001

En effet vous voyez de nombreux termes comme : using, namespace, class, etc. qui ont un sens bien précis. Hors, il est important de resituer tous ces éléments.

En effet, il faut bien comprendre que vous avez une première couche qui s’exécute c’est Windows. Windows est évidemment le programme principal dans lequel va fonctionner votre application. Par ailleurs, votre application communique avec Windows à travers l’environnement .Net.

L’environnement .Net

L’environnement dot net ou la plateforme dot net est un outil qui permet d’avoir un code qui se concentre le plus possible sur les couches métiers, utiles ou applicatives, plutôt que sur ce qui est lié au fonctionnement de Windows.

Concrètement dans l’application précédente lorsque vous la lanciez, vous aviez une fenêtre qui s’affichait. L’objectif de cette vidéo n’est pas de passer du temps à expliquer comment cette fenêtre doit s’afficher où elle doit s’afficher, quelles dimensions elle a, etc.

Dans un premier temps, ce qui vous intéresse c’est d’afficher votre message. C’est là qu’intervient plusieurs outils comme l’instruction Console qui va vous permettre de fait simplement ce genre d’opération (afficher un message).

Il y a une terminologie à comprendre, aussi il y aura plusieurs vidéos pour vous aider à saisir toutes ses nuances. Aujourd’hui, c’est une simple introduction.

Notamment, l’instruction Console est en réalité une « Classe ». De la même façon que vous avez la classe Program dans Application001, vous avez la classe Console.

Qu’est-ce que c’est qu’une classe ?

Dans un premier temps, il est possible de définir une classe comme un simple regroupement de méthodes.

La classe Console comprend plusieurs méthodes, dont WriteLine() et ReadLine().

Schéma de la Classe ConsoleSchéma de la Classe Console

Dans le schéma, la classe Console dispose d’au moins de ces deux méthodes.

Qu’est-ce que c’est qu’une méthode ?

Une méthode est un regroupement d’instructions. Ces instructions sont les lignes de programmes qui vont s’exécuter.

Par exemple, WriteLine() et ReadLine() sont des méthodes qui sont comprises dans la classe Console.

Dans le code, vous voyez effectivement une classe qui comprend deux méthodes mais vous remarquerez aussi qu’il existe une classe Program qui enveloppe une autre méthode qui est un peu particulière qui est la méthode Main().

A quoi sert la méthode Main() ?

Lorsque le programme va démarrer, c’est la méthode Main() qui va s’exécuter en premier.

Cela veut dire que lorsque le programme se lance Windows va d’abord chercher le contenu de la méthode Main() et il va exécuter les lignes de codes qui se trouve dans cette méthode.

Pourquoi avoir utilisé la classe Console ?

Console sert à créer la fenêtre dans laquelle le texte s’affiche. Ce texte a été passé en tant que paramètre. Autrement dit vous avez le paramètre entre les deux parenthèses de la méthode WriteLine() de la classe Console.

Namespace

Vous voyez aussi la notion de namespace (« espace de nom »). Dans Application001, le « namespace » correspond exactement au nom du projet.

Supposez que vous ayez une application très complexe dans laquelle il y a plusieurs classes Program.

Comment distinguer une classe Program d’une autre ?

Chaque classe Program est préfixée par le namespace auquel elle appartient : Application001 dans l’exemple.  S’il y a une ambiguïté, il est possible d’appeler la méthode Main() de la classe Program qui fait partie de l’espace de nom Application001.

La meilleure illustration de ce mécanisme est justement avec la classe Console.

La classe Console appartient à l’espace de nom qui s’intitule System. C’est le même « System » que celui qui se trouve en haut du programme, sur la première ligne, en face de using.

Directive using

Si Microsoft dans son modèle a mis en place using Sytem, c’est parce qu’il se doutait que la classe Console serait utilisée. Dans le programme, il est possible de préfixer par System, chacune des lignes qui appellent la classe Console. Du coup, l’instruction using System n’est plus nécessaire.

Les autres using ne sont pas nécessaires non plus. Vous pouvez les enlever car il est très facile de les retrouver, si vous en avez besoin. Donc, vous pouvez enlever tous les using, car la classe Console est préfixée par l’espace de nom System.

Si vous cliquez sur Démarrer, le programme se compile et se lance normalement.

Annulez vos modifications avec CTRL+Z, pour supprimer les dernières modifications.

Pour résumé, vous pouvez utiliser la classe Console sans être préfixée à condition de déclarer l’instruction using. Si vous reprenez le schéma, c’est la raison pour laquelle vous avez la classe console qui est incluse dans l’espace de nom System.

L’espace de nom permet de lever l’ambiguïté. Application001 utilise la classe Console de l’espace de nom System. Dans la classe Console Application001 a besoin des méthodes WriteLine() et ReadLine().

Téléchargez la vidéo : 003 Comprendre Son Premier Programme C#.

Téléchargez les exemples de code.

Tous les articles sur le développement en C#.

Comment réagir en cas d’attaque terroriste ?

Ces conseils pour apprendre comment sauver sa vie lors d’une attaque terroriste sont principalement issus du site gouvernemental français.

Entre crochets et en italique, mon plan personnel.

S’échapper

Localisez le danger pour vous en éloigner.

[Si vous pouvez vous enfuir : fuyez !].

Si possible, aidez les autres personnes à s’échapper [ne vous laissez pas influencer par leur désir de rester sur place mais ne les laissez pas vous ralentir dans votre fuite].

Ne vous exposez pas [lors de votre fuite].

Alertez les personnes autour de vous et dissuadez les de pénétrer dans la zone de danger.

[Dès que vous êtes en lieu sûr, prévenez les secours : appelez le 17 ou 112].

Si c’est impossible de vous échapper

Cachez-vous : enfermez-vous et barricadez-vous.

Coupez la sonnerie et le vibreur de votre téléphone.

Éteignez la lumière et coupez le son des appareils.

[Cachez-vous derrière des objets larges et grands qui peuvent vous protéger des tirs].

Éloignez-vous des ouvertures et allongez-vous au sol SINON, abritez-vous derrière un obstacle solide : mur, pilier (béton, mur épais).

[Tâchez de rester le plus calme possible].

[Votre cache doit être hors de vue des tireurs, et elle ne doit pas limiter vos options pour vous déplacez].

[En cas d’explosion d’une bombe dans le bâtiment où vous êtes et que des débris tombent, réfugiez-vous sous une table ou un bureau solide].

[Si vous n’avez pas d’autres options et que votre vie est en danger : défendez-vous]

[Engagez-vous dans l’action pour défendre votre vie].

[Improvisez les armes : extincteurs ou chaises].

[Rendez l’assaillant inopérant, comme dans l’attaque du Thalys].

Alertez et obéissez aux forces de l’ordre

Dés que vous êtes en sécurité, appelez le 17 ou le 112.

Ne courez pas vers les forces de l’ordre et ne faites aucun mouvement brusque : Gardez les mains levées et ouvertes.

[Évitez de crier].

Vigilance

Témoin d’une situation ou d’un comportement suspect, contactez les forces de l’ordre : 17 ou 112.

Quand vous entrez dans un lieu, repérez les issues de secours.

Ne diffusez aucune information sur l’intervention des forces de l’ordre

Ne diffusez pas de rumeurs ou d’informations non vérifiées sur Internet et les réseaux sociaux.

Sur les réseaux sociaux, suivez les comptes @Place_Beauveau et @gouvernementfr.

Affiche du site gouvernemental

http://www.gouvernement.fr/reagir-attaque-terroriste

reagir-en-cas-d-attaque-terroriste