SlideShare une entreprise Scribd logo
Préparation de la certification MCSD 70-483: Programmer en C#
Formation MCSD C# 2ème Partie
Béchir BEJAOUI
Formateur et consultant indépendant
Présentation de la deuxième
partie de la formation
Préparation de la certification MCSD 70-483: Programmer en C#
Présentation formateur
Mail: bejaouibpro@gmail.com
Linked-In: https://tn.linkedin.com/in/bejaoui-06b2452b
Microsoft Certified
Professional
.Net 3.5 Applications
distribuées
SQL Server
Business Intelligence
Application Live
Management Cycle
Préparation de la certification MCSD 70-483: Programmer en C#
Le plan de la formation
Préparation de la certification MCSD 70-483: Programmer en C#
Le plan de la formation
Flux de programmesPrésentation & utilisation
des types
Accès aux donnéesTechniques de
débogage & sécurisation
Préparation de la certification MCSD 70-483: Programmer en C#
Le plan de la formation
Présentation & utilisation des types
Création & consommation de types
Application des principes orientés objet
Création et mise en œuvre d'une hiérarchie d’objets
La programmation dynamique et la réflexion
Gestion du cycle de vie d'un objet
Préparation de la certification MCSD 70-483: Programmer en C#
Le plan de la formation
Mise en œuvre du flux de programme
Mise en œuvre de la gestion des exceptions
Gestion du multithreading et la programmation asynchrone
Création et mise en œuvre des événements
Flux de programmes
Préparation de la certification MCSD 70-483: Programmer en C#
Le plan de la formation
La gestion des assemblées
La validation des entrées de données
Le diagnostic de l’application
Le cryptage/décryptage des données
Techniques de débogage & sécurisation
Préparation de la certification MCSD 70-483: Programmer en C#
Le plan de la formation
Exécution des opérations des Entrées/Sorties
La couche applicative d’accès aux données LINQ
Manipulation des chaînes et des collections
Accès aux données
La couche applicative d’accès aux données ADO.NET
La sérialisation/déserialisation des données
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Présentation de la deuxième partie de formation
MCSD programmer en C# MS 70-483
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Techniques de validation
Les expression régulières
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Une expression régulière est une chaine de caractères qui précise les
spécifications d’un groupe de chaînes de caractères
Exemple:
Les techniques de validations –Les expressions régulières
Présentation
1
Les patterns
2
Regex
3
RegexOptions
4
 Les emails et les liens hypertexte
 Les téléphones
 Les adresses et les codes postaux
Exemples d’expressions régulières
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les Regex utilisent une syntaxe spécifique pour valider et manipuler
les chaines de caractères:
Symbole Correspondance Exemple
^ Début de ligne ^a$  a
$ Fin de ligne r$ bechir
+ 1 fois ou plus ^(a)+  a aaaaa n fois
? 0 ou 1 fois ^(a)?  abc bac cab cba
* 0 fois ou plus ^(a)*  aabc baac caaab cbaaaa bc
| Alternative ^(b|B) bechir Bechir
. N'importe quel caractère ^.$  a b c d
[^]
Tout sauf un ensemble de
caractères
^[^a]  bechir
( ) Groupement ^((a)|(er))  area era
 Caractère d'échappement [.]  "."
Les techniques de validations –Les expressions régulières
Présentation
1
Les patterns
2
Regex
3
RegexOptions
4
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les Regex utilisent une syntaxe spécifique pour valider et manipuler
les chaines de caractères:
Symbole Correspondance Exemple
n Caractère de nouvelle ligne
r Caractère de retour à la ligne
t Caractère de tabulation
s Caractère d'espacement [fnrtv]
S Non espacement [^fnrtv]
d Numérique [0-9]
D Non numérique [^0-9]
Les techniques de validations –Les expressions régulières
Présentation
1
Les patterns
2
Regex
3
RegexOptions
4
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les Regex utilisent une syntaxe spécifique pour valider et manipuler
les chaines de caractères:
Symbole Correspondance Exemple
w Un caractère alphanumérique [a-zA-Z0-9_]
W
Tout sauf un caractère
alphanumérique
@$§!
xn Caractère en hexadécimal x41 A
{x} x fois exactement a{2}  aa
{x,}
x fois au moins a{2,}  aa ou aaa ou aaaa
{x, y} x fois minimum, y maximum a{2,4}  aa ou aaa ou aaaa
Les techniques de validations –Les expressions régulières
Présentation
1
Les patterns
2
Regex
3
RegexOptions
4
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les principaux membres de la classe Regex
Méthodes Description
IsMatch(String)
Indique si l'expression régulière spécifiée correspond à la
chaîne d'entrée spécifiée
Match(String)
Recherche dans la chaîne d'entrée spécifiée la première
occurrence d'une expression régulière
Matches(String)
Recherche dans la chaîne d'entrée spécifiée toutes les
occurrences d'une expression régulière
Replace(String, String)
Remplace toutes les chaînes qui correspondent à un modèle,
dans une chaîne d’entrée spécifiée
Split(String)
Fractionne une chaîne d’entrée en un tableau de sous-chaînes
aux positions définies
Les techniques de validations –Les expressions régulières
Présentation
1
Les patterns
2
Regex
3
RegexOptions
4
Préparation de la certification MCSD 70-483: Programmer en C#
❖ L’énumération RegexOptions
Membres Description
None = 0 Pas d’options
IgnoreCase = 1 La sensibilité à la casse n’est pas obligatoire
Multiline = 2 Une chaine multi lignes
ExplicitCapture = 4
Spécification que seulement les captures valides sont
explicitement nommés ou énumérés dans des groupes
Compiled = 8 Spécifie que l’expression est compilée dans une assemblée
Singleline = 16 Une chaine à une seule ligne
IgnorePatternWhitespace = 32 Elimine les espaces et les commentaires précédées par #
RightToLeft = 64
Spécifie que l’orientation est de droite vers gauche pour le
cas des langues comme l’arabe et le hébreu
CultureInvariant = 512 Spécifie que la culture du langage est ignorée
ECMAScript = 256 Active le comportement ECMAScript-compliant
Les techniques de validations –Les expressions régulières
Présentation
1
Les patterns
2
Regex
3
RegexOptions
4
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Quelques remarques sur énumération RegexOptions
 Pour le cas de option Compiled, l’expression sera générée une seule
fois lors de sa initialisation
 Emascript-compliant est un ensemble de normes que les langages
doivent accepter
 Pour le cas de Emascript, il faut utiliser cette option en conjonction
avec les options IgnoreCase, Multiline et Compiled
 Au cas du non respect de la règle, il aura une levée d’exception
Les techniques de validations –Les expressions régulières
Présentation
1
Les patterns
2
Regex
3
RegexOptions
4
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de validations – les expressions régulières
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Techniques de validation
Les expression régulières
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les classes
Les techniques de validations –Les expressions régulières
Match
2
MatchCollection
3
RegexCompilationInfo
4
 Match
 MatchCollection
 RegexCompilationInfo
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les principaux membres de la classe Match
Propriétés Description
Captures Obtient une collection de 0 à toutes les captures correspondantes
Empty
Toutes les correspondances infructueuses retournent cette
correspondance vide
Groups
Obtient une collection de groupes correspondant à l’expression
régulière
Index
Position dans la chaîne d’origine où se trouve le premier caractère de
la sous-chaîne capturée
Name
Retourne le nom du groupe de capture représenté par l’instance
actuelle
Succès Obtient une valeur indiquant si la correspondance est réussie
Value Obtient la sous-chaîne capturée à partir de la chaîne d’entrée
Length Obtient la longueur de la sous-chaîne capturée
Les techniques de validations –Les expressions régulières
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Méthodes Description
NextMatch()
Retourne un nouvel objet Match avec les résultats de la
correspondance suivante
Result(String) Retourne le résultat du modèle de remplacement spécifié
Synchronized(Match) Retourne une instance de Match équivalente à celle qui est fournie
Les techniques de validations –Les expressions régulières
❖ Les principaux membres de la classe Match
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Propriétés Description
Count Obtient le nombre de correspondances
IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule
item[Int32]
Obtient une valeur indiquant si l’accès à la collection est synchronisé
IsSynchronized Obtient un membre de la collection
SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la
collection
Les techniques de validations –Les expressions régulières
Match
2
MatchCollection
3
RegexCompilationInfo
4
❖ Les principaux propriétés de la classe MatchCollection
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Propriétés Description
Count Obtient le nombre de correspondances
IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule
item[Int32]
Obtient une valeur indiquant si l’accès à la collection est synchronisé
IsSynchronized Obtient un membre de la collection
SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la
collection
Les techniques de validations –Les expressions régulières
❖ Les principaux propriétés de la classe MatchCollection
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Propriétés Description
Count Obtient le nombre de correspondances
IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule
item[Int32]
Obtient une valeur indiquant si l’accès à la collection est synchronisé
IsSynchronized Obtient un membre de la collection
SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la
collection
Les techniques de validations –Les expressions régulières
❖ Les principaux propriétés de la classe RegexCompilationInfo
❖ La classe RegexCompilationInfo est essentiellement utilisée pour
compiler les expressions régulières dans des assemblées
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –Les expressions régulières
❖ Exemple de compilation des expressions régulières dans des assemblées
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de validations – les expressions régulières
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Techniques de validation
Les expression régulières
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les classes
Les techniques de validations –Les expressions régulières
Match
2
MatchCollection
3
RegexCompilationInfo
4
 Match
 MatchCollection
 RegexCompilationInfo
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
❖ Les principaux membres de la classe Match
Propriétés Description
Captures Obtient une collection de 0 à toutes les captures correspondantes
Empty
Toutes les correspondances infructueuses retournent cette
correspondance vide
Groups
Obtient une collection de groupes correspondant à l’expression
régulière
Index
Position dans la chaîne d’origine où se trouve le premier caractère de
la sous-chaîne capturée
Name
Retourne le nom du groupe de capture représenté par l’instance
actuelle
Succès Obtient une valeur indiquant si la correspondance est réussie
Value Obtient la sous-chaîne capturée à partir de la chaîne d’entrée
Length Obtient la longueur de la sous-chaîne capturée
Les techniques de validations –Les expressions régulières
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Méthodes Description
NextMatch()
Retourne un nouvel objet Match avec les résultats de la
correspondance suivante
Result(String) Retourne le résultat du modèle de remplacement spécifié
Synchronized(Match) Retourne une instance de Match équivalente à celle qui est fournie
Les techniques de validations –Les expressions régulières
❖ Les principaux membres de la classe Match
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Propriétés Description
Count Obtient le nombre de correspondances
IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule
item[Int32]
Obtient une valeur indiquant si l’accès à la collection est synchronisé
IsSynchronized Obtient un membre de la collection
SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la
collection
Les techniques de validations –Les expressions régulières
Match
2
MatchCollection
3
RegexCompilationInfo
4
❖ Les principaux propriétés de la classe MatchCollection
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Propriétés Description
Count Obtient le nombre de correspondances
IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule
item[Int32]
Obtient une valeur indiquant si l’accès à la collection est synchronisé
IsSynchronized Obtient un membre de la collection
SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la
collection
Les techniques de validations –Les expressions régulières
❖ Les principaux propriétés de la classe MatchCollection
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Propriétés Description
Count Obtient le nombre de correspondances
IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule
item[Int32]
Obtient une valeur indiquant si l’accès à la collection est synchronisé
IsSynchronized Obtient un membre de la collection
SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la
collection
Les techniques de validations –Les expressions régulières
❖ Les principaux propriétés de la classe RegexCompilationInfo
❖ La classe RegexCompilationInfo est essentiellement utilisée pour
compiler les expressions régulières dans des assemblées
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –Les expressions régulières
❖ Exemple de compilation des expressions régulières dans des assemblées
Match
2
MatchCollection
3
RegexCompilationInfo
4
Plan
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de validations – les expressions régulières
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La globalisation
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La globalisation
Un petit exemple
3
La classe CultureInfo
2
❖ La Classe CultureInfoPrésentation
1
❖ Un petit exemple de validation de format UTC de date
Préparation de la certification MCSD 70-483: Programmer en C#
Propriétés Description
DisplayName Obtient le nom localisé complet de la culture
LCID Obtient l'identificateur de culture pour l'élément CultureInfoactuel
Name Obtient le nom de la culture au format code_langue-code_région/pays
Parent
Obtient l'élément CultureInfo qui représente la culture parente de
l'élément CultureInfo actuel
TextInfo
Obtient l'élément TextInfo qui définit le système d'écriture associé à la culture
IsReadOnly Obtient une valeur indiquant si l'élément CultureInfo actuel est en lecture seule
InvariantCulture Obtient l'objet CultureInfo qui est indépendant de la culture
CurrentCulture Obtient ou définit l'objet CultureInfo qui représente la culture d'interface
utilisateur actuelle
Les techniques de validations –La globalisation
Un petit exemple
3
La classe CultureInfo
2
❖ La CultureInfo classe fournit des informations spécifiques à la culture,
telles que la langue, sous-langue, pays/région, calendrier et
des conventions associées à une culture particulière
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Méthodes Description
ClearCachedData() Actualise les informations sur la culture mises en cache
Clone() Crée une copie de l'élément CultureInfo actuel
ReadOnly(CultureInfo) Retourne un wrapper en lecture seule autour de
l'objetCultureInfo spécifié
GetCultures(CultureTypes)
Obtient la liste des cultures prises en charge filtrées selon le
paramètre CultureTypes spécifié
GetCultureInfo(String) Récupère une instance mise en cache et en lecture seule d'une culture
en utilisant le nom de culture spécifié
CreateSpecificCulture(String) Crée un élément CultureInfo qui représente la culture spécifique
associée au nom spécifié
Les techniques de validations –La globalisation
❖ La CultureInfo classe fournit des informations spécifiques à la culture,
telles que la langue, sous-langue, pays/région, calendrier et
des conventions associées à une culture particulière
Un petit exemple
3
La classe CultureInfo
2
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La globalisation
Exemple de validation de date selon le format UTC
Un petit exemple
3
La classe CultureInfo
2
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de validations – la globalisation
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La validation des entrées
Partie I
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La validation des entrées
❖ La validation des chaines de caractèresLe plan
1
❖ Les fonctions d’analyse des entrées
❖ Les exceptions en relation avec les validations
❖ La validation est l’aspect sécurité
2
Les chaînes
Préparation de la certification MCSD 70-483: Programmer en C#
Méthodes Description
Contains Renvoie true si la chaîne contient une sous-chaîne spécifiée
EndsWith Renvoie true si la chaîne se termine par une sous-chaîne spécifiée
IndexOf Renvoie l'emplacement d'une sous-chaîne spécifiée dans la chaîne
IndexOfAny
Renvoie l'emplacement d'un ensemble de caractères spécifié dans
la chaîne
IsNullOrEmpty Renvoie true si la chaîne est nulle ou vide
IsNullOrWhitespace Renvoie true si la chaîne est nulle, vide ou contient des espaces
StartsWith Renvoie true si la chaîne commence par une sous-chaîne spécifiée
Les techniques de validations –La validation des entrées
❖ Au niveau de la classe String, il y a des méthodes qui permettent
d’effectuer des opérations de validationLe plan
1
2
Les chaînes
Préparation de la certification MCSD 70-483: Programmer en C#
Méthodes Description
ToLower Retourne la chaîne convertie en minuscules
ToUpper Renvoie la chaîne convertie en majuscule
Trim Renvoie une chaine sans espaces
Remove Supprime les caractères de la chaîne
Replace Remplace les instances d'un caractère ou d'une sous-chaîne par
une nouvelle valeur
Split Retourne un tableau de chaines divisées selon des critères
Les techniques de validations –La validation des entrées
❖ Au niveau de la classe String, il y a des méthodes qui permettent
d’effectuer des opérations de validationLe plan
1
2
Les chaînes
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de validations – La validation des entrées
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La validation des entrées
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La validation des entrées
❖ La validation des chaines de caractèresLe plan
1
❖ Les fonctions d’analyse des entrées
❖ Les exceptions en relation avec les validations
❖ La validation est l’aspect sécurité
2
Analyse fonctionnelle
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La validation des entrées
❖ L’analyse fonctionnelle peut se présenter sur deux niveaux
❖ Il existe plusieurs techniques pour implémenter une analyse
fonctionnelle
 La méthode Parse
 La méthode TryParse
 L’implémentation de l’interface IFormattable
 L’implémentation de l’interface IFormatProvider
 Intercepte l’entrée des utilisateurs pour les analyser, les valider
avant de les passer vers le traitement
 Formate et convertis les données avant de les passer au
traitements
Le plan
1
2
Analyse fonctionnelle
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de validations – La validation des entrées
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La validation des entrées
Partie III
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La validation des entrées
❖ La validation des chaines
❖ Les fonctions d’analyse des entrées
❖ Les exceptions en relation avec les validations
❖ La validation est l’aspect sécurité
Le plan
1
Validation & sécurité
3
Les exceptions
2
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La validation des entrées
❖ Les exceptions qui aident dans les opérations de validationLe plan
1
Validation & sécurité
3
 ArgumentException
 ArgumentNullException
 ArgumentOutOfRangeException
 DivideByZeroException
 NullReferenceException
Les exceptions
2
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de validations –La validation des entrées
❖ La validation peut être cruciale dans certains cas exemple la
protection contre les injections SQL
Exemple de commande vulnérable
Exemple de requête ordinaire
Exemple d’injection SQL
Le plan
1
Validation & sécurité
3
Les exceptions
2
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de validations – La validation des entrées
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
❖ Les instruments de débogages se divisent en deux catégories
principales
 L’ensemble d’instruments visuels offerts par Visual Studio
 Les ressources prédéfinies offertes par .Net Framework,
l’espace nom System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
Les points d’arrêts
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
❖ L’ensemble d’instruments visuels offerts par Visual Studio
Les fenêtres de débogage
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
❖ L’ensemble d’instruments visuels offerts par Visual Studio
Les fenêtres de débogage
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
❖ L’ensemble d’instruments visuels offerts par Visual Studio
Les fenêtres de débogage
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
❖ L’ensemble d’instruments visuels offerts par Visual Studio
Les fenêtres de débogage
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
Le menu de débogage
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage-Introduction
Les datatips
Points d’arrêts
2
Fenêtres débogage
3
Menu débogage
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie I
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages, les utilitaires
 Debug
1
Utilitaires
2
Présentation
 Debugger
 Trace
 EvenLog
 StopWatch
 StackFrame/StackTrace
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace
nom System.Diagnostics
 Les classes utilitaires
Debug TraceDebugger EventLog
StopWatch StackFrame StackTrace
Utilitaires
2
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ La différence entre les classes Debug et Trace
La classe de Debug fonctionne
uniquement en mode Debug
La classe Trace fonctionne en mode Debug
et Release
La classe de Debug est utilisée pour les
tests et l'optimisation en mode Debug
La classe de Trace est utilisée pour les tests
et l'optimisation après la phase Release
Debug s’exécute dans le Thread
principal
Trace s’exécute dans un Thread séparé
Utilitaires
2
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System. Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages, les utilitaires
 Debug
1
Utilitaires
2
Présentation
 Debugger
 Trace
 EvenLog
 StopWatch
 StackFrame/StackTrace
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace
nom System.Diagnostics
 Les classes utilitaires
Debug TraceDebugger EventLog
StopWatch StackFrame StackTrace
Utilitaires
2
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie III
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages les Listeners
 Par défaut
1
Listeners
2
Présentation
 Texte
 XML
 Liste délimitée
 Console
 Personnalisé
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace
nom System.Diagnostics
TraceListener
DefaultTraceListener ConsoleTraceListener
EventLogTraceListener TextWriterTraceListener
XmlWriterTraceListener DelimitedListTraceListener
2
Listeners
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Il est possible de créer son propre Listener personnalisé en héritant
de la classe TraceListener
TraceListener
JasonTraceListener
2
Listeners
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie IV
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages
 Les Switch offert par .Net Framework
1
 Les implémentations de Switch personnalisées
Présentation
1
Switches
2
Boolean Switch
3
Trace Switch
4
Switch Personnalisé
5
 Définir les Switch
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Présentation
1
❖ Un Switch est un moyen de contrôler la sortie de débogage
au moment de l'exécution à l'aide de divers paramètres
Switches
2
SourceSwitch
TraceSwitch BooleanSwitch
❖ La classe SourceSwitch est la classe de base de tout les Switch
❖ Le .Net Framework offre deux implémentations de cette classe
Boolean Switch
3
Trace Switch
4
Switch Personnalisé
5
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Présentation
1
❖ Le Boolean Switch est la forme la plus simple des Switches
❖ Généralement le paramétrage de Switch se fait au niveau du
fichier de configuration
Switches
2
Boolean Switch
3
Trace Switch
4
Switch Personnalisé
5
Configuration du Boolean Switch
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Présentation
1
❖ Le Boolean Switch sera très utile lorsque le code n’est pas accessible
Switches
2
Boolean Switch
3
Trace Switch
4
Switch Personnalisé
5
❖ Le flux d’exécution sera contrôlé via le fichier de configuration
à travers la configuration du Switch
Exemple de technique de contrôle de flux
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Présentation
1
❖ La configuration de Trace Switch est plus détaillée
Switches
2
Boolean Switch
3
Trace Switch
4
Switch Personnalisé
5
Configuration du Trace Switch
❖ A la différence du Boolean Switch, le Trace Switch encapsule des
niveaux d’informations pour contrôler les sorties
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Présentation
1
Switches
2
Boolean Switch
3
Trace Switch
4
Switch Personnalisé
5
❖ Le flux d’exécution sera contrôlé via le fichier de configuration
à travers la configuration du Switch
Exemple de technique de contrôle de flux
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Présentation
1
Switches
2
Boolean Switch
3
Trace Switch
4
Switch Personnalisé
5
❖ Parfois le Boolean Switch et le Trace Switch ne comblent pas un besoin
spécifique dans ce cas nous définissons un Switch personnalisé
Exemple de technique de contrôle de flux
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie V
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages les sources de trace
1
Présentation
Filters
2
3
Trace Source
4
 Définition les Filtres de traces
Les types de Listeners
 Les Listeners vs Listeners partagés
 Définition des sources
 La classe TraceSource en action
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
1
Présentation
Filters
2
3
Trace Source
4
Les types de Listeners
Switch
Source
Listener
Filter
Couche 1
Couche 2
Couche 3
Application
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
1
Présentation
Filters
2
3
4
Les types de Listeners
Couche 1
Couche 2
Couche 3
Application
Trace Source
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Un filtre de trace est un moyen de contrôler les niveaux des
messages affichés dans un contexte de débogage
TraceFilter
EventTypeFilter
❖ La classe TraceFilter est la classe de base de tout les filtres de trace
❖ Le .Net Framework offre deux implémentations de cette classe
SourceFilter
1
Présentation
Filters
2
3
Les types de Listeners
4
Trace Source
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Les niveaux d’alertes des messages
❖ EventTypeFilter filtre les messages issus des Listeners sur la base
des niveaux
1
Présentation
Filters
2
3
Les types de Listeners
❖ EventTypeFilter est définit essentiellement dans le fichier
de configuration
4
Trace Source
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Exemple de définition de source via le code
❖ SourceFilter est utilisé essentiellement dans le code
❖ Il faut que la source soit définie est identifiée exactement par le même
nom au niveau du fichier de configuration pour ne pas causer la levée
d’une exception de configuration
1
Présentation
Filters
2
3
Les types de Listeners
❖ SourceFilter est utilisé pour filtrer les sources lorsqu’il s’agit de
plusieurs sources d’une manière dynamique
4
Trace Source
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
1
Présentation
Filters
2
3
Les types de Listeners
Listener partagéListener
4
Trace Source
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
1
Présentation
Filters
2
3
Les types de Listeners
Exemple de définition de source
Ajout de Source
Ajout de Listener
Pointage vers Listener partagé
Suppression Listener
Configuration de niveau
4
Trace Source
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Exemples de définition de Listeners
Ajout de Listener partagé
Ajout de Listener non partagé
1
Présentation
Filters
2
3
Les types de Listeners
4
Trace Source
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Utilisation de Listener dans le code
1
Présentation
Filters
2
3
Les types de Listeners
4
Trace Source
❖ Utilisation de Trace Source pour lancer une activité d’écoute
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Utilisation de Listener partagé dans le code
1
Présentation
Filters
2
3
Les types de Listeners
4
Trace Source
❖ Utilisation de Trace pour lancer une activité d’écoute
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie VI
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages les sources de trace
1
Présentation
Filters
2
3
Trace Source
4
 Définition les Filtres de traces
Les types de Listeners
 Les Listeners vs Listeners partagés
 Définition des sources
 La classe TraceSource en action
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie VII
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages les attributs
 Les classes attributs
Attributs
2
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Attributs
2
Présentation
1
❖ Des classes attributs
Conditional DebuggerBrowsableDebuggable
DebuggerHidden
DebuggerNonUserCode
DebuggerDisplay
DebuggerStepThrough
DebuggerStepperBoundary
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie VIII
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ Les instruments de débogages les attributs
 Les classes attributs
Attributs
2
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
Attributs
2
Présentation
1
❖ Des classes attributs
Conditional DebuggerBrowsableDebuggable
DebuggerHidden
DebuggerNonUserCode
DebuggerDisplay
DebuggerStepThrough
DebuggerStepperBoundary
DebuggerTypeProxy
DebuggerVisualiser
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie IX
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace
nom System.Diagnostics
 Des compteurs de performance
PerformanceCounter PerformanceCounterCategory
Performance
2
Présentation
1
CounterCreationData CounterCreationDataCollection
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
System.Diagnostics
Partie X
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- System.Diagnostics
❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace
nom System.Diagnostics
 Des classes Process
Process
ProcessModule
ProcessStartInfo
ProcessThread
ProcessModuleCollection
ProcessThreadCollection
2
Process
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-System.Diagnostics
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Les techniques de débogage
Les directives
Préparation de la certification MCSD 70-483: Programmer en C#
Les techniques de débogage- Les directives
Les directives
1
❖ Les directives du préprocesseur indiquent au compilateur C#
comment traiter les segments de code
❖ Les directives peuvent conditionner la compilation et le flux
d’exécution
❖ Dans ce cas il faut définir des symboles à utiliser dans la
gestion du code compilé
 #define and #undef
 #if, #elif, #else, and #endif
 #warning and #error
 #line hiden/default/numéro
 #region and #endregion
 #pragma warning/checksum
❖ Exemples de directives:
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les techniques de débogage-Les directives
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La gestion des assemblées
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées-Introduction
❖ Une Assemblée est un fichier portable qui contient une partie compilée
du code
❖ Contrairement à l'environnement java, où il n'existe qu'un seul type
d’assemblée le fichier * .JAR, la plate-forme .NET fournit deux types
d'assemblages:
 Les fichiers exécutables * .exe
 Les fichiers de bibliothèque * .dll
❖ Par analogie un espace nom est un conteneur logique du code, cependant
une assemblé est un conteneur physique du code
❖ Une assemblée est composée au moins d’un module qui peut
contenir d’autres modules, les modules à leurs tour contiennent le
code
Avantages
2
Génération
3
Structure
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées-Introduction
Avantages
2
Génération
3
Structure
4
Présentation
1
Versioning:
Regroupe les modules qui doivent avoir les mêmes informations
de version
Déploiement:
Regroupe les modules de code et les ressources qui prennent en
charge le modèle de déploiement
Réutilisation:
Regroupe les modules s’ils peuvent être logiquement utilisés
ensemble dans le même but ou partagés ou même exportés
Sécurité:
Regroupe les modules contenant des types qui nécessitent les
mêmes autorisations de sécurité
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées-Introduction
Le code source
Le code MSIL
Le langage machine
Etapes de génération des assemblées
Avantages
2
Génération
3
Structure
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées-Introduction
La structure des assemblées
Assemblées *.exe,*.dll
Les espaces noms
Les espaces noms
Les modules *.netmodule
Les types *.cs
Les modules *.netmodule
Avantages
2
Génération
3
Structure
4
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées-Introduction
❖ Les principales différences entre une assemblé et un module
sont:
Avantages
2
Génération
3
Structure
4
Présentation
1
 Un module ne peut pas être appelé par le code comme pour le
cas d’une assemblée
 Un module de point de vue structure rassemble à une
assemblée mais sans attributs d’assemblé
 Les modules sont utilisés pour accélérer démarrage des
assemblages vu que tous les types ne situent pas dans un seul
fichier
 Les modules sont utilisés également dans le cas d’utilisation de
plusieurs langages .Net au sein du même assemblée
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées-Introduction
❖ Une assemblée peut être présentée sous deux formes:
Avantages
2
Génération
3
Structure
4
Présentation
1
❖ Un seul fichier
❖ Plusieurs fichiers
❖ Une assemblée présentée en mode multifichier est un ensemble de
modules .NET déployés et versionnés en une seule unité
❖ Le module principal contient un manifeste principal de l'assemblée et
les modules secondaires ont une extension * .netmodule contenant
un manifeste niveau module
❖ Le principal avantage d'une assemblée en mode multifichiers est
qu‘elle fournisse un niveau de performance plus optimisé
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées-Introduction
Avantages
2
Génération
3
Structure
4
Présentation
1
Assemblée
CIL
Entête CLR
Métadonnées
Entête
Windows
Manifest
Ressources
Les composants d’une assemblée
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La gestion des assemblées-introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La gestion des assemblées
La manipulation des assemblées
Partie I
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
Assembly
2
AssemblyName
3
Présentation
1
❖ La classe Assembly est la principale classe responsable de créer et
de gérer les assemblées d’une manière dynamique à travers le code
❖ La classe AssemblyName est une classe utilisée pour collecter des
informations sur une assemblée donnée
Freinds
4
❖ On désigne par les assemblées Freinds, les assemblées dont le code
interne est visible au niveau de l’assemblée de référence
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
❖ La classe Assembly :
Propriétés Description
DefinedTypes Obtient une collection des types définis dans une assemblée
EntryPoint Obtient le point d'entrée d’une assemblée
Location Obtient le chemin d'accès complet ou l'emplacement UNC du fichier chargé qui
contient le manifeste
IsDynamic Obtient une valeur qui indique si l’assemblée actuelle a été générée dynamiquement
dans le processus courant
ReflectionOnly Obtient une valeur Boolean indiquant si cet assemblée a été chargée dans le contexte
de réflexion uniquement
SecurityRuleSet Obtient une valeur qui indique détermine l’ensemble de règles de sécurité
PermissionSet Obtient le jeu accordé de l'assemblée actuelle
IsFullyTrusted Obtient une valeur qui indique si l'assemblée actuelle est chargée avec une confiance
totale
ImageRuntimeVersion Obtient une représentation sous forme de chaîne de la version du Common Language
Runtime (CLR)
Assembly
2
AssemblyName
3
Présentation
1
Freinds
4
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
❖ La classe Assembly :
Méthodes Description
CreateInstance() Recherche le type spécifié dans cet assemblée et en crée une
instance
GetAssembly() Obtient l’assemblée actuellement chargée
GetEntryAssembly() Obtient l'exécutable du processus dans le domaine d'application
par défaut
GetExecutingAssembly() Obtient l'assemblée qui contient le code en cours d'exécution
GetName() Obtient AssemblyName pour cet assemblée
GetTypes() Obtient les types définis dans cet assemblée
GetExportedTypes() Obtient les types publics définis dans cet assemblée qui sont
visibles à l'extérieur
Assembly
2
AssemblyName
3
Présentation
1
Freinds
4
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
❖ La classe Assembly :
Méthodes Description
Load() Charge une assemblée
LoadFile() Charge le contenu d'une d'assemblée sur le chemin d'accès spécifié
LoadFrom() Charge une assemblée en fonction de son nom de fichier
ReflectionOnlyLoad() L'assemblée est chargée dans le contexte de réflexion uniquement du
domaine d'application de l'appelant
ReflectionOnlyLoadFr
om()
Charge une assemblée dans le contexte de réflexion uniquement, étant
donné son chemin d'accès
UnsafeLoadFrom(stri
ng)
Charge une assemblée dans le contexte de chargement, en ignorant
des vérifications de sécurité
LoadModule() Charge le module, interne qui appartient à cette assemblée
Assembly
2
AssemblyName
3
Présentation
1
Freinds
4
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
❖ La classe AssemblyName :
Propriétés Description
Name Obtient ou définit le nom simple de l’assemblées
KeyPair Obtient ou définit la paire de clés cryptographiques publique et privée qui
sont utilisées pour créer une signature de nom fort pour les assemblées
Version Obtient ou définit le major, minor, build et le numéro de révision de
l’assemblées
Flags Obtient ou définit les attributs de l’assemblées
CultureInfo Obtient ou définit la culture prise en charge par les assemblées
CultureName Obtient ou définit le nom de la culture associée aux assemblées
ContentType Obtient ou définit une valeur qui indique le type de contenu des assemblées
HashAlgorithm Obtient ou définit l’algorithme de hachage utilisé par le manifeste des
assemblées
Assembly
2
AssemblyName
3
Présentation
1
Freinds
4
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
❖ La classe AssemblyName :
Méthodes Description
GetAssemblyName(String) Obtient le AssemblyName pour un fichier donné
GetPublicKey() Obtient la clé publique de l’assemblée
GetType() Obtient le Type de l'instance actuelle
SetPublicKey() Définit la clé publique identifiant l’assemblée
GetPublicKeyToken() Obtient le jeton de clé publique, qui correspond aux 8 derniers
octets du hachage SHA-1 de la clé publique sous laquelle
l’application ou l’assemblée est signée
Assembly
2
AssemblyName
3
Présentation
1
Freinds
4
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
❖ La définition d’une assemblé freind :
Une figure qui montre la visibilité de la méthode interne
Assembly
2
AssemblyName
3
Présentation
1
Freinds
4
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
La gestion des assemblées – La manipulation des assemblées
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La gestion des assemblées
La manipulation des assemblées
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Les gestion des assemblées- La manipulation des assemblées
Assembly
2
AssemblyName
3
Présentation
1
❖ La génération d’une assemblée exécutable composée d’un seul module
Freinds
4
❖ Création d’un module
❖ La génération d’une assemblée bibliothèque composée
d’un seul module
❖ La génération d’une assemblée bibliothèque composée
de plusieurs modules
❖ Chargement et test de l’assemblé via la classe Assembly et
la réflexion
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
La gestion des assemblées – La manipulation des assemblées
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
La gestion des assemblées
La signature des assemblées
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées – La signature des assemblées
GAC
2
Installation
3
Présentation
1
Delay Sign
4
❖ Signer une assemblée veut dire encoder certaines parties de
l'assemblée avec une paire de clés publiques / clés privées
❖ La clé publique est intégrée dans l'assemblage et sera utilisée
par des tierces parties qui souhaitent référencer l'assemblée
❖ Il existe deux méthodes de signature des assemblées
 La signature non tardive
 La signature tardive
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées – La signature des assemblées
❖ Les assemblées sont essentiellement signées pour être préparées
pour qu’elles soient fortement nommées:
 Pour des raisons de sécurité
 Dans le cas de génération de plusieurs versions d’une assemblée
située dans le même emplacement
 Pour des raisons de performance
 Pour des raisons de stratégies de publication et correction des bugs
❖ Les assemblées fortement nommées sont placées dans un endroit
spécial nommé GAC Global Assembly Cache
❖ Le GAC Global Assembly Cache contient déjà les assemblées du
.Net Framework
GAC
2
Installation
3
Présentation
1
 Lorsque une assemblée va être partagée par plusieurs applications
Delay Sign
4
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées – La signature des assemblées
GAC
2
Installation
3
Présentation
1
L’emplacement des assemblées fortement nommées
Delay Sign
4
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées – La signature des assemblées
❖ Il existe deux manières pour générer une paire de clés de cryptage
GAC
2
Installation
3
Présentation
1
Delay Sign
4
 Via Visual Studio
 A l’aide de l’outil sn.exe
❖ Il existe deux manières pour signer une assemblée
 A l’aide de l’outil csc.exe
 A l’aide de l’outil al.exe
❖ Il existe quartes manières pour vérifier si une assemblée est signée
 Via les propriétés du projet au niveau de Visual Studio
 Au niveau du fichier AssemblyInfo « Pas pour toutes les situations
 A l’aide de l’outil ILDASM
 A l’aide de l’outil SN en utilisant l’option vf
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées – La signature des assemblées
GAC
2
Installation
3
Présentation
1
Delay Sign
4
❖ L’installation des assemblées dans le GAC ce fait à travers l’utilitaire
gacutil.exe
L’outil ligne de commande gacutil.exe
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées – La signature des assemblées
GAC
2
Installation
3
Présentation
1
Delay Sign
4
❖ La signature différée fait référence à une technique de signature
partielle des assemblées alors qu'elles sont en phase de
développement
❖ Le but principal de la signature différée est de permettre à une
entreprise de protéger et de contrôler sa clé privée pendant le cycle de
développement et de ne l'utiliser que pendant de ce processus
❖ Une assemblée signée différé peut toujours être utilisée comme un
assemblage signée, cependant il ne sera pas pratique de la publier
sauf si elle est signée d’une façon normale non tardive
Configuration de la signature tardive
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées – La signature des assemblées
GAC
2
Installation
3
Présentation
1
Delay Sign
4
❖ Pour appliquer une signature tardive à une assemblée il faut
suivre 4 étapes
1. Générer la clé publique
2. Compiler l’assemblée avec la définition suivante
3. Utiliser à nouveau l’outil sn.exe sn –Vr MonAssemblée.dll
4. Redémarrer Visual Studio pour éviter le disfonctionnement de
l’assemblée
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La gestion des assemblées –La signature des assemblées

Contenu connexe

Similaire à Support formation vidéo :Programmer C#6, Préparation à la certification MCSD 70-483, Partie 2 (1)

Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...
Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...
Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...SmartnSkilled
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 OverviewGregory Renard
 
2008-10-02 Paris - Intégrer tout type de Données
2008-10-02 Paris - Intégrer tout type de Données2008-10-02 Paris - Intégrer tout type de Données
2008-10-02 Paris - Intégrer tout type de DonnéesPatrick Guimonet
 
Ilearn 2008 Competences en mouvement
Ilearn 2008 Competences en mouvementIlearn 2008 Competences en mouvement
Ilearn 2008 Competences en mouvementYves Otis
 
Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharpSDFG5
 
Cyproc formation-programmation-en-langage-c
Cyproc formation-programmation-en-langage-cCyproc formation-programmation-en-langage-c
Cyproc formation-programmation-en-langage-cCERTyou Formation
 
M10266 formation-programmation-csharp-avec-microsoft-net-framework-4
M10266 formation-programmation-csharp-avec-microsoft-net-framework-4M10266 formation-programmation-csharp-avec-microsoft-net-framework-4
M10266 formation-programmation-csharp-avec-microsoft-net-framework-4CERTyou Formation
 
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueXavier Callens
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Ez18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellEz18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellgdigugli
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDotNetHub
 
[STLS] tests de performance coherenSE
[STLS] tests de performance coherenSE[STLS] tests de performance coherenSE
[STLS] tests de performance coherenSEMarc Hage Chahine
 

Similaire à Support formation vidéo :Programmer C#6, Préparation à la certification MCSD 70-483, Partie 2 (1) (20)

Linq Tech Days08 Lux
Linq Tech Days08 LuxLinq Tech Days08 Lux
Linq Tech Days08 Lux
 
Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...
Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...
Support formation vidéo :Programmer C#6, Préparation à la certification MCSD ...
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
 
Roslyn
RoslynRoslyn
Roslyn
 
2008-10-02 Paris - Intégrer tout type de Données
2008-10-02 Paris - Intégrer tout type de Données2008-10-02 Paris - Intégrer tout type de Données
2008-10-02 Paris - Intégrer tout type de Données
 
Vs2008 Linq
Vs2008 LinqVs2008 Linq
Vs2008 Linq
 
Ilearn 2008 Competences en mouvement
Ilearn 2008 Competences en mouvementIlearn 2008 Competences en mouvement
Ilearn 2008 Competences en mouvement
 
Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharp
 
Cyproc formation-programmation-en-langage-c
Cyproc formation-programmation-en-langage-cCyproc formation-programmation-en-langage-c
Cyproc formation-programmation-en-langage-c
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
M10266 formation-programmation-csharp-avec-microsoft-net-framework-4
M10266 formation-programmation-csharp-avec-microsoft-net-framework-4M10266 formation-programmation-csharp-avec-microsoft-net-framework-4
M10266 formation-programmation-csharp-avec-microsoft-net-framework-4
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continueOmnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Ez18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshellEz18n Annotation Processing Tool in a nutshell
Ez18n Annotation Processing Tool in a nutshell
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCL
 
[STLS] tests de performance coherenSE
[STLS] tests de performance coherenSE[STLS] tests de performance coherenSE
[STLS] tests de performance coherenSE
 

Plus de SmartnSkilled

Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?SmartnSkilled
 
Support cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISupport cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISmartnSkilled
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSmartnSkilled
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSmartnSkilled
 
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSupport formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSmartnSkilled
 
Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?SmartnSkilled
 
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISupport formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISmartnSkilled
 
Support cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSupport cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSmartnSkilled
 
Support cours : Les phares du marketing
Support cours : Les phares du marketingSupport cours : Les phares du marketing
Support cours : Les phares du marketingSmartnSkilled
 
Support formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSupport formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSmartnSkilled
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSmartnSkilled
 
Tutoriel : Online English Expertise
Tutoriel : Online English ExpertiseTutoriel : Online English Expertise
Tutoriel : Online English ExpertiseSmartnSkilled
 
Formation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeFormation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeSmartnSkilled
 
Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)SmartnSkilled
 
Support cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASupport cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASmartnSkilled
 
Support Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSupport Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSmartnSkilled
 
Support formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSupport formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSmartnSkilled
 
Support Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSupport Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSmartnSkilled
 
Support formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSupport formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSmartnSkilled
 
Support formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSupport formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSmartnSkilled
 

Plus de SmartnSkilled (20)

Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?
 
Support cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISupport cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie II
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERP
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec Docker
 
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSupport formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
 
Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?
 
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISupport formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
 
Support cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSupport cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnels
 
Support cours : Les phares du marketing
Support cours : Les phares du marketingSupport cours : Les phares du marketing
Support cours : Les phares du marketing
 
Support formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSupport formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeur
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERP
 
Tutoriel : Online English Expertise
Tutoriel : Online English ExpertiseTutoriel : Online English Expertise
Tutoriel : Online English Expertise
 
Formation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeFormation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commerciale
 
Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)
 
Support cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASupport cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASA
 
Support Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSupport Tutoriel : Online English Expertise
Support Tutoriel : Online English Expertise
 
Support formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSupport formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiques
 
Support Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSupport Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en public
 
Support formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSupport formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soi
 
Support formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSupport formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketing
 

Dernier

Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Pedago Lu
 
Présentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en AlgériePrésentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en AlgérieSeifTech
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesSOLIANAEvelyne
 
Gestion des flux de trésorerie dans les entreprises
Gestion des flux de trésorerie dans les entreprisesGestion des flux de trésorerie dans les entreprises
Gestion des flux de trésorerie dans les entreprisesHamdConseil
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?sashaflor182
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptxTxaruka
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...zidani2
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024frizzole
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Technologia Formation
 
Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"tachakourtzineb
 
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptxMARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptxMartin M Flynn
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsTechnologia Formation
 

Dernier (12)

Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
 
Présentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en AlgériePrésentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en Algérie
 
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
 
Gestion des flux de trésorerie dans les entreprises
Gestion des flux de trésorerie dans les entreprisesGestion des flux de trésorerie dans les entreprises
Gestion des flux de trésorerie dans les entreprises
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
Decret-n°19-10-du-23-janvier-2019-reglementant-lexportation-des-déchets-spéci...
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"
 
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptxMARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
MARTYRS DE TURQUIE – une histoire de persécution chrétienne en Anatolie.pptx
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctions
 

Support formation vidéo :Programmer C#6, Préparation à la certification MCSD 70-483, Partie 2 (1)

  • 1. Préparation de la certification MCSD 70-483: Programmer en C# Formation MCSD C# 2ème Partie Béchir BEJAOUI Formateur et consultant indépendant Présentation de la deuxième partie de la formation
  • 2. Préparation de la certification MCSD 70-483: Programmer en C# Présentation formateur Mail: bejaouibpro@gmail.com Linked-In: https://tn.linkedin.com/in/bejaoui-06b2452b Microsoft Certified Professional .Net 3.5 Applications distribuées SQL Server Business Intelligence Application Live Management Cycle
  • 3. Préparation de la certification MCSD 70-483: Programmer en C# Le plan de la formation
  • 4. Préparation de la certification MCSD 70-483: Programmer en C# Le plan de la formation Flux de programmesPrésentation & utilisation des types Accès aux donnéesTechniques de débogage & sécurisation
  • 5. Préparation de la certification MCSD 70-483: Programmer en C# Le plan de la formation Présentation & utilisation des types Création & consommation de types Application des principes orientés objet Création et mise en œuvre d'une hiérarchie d’objets La programmation dynamique et la réflexion Gestion du cycle de vie d'un objet
  • 6. Préparation de la certification MCSD 70-483: Programmer en C# Le plan de la formation Mise en œuvre du flux de programme Mise en œuvre de la gestion des exceptions Gestion du multithreading et la programmation asynchrone Création et mise en œuvre des événements Flux de programmes
  • 7. Préparation de la certification MCSD 70-483: Programmer en C# Le plan de la formation La gestion des assemblées La validation des entrées de données Le diagnostic de l’application Le cryptage/décryptage des données Techniques de débogage & sécurisation
  • 8. Préparation de la certification MCSD 70-483: Programmer en C# Le plan de la formation Exécution des opérations des Entrées/Sorties La couche applicative d’accès aux données LINQ Manipulation des chaînes et des collections Accès aux données La couche applicative d’accès aux données ADO.NET La sérialisation/déserialisation des données
  • 9. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Présentation de la deuxième partie de formation MCSD programmer en C# MS 70-483
  • 10. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Techniques de validation Les expression régulières
  • 11. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Une expression régulière est une chaine de caractères qui précise les spécifications d’un groupe de chaînes de caractères Exemple: Les techniques de validations –Les expressions régulières Présentation 1 Les patterns 2 Regex 3 RegexOptions 4  Les emails et les liens hypertexte  Les téléphones  Les adresses et les codes postaux Exemples d’expressions régulières
  • 12. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les Regex utilisent une syntaxe spécifique pour valider et manipuler les chaines de caractères: Symbole Correspondance Exemple ^ Début de ligne ^a$  a $ Fin de ligne r$ bechir + 1 fois ou plus ^(a)+  a aaaaa n fois ? 0 ou 1 fois ^(a)?  abc bac cab cba * 0 fois ou plus ^(a)*  aabc baac caaab cbaaaa bc | Alternative ^(b|B) bechir Bechir . N'importe quel caractère ^.$  a b c d [^] Tout sauf un ensemble de caractères ^[^a]  bechir ( ) Groupement ^((a)|(er))  area era Caractère d'échappement [.]  "." Les techniques de validations –Les expressions régulières Présentation 1 Les patterns 2 Regex 3 RegexOptions 4
  • 13. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les Regex utilisent une syntaxe spécifique pour valider et manipuler les chaines de caractères: Symbole Correspondance Exemple n Caractère de nouvelle ligne r Caractère de retour à la ligne t Caractère de tabulation s Caractère d'espacement [fnrtv] S Non espacement [^fnrtv] d Numérique [0-9] D Non numérique [^0-9] Les techniques de validations –Les expressions régulières Présentation 1 Les patterns 2 Regex 3 RegexOptions 4
  • 14. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les Regex utilisent une syntaxe spécifique pour valider et manipuler les chaines de caractères: Symbole Correspondance Exemple w Un caractère alphanumérique [a-zA-Z0-9_] W Tout sauf un caractère alphanumérique @$§! xn Caractère en hexadécimal x41 A {x} x fois exactement a{2}  aa {x,} x fois au moins a{2,}  aa ou aaa ou aaaa {x, y} x fois minimum, y maximum a{2,4}  aa ou aaa ou aaaa Les techniques de validations –Les expressions régulières Présentation 1 Les patterns 2 Regex 3 RegexOptions 4
  • 15. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les principaux membres de la classe Regex Méthodes Description IsMatch(String) Indique si l'expression régulière spécifiée correspond à la chaîne d'entrée spécifiée Match(String) Recherche dans la chaîne d'entrée spécifiée la première occurrence d'une expression régulière Matches(String) Recherche dans la chaîne d'entrée spécifiée toutes les occurrences d'une expression régulière Replace(String, String) Remplace toutes les chaînes qui correspondent à un modèle, dans une chaîne d’entrée spécifiée Split(String) Fractionne une chaîne d’entrée en un tableau de sous-chaînes aux positions définies Les techniques de validations –Les expressions régulières Présentation 1 Les patterns 2 Regex 3 RegexOptions 4
  • 16. Préparation de la certification MCSD 70-483: Programmer en C# ❖ L’énumération RegexOptions Membres Description None = 0 Pas d’options IgnoreCase = 1 La sensibilité à la casse n’est pas obligatoire Multiline = 2 Une chaine multi lignes ExplicitCapture = 4 Spécification que seulement les captures valides sont explicitement nommés ou énumérés dans des groupes Compiled = 8 Spécifie que l’expression est compilée dans une assemblée Singleline = 16 Une chaine à une seule ligne IgnorePatternWhitespace = 32 Elimine les espaces et les commentaires précédées par # RightToLeft = 64 Spécifie que l’orientation est de droite vers gauche pour le cas des langues comme l’arabe et le hébreu CultureInvariant = 512 Spécifie que la culture du langage est ignorée ECMAScript = 256 Active le comportement ECMAScript-compliant Les techniques de validations –Les expressions régulières Présentation 1 Les patterns 2 Regex 3 RegexOptions 4
  • 17. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Quelques remarques sur énumération RegexOptions  Pour le cas de option Compiled, l’expression sera générée une seule fois lors de sa initialisation  Emascript-compliant est un ensemble de normes que les langages doivent accepter  Pour le cas de Emascript, il faut utiliser cette option en conjonction avec les options IgnoreCase, Multiline et Compiled  Au cas du non respect de la règle, il aura une levée d’exception Les techniques de validations –Les expressions régulières Présentation 1 Les patterns 2 Regex 3 RegexOptions 4
  • 18. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de validations – les expressions régulières
  • 19. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Techniques de validation Les expression régulières Partie II
  • 20. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les classes Les techniques de validations –Les expressions régulières Match 2 MatchCollection 3 RegexCompilationInfo 4  Match  MatchCollection  RegexCompilationInfo Plan 1
  • 21. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les principaux membres de la classe Match Propriétés Description Captures Obtient une collection de 0 à toutes les captures correspondantes Empty Toutes les correspondances infructueuses retournent cette correspondance vide Groups Obtient une collection de groupes correspondant à l’expression régulière Index Position dans la chaîne d’origine où se trouve le premier caractère de la sous-chaîne capturée Name Retourne le nom du groupe de capture représenté par l’instance actuelle Succès Obtient une valeur indiquant si la correspondance est réussie Value Obtient la sous-chaîne capturée à partir de la chaîne d’entrée Length Obtient la longueur de la sous-chaîne capturée Les techniques de validations –Les expressions régulières Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 22. Préparation de la certification MCSD 70-483: Programmer en C# Méthodes Description NextMatch() Retourne un nouvel objet Match avec les résultats de la correspondance suivante Result(String) Retourne le résultat du modèle de remplacement spécifié Synchronized(Match) Retourne une instance de Match équivalente à celle qui est fournie Les techniques de validations –Les expressions régulières ❖ Les principaux membres de la classe Match Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 23. Préparation de la certification MCSD 70-483: Programmer en C# Propriétés Description Count Obtient le nombre de correspondances IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule item[Int32] Obtient une valeur indiquant si l’accès à la collection est synchronisé IsSynchronized Obtient un membre de la collection SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection Les techniques de validations –Les expressions régulières Match 2 MatchCollection 3 RegexCompilationInfo 4 ❖ Les principaux propriétés de la classe MatchCollection Plan 1
  • 24. Préparation de la certification MCSD 70-483: Programmer en C# Propriétés Description Count Obtient le nombre de correspondances IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule item[Int32] Obtient une valeur indiquant si l’accès à la collection est synchronisé IsSynchronized Obtient un membre de la collection SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection Les techniques de validations –Les expressions régulières ❖ Les principaux propriétés de la classe MatchCollection Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 25. Préparation de la certification MCSD 70-483: Programmer en C# Propriétés Description Count Obtient le nombre de correspondances IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule item[Int32] Obtient une valeur indiquant si l’accès à la collection est synchronisé IsSynchronized Obtient un membre de la collection SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection Les techniques de validations –Les expressions régulières ❖ Les principaux propriétés de la classe RegexCompilationInfo ❖ La classe RegexCompilationInfo est essentiellement utilisée pour compiler les expressions régulières dans des assemblées Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 26. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –Les expressions régulières ❖ Exemple de compilation des expressions régulières dans des assemblées Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 27. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de validations – les expressions régulières
  • 28. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Techniques de validation Les expression régulières Partie II
  • 29. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les classes Les techniques de validations –Les expressions régulières Match 2 MatchCollection 3 RegexCompilationInfo 4  Match  MatchCollection  RegexCompilationInfo Plan 1
  • 30. Préparation de la certification MCSD 70-483: Programmer en C# ❖ Les principaux membres de la classe Match Propriétés Description Captures Obtient une collection de 0 à toutes les captures correspondantes Empty Toutes les correspondances infructueuses retournent cette correspondance vide Groups Obtient une collection de groupes correspondant à l’expression régulière Index Position dans la chaîne d’origine où se trouve le premier caractère de la sous-chaîne capturée Name Retourne le nom du groupe de capture représenté par l’instance actuelle Succès Obtient une valeur indiquant si la correspondance est réussie Value Obtient la sous-chaîne capturée à partir de la chaîne d’entrée Length Obtient la longueur de la sous-chaîne capturée Les techniques de validations –Les expressions régulières Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 31. Préparation de la certification MCSD 70-483: Programmer en C# Méthodes Description NextMatch() Retourne un nouvel objet Match avec les résultats de la correspondance suivante Result(String) Retourne le résultat du modèle de remplacement spécifié Synchronized(Match) Retourne une instance de Match équivalente à celle qui est fournie Les techniques de validations –Les expressions régulières ❖ Les principaux membres de la classe Match Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 32. Préparation de la certification MCSD 70-483: Programmer en C# Propriétés Description Count Obtient le nombre de correspondances IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule item[Int32] Obtient une valeur indiquant si l’accès à la collection est synchronisé IsSynchronized Obtient un membre de la collection SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection Les techniques de validations –Les expressions régulières Match 2 MatchCollection 3 RegexCompilationInfo 4 ❖ Les principaux propriétés de la classe MatchCollection Plan 1
  • 33. Préparation de la certification MCSD 70-483: Programmer en C# Propriétés Description Count Obtient le nombre de correspondances IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule item[Int32] Obtient une valeur indiquant si l’accès à la collection est synchronisé IsSynchronized Obtient un membre de la collection SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection Les techniques de validations –Les expressions régulières ❖ Les principaux propriétés de la classe MatchCollection Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 34. Préparation de la certification MCSD 70-483: Programmer en C# Propriétés Description Count Obtient le nombre de correspondances IsReadOnly Obtient une valeur qui indique si la collection est en lecture seule item[Int32] Obtient une valeur indiquant si l’accès à la collection est synchronisé IsSynchronized Obtient un membre de la collection SyncRoot Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection Les techniques de validations –Les expressions régulières ❖ Les principaux propriétés de la classe RegexCompilationInfo ❖ La classe RegexCompilationInfo est essentiellement utilisée pour compiler les expressions régulières dans des assemblées Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 35. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –Les expressions régulières ❖ Exemple de compilation des expressions régulières dans des assemblées Match 2 MatchCollection 3 RegexCompilationInfo 4 Plan 1
  • 36. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de validations – les expressions régulières
  • 37. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La globalisation
  • 38. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La globalisation Un petit exemple 3 La classe CultureInfo 2 ❖ La Classe CultureInfoPrésentation 1 ❖ Un petit exemple de validation de format UTC de date
  • 39. Préparation de la certification MCSD 70-483: Programmer en C# Propriétés Description DisplayName Obtient le nom localisé complet de la culture LCID Obtient l'identificateur de culture pour l'élément CultureInfoactuel Name Obtient le nom de la culture au format code_langue-code_région/pays Parent Obtient l'élément CultureInfo qui représente la culture parente de l'élément CultureInfo actuel TextInfo Obtient l'élément TextInfo qui définit le système d'écriture associé à la culture IsReadOnly Obtient une valeur indiquant si l'élément CultureInfo actuel est en lecture seule InvariantCulture Obtient l'objet CultureInfo qui est indépendant de la culture CurrentCulture Obtient ou définit l'objet CultureInfo qui représente la culture d'interface utilisateur actuelle Les techniques de validations –La globalisation Un petit exemple 3 La classe CultureInfo 2 ❖ La CultureInfo classe fournit des informations spécifiques à la culture, telles que la langue, sous-langue, pays/région, calendrier et des conventions associées à une culture particulière Présentation 1
  • 40. Préparation de la certification MCSD 70-483: Programmer en C# Méthodes Description ClearCachedData() Actualise les informations sur la culture mises en cache Clone() Crée une copie de l'élément CultureInfo actuel ReadOnly(CultureInfo) Retourne un wrapper en lecture seule autour de l'objetCultureInfo spécifié GetCultures(CultureTypes) Obtient la liste des cultures prises en charge filtrées selon le paramètre CultureTypes spécifié GetCultureInfo(String) Récupère une instance mise en cache et en lecture seule d'une culture en utilisant le nom de culture spécifié CreateSpecificCulture(String) Crée un élément CultureInfo qui représente la culture spécifique associée au nom spécifié Les techniques de validations –La globalisation ❖ La CultureInfo classe fournit des informations spécifiques à la culture, telles que la langue, sous-langue, pays/région, calendrier et des conventions associées à une culture particulière Un petit exemple 3 La classe CultureInfo 2 Présentation 1
  • 41. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La globalisation Exemple de validation de date selon le format UTC Un petit exemple 3 La classe CultureInfo 2 Présentation 1
  • 42. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de validations – la globalisation
  • 43. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La validation des entrées Partie I
  • 44. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La validation des entrées ❖ La validation des chaines de caractèresLe plan 1 ❖ Les fonctions d’analyse des entrées ❖ Les exceptions en relation avec les validations ❖ La validation est l’aspect sécurité 2 Les chaînes
  • 45. Préparation de la certification MCSD 70-483: Programmer en C# Méthodes Description Contains Renvoie true si la chaîne contient une sous-chaîne spécifiée EndsWith Renvoie true si la chaîne se termine par une sous-chaîne spécifiée IndexOf Renvoie l'emplacement d'une sous-chaîne spécifiée dans la chaîne IndexOfAny Renvoie l'emplacement d'un ensemble de caractères spécifié dans la chaîne IsNullOrEmpty Renvoie true si la chaîne est nulle ou vide IsNullOrWhitespace Renvoie true si la chaîne est nulle, vide ou contient des espaces StartsWith Renvoie true si la chaîne commence par une sous-chaîne spécifiée Les techniques de validations –La validation des entrées ❖ Au niveau de la classe String, il y a des méthodes qui permettent d’effectuer des opérations de validationLe plan 1 2 Les chaînes
  • 46. Préparation de la certification MCSD 70-483: Programmer en C# Méthodes Description ToLower Retourne la chaîne convertie en minuscules ToUpper Renvoie la chaîne convertie en majuscule Trim Renvoie une chaine sans espaces Remove Supprime les caractères de la chaîne Replace Remplace les instances d'un caractère ou d'une sous-chaîne par une nouvelle valeur Split Retourne un tableau de chaines divisées selon des critères Les techniques de validations –La validation des entrées ❖ Au niveau de la classe String, il y a des méthodes qui permettent d’effectuer des opérations de validationLe plan 1 2 Les chaînes
  • 47. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de validations – La validation des entrées
  • 48. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La validation des entrées Partie II
  • 49. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La validation des entrées ❖ La validation des chaines de caractèresLe plan 1 ❖ Les fonctions d’analyse des entrées ❖ Les exceptions en relation avec les validations ❖ La validation est l’aspect sécurité 2 Analyse fonctionnelle
  • 50. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La validation des entrées ❖ L’analyse fonctionnelle peut se présenter sur deux niveaux ❖ Il existe plusieurs techniques pour implémenter une analyse fonctionnelle  La méthode Parse  La méthode TryParse  L’implémentation de l’interface IFormattable  L’implémentation de l’interface IFormatProvider  Intercepte l’entrée des utilisateurs pour les analyser, les valider avant de les passer vers le traitement  Formate et convertis les données avant de les passer au traitements Le plan 1 2 Analyse fonctionnelle
  • 51. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de validations – La validation des entrées
  • 52. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La validation des entrées Partie III
  • 53. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La validation des entrées ❖ La validation des chaines ❖ Les fonctions d’analyse des entrées ❖ Les exceptions en relation avec les validations ❖ La validation est l’aspect sécurité Le plan 1 Validation & sécurité 3 Les exceptions 2
  • 54. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La validation des entrées ❖ Les exceptions qui aident dans les opérations de validationLe plan 1 Validation & sécurité 3  ArgumentException  ArgumentNullException  ArgumentOutOfRangeException  DivideByZeroException  NullReferenceException Les exceptions 2
  • 55. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de validations –La validation des entrées ❖ La validation peut être cruciale dans certains cas exemple la protection contre les injections SQL Exemple de commande vulnérable Exemple de requête ordinaire Exemple d’injection SQL Le plan 1 Validation & sécurité 3 Les exceptions 2
  • 56. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de validations – La validation des entrées
  • 57. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage Introduction
  • 58. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1 ❖ Les instruments de débogages se divisent en deux catégories principales  L’ensemble d’instruments visuels offerts par Visual Studio  Les ressources prédéfinies offertes par .Net Framework, l’espace nom System.Diagnostics
  • 59. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction Les points d’arrêts Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1
  • 60. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction ❖ L’ensemble d’instruments visuels offerts par Visual Studio Les fenêtres de débogage Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1
  • 61. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction ❖ L’ensemble d’instruments visuels offerts par Visual Studio Les fenêtres de débogage Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1
  • 62. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction ❖ L’ensemble d’instruments visuels offerts par Visual Studio Les fenêtres de débogage Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1
  • 63. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction ❖ L’ensemble d’instruments visuels offerts par Visual Studio Les fenêtres de débogage Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1
  • 64. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction Le menu de débogage Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1
  • 65. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage-Introduction Les datatips Points d’arrêts 2 Fenêtres débogage 3 Menu débogage 4 Présentation 1
  • 66. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-Introduction
  • 67. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie I
  • 68. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages, les utilitaires  Debug 1 Utilitaires 2 Présentation  Debugger  Trace  EvenLog  StopWatch  StackFrame/StackTrace
  • 69. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace nom System.Diagnostics  Les classes utilitaires Debug TraceDebugger EventLog StopWatch StackFrame StackTrace Utilitaires 2 Présentation 1
  • 70. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ La différence entre les classes Debug et Trace La classe de Debug fonctionne uniquement en mode Debug La classe Trace fonctionne en mode Debug et Release La classe de Debug est utilisée pour les tests et l'optimisation en mode Debug La classe de Trace est utilisée pour les tests et l'optimisation après la phase Release Debug s’exécute dans le Thread principal Trace s’exécute dans un Thread séparé Utilitaires 2 Présentation 1
  • 71. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System. Diagnostics
  • 72. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie II
  • 73. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages, les utilitaires  Debug 1 Utilitaires 2 Présentation  Debugger  Trace  EvenLog  StopWatch  StackFrame/StackTrace
  • 74. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace nom System.Diagnostics  Les classes utilitaires Debug TraceDebugger EventLog StopWatch StackFrame StackTrace Utilitaires 2 Présentation 1
  • 75. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 76. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie III
  • 77. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages les Listeners  Par défaut 1 Listeners 2 Présentation  Texte  XML  Liste délimitée  Console  Personnalisé
  • 78. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace nom System.Diagnostics TraceListener DefaultTraceListener ConsoleTraceListener EventLogTraceListener TextWriterTraceListener XmlWriterTraceListener DelimitedListTraceListener 2 Listeners Présentation 1
  • 79. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Il est possible de créer son propre Listener personnalisé en héritant de la classe TraceListener TraceListener JasonTraceListener 2 Listeners Présentation 1
  • 80. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 81. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie IV
  • 82. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages  Les Switch offert par .Net Framework 1  Les implémentations de Switch personnalisées Présentation 1 Switches 2 Boolean Switch 3 Trace Switch 4 Switch Personnalisé 5  Définir les Switch
  • 83. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Présentation 1 ❖ Un Switch est un moyen de contrôler la sortie de débogage au moment de l'exécution à l'aide de divers paramètres Switches 2 SourceSwitch TraceSwitch BooleanSwitch ❖ La classe SourceSwitch est la classe de base de tout les Switch ❖ Le .Net Framework offre deux implémentations de cette classe Boolean Switch 3 Trace Switch 4 Switch Personnalisé 5
  • 84. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Présentation 1 ❖ Le Boolean Switch est la forme la plus simple des Switches ❖ Généralement le paramétrage de Switch se fait au niveau du fichier de configuration Switches 2 Boolean Switch 3 Trace Switch 4 Switch Personnalisé 5 Configuration du Boolean Switch
  • 85. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Présentation 1 ❖ Le Boolean Switch sera très utile lorsque le code n’est pas accessible Switches 2 Boolean Switch 3 Trace Switch 4 Switch Personnalisé 5 ❖ Le flux d’exécution sera contrôlé via le fichier de configuration à travers la configuration du Switch Exemple de technique de contrôle de flux
  • 86. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Présentation 1 ❖ La configuration de Trace Switch est plus détaillée Switches 2 Boolean Switch 3 Trace Switch 4 Switch Personnalisé 5 Configuration du Trace Switch ❖ A la différence du Boolean Switch, le Trace Switch encapsule des niveaux d’informations pour contrôler les sorties
  • 87. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Présentation 1 Switches 2 Boolean Switch 3 Trace Switch 4 Switch Personnalisé 5 ❖ Le flux d’exécution sera contrôlé via le fichier de configuration à travers la configuration du Switch Exemple de technique de contrôle de flux
  • 88. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Présentation 1 Switches 2 Boolean Switch 3 Trace Switch 4 Switch Personnalisé 5 ❖ Parfois le Boolean Switch et le Trace Switch ne comblent pas un besoin spécifique dans ce cas nous définissons un Switch personnalisé Exemple de technique de contrôle de flux
  • 89. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 90. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie V
  • 91. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages les sources de trace 1 Présentation Filters 2 3 Trace Source 4  Définition les Filtres de traces Les types de Listeners  Les Listeners vs Listeners partagés  Définition des sources  La classe TraceSource en action
  • 92. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics 1 Présentation Filters 2 3 Trace Source 4 Les types de Listeners Switch Source Listener Filter Couche 1 Couche 2 Couche 3 Application
  • 93. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics 1 Présentation Filters 2 3 4 Les types de Listeners Couche 1 Couche 2 Couche 3 Application Trace Source
  • 94. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Un filtre de trace est un moyen de contrôler les niveaux des messages affichés dans un contexte de débogage TraceFilter EventTypeFilter ❖ La classe TraceFilter est la classe de base de tout les filtres de trace ❖ Le .Net Framework offre deux implémentations de cette classe SourceFilter 1 Présentation Filters 2 3 Les types de Listeners 4 Trace Source
  • 95. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Les niveaux d’alertes des messages ❖ EventTypeFilter filtre les messages issus des Listeners sur la base des niveaux 1 Présentation Filters 2 3 Les types de Listeners ❖ EventTypeFilter est définit essentiellement dans le fichier de configuration 4 Trace Source
  • 96. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Exemple de définition de source via le code ❖ SourceFilter est utilisé essentiellement dans le code ❖ Il faut que la source soit définie est identifiée exactement par le même nom au niveau du fichier de configuration pour ne pas causer la levée d’une exception de configuration 1 Présentation Filters 2 3 Les types de Listeners ❖ SourceFilter est utilisé pour filtrer les sources lorsqu’il s’agit de plusieurs sources d’une manière dynamique 4 Trace Source
  • 97. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics 1 Présentation Filters 2 3 Les types de Listeners Listener partagéListener 4 Trace Source
  • 98. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics 1 Présentation Filters 2 3 Les types de Listeners Exemple de définition de source Ajout de Source Ajout de Listener Pointage vers Listener partagé Suppression Listener Configuration de niveau 4 Trace Source
  • 99. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Exemples de définition de Listeners Ajout de Listener partagé Ajout de Listener non partagé 1 Présentation Filters 2 3 Les types de Listeners 4 Trace Source
  • 100. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Utilisation de Listener dans le code 1 Présentation Filters 2 3 Les types de Listeners 4 Trace Source ❖ Utilisation de Trace Source pour lancer une activité d’écoute
  • 101. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Utilisation de Listener partagé dans le code 1 Présentation Filters 2 3 Les types de Listeners 4 Trace Source ❖ Utilisation de Trace pour lancer une activité d’écoute
  • 102. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 103. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie VI
  • 104. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages les sources de trace 1 Présentation Filters 2 3 Trace Source 4  Définition les Filtres de traces Les types de Listeners  Les Listeners vs Listeners partagés  Définition des sources  La classe TraceSource en action
  • 105. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 106. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie VII
  • 107. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages les attributs  Les classes attributs Attributs 2 Présentation 1
  • 108. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Attributs 2 Présentation 1 ❖ Des classes attributs Conditional DebuggerBrowsableDebuggable DebuggerHidden DebuggerNonUserCode DebuggerDisplay DebuggerStepThrough DebuggerStepperBoundary
  • 109. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 110. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie VIII
  • 111. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ Les instruments de débogages les attributs  Les classes attributs Attributs 2 Présentation 1
  • 112. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics Attributs 2 Présentation 1 ❖ Des classes attributs Conditional DebuggerBrowsableDebuggable DebuggerHidden DebuggerNonUserCode DebuggerDisplay DebuggerStepThrough DebuggerStepperBoundary DebuggerTypeProxy DebuggerVisualiser
  • 113. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 114. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie IX
  • 115. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace nom System.Diagnostics  Des compteurs de performance PerformanceCounter PerformanceCounterCategory Performance 2 Présentation 1 CounterCreationData CounterCreationDataCollection
  • 116. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 117. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage System.Diagnostics Partie X
  • 118. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- System.Diagnostics ❖ L’ensemble d’instruments fournit par .Net Framework à travers l’espace nom System.Diagnostics  Des classes Process Process ProcessModule ProcessStartInfo ProcessThread ProcessModuleCollection ProcessThreadCollection 2 Process Présentation 1
  • 119. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-System.Diagnostics
  • 120. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Les techniques de débogage Les directives
  • 121. Préparation de la certification MCSD 70-483: Programmer en C# Les techniques de débogage- Les directives Les directives 1 ❖ Les directives du préprocesseur indiquent au compilateur C# comment traiter les segments de code ❖ Les directives peuvent conditionner la compilation et le flux d’exécution ❖ Dans ce cas il faut définir des symboles à utiliser dans la gestion du code compilé  #define and #undef  #if, #elif, #else, and #endif  #warning and #error  #line hiden/default/numéro  #region and #endregion  #pragma warning/checksum ❖ Exemples de directives:
  • 122. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les techniques de débogage-Les directives
  • 123. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La gestion des assemblées Introduction
  • 124. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées-Introduction ❖ Une Assemblée est un fichier portable qui contient une partie compilée du code ❖ Contrairement à l'environnement java, où il n'existe qu'un seul type d’assemblée le fichier * .JAR, la plate-forme .NET fournit deux types d'assemblages:  Les fichiers exécutables * .exe  Les fichiers de bibliothèque * .dll ❖ Par analogie un espace nom est un conteneur logique du code, cependant une assemblé est un conteneur physique du code ❖ Une assemblée est composée au moins d’un module qui peut contenir d’autres modules, les modules à leurs tour contiennent le code Avantages 2 Génération 3 Structure 4 Présentation 1
  • 125. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées-Introduction Avantages 2 Génération 3 Structure 4 Présentation 1 Versioning: Regroupe les modules qui doivent avoir les mêmes informations de version Déploiement: Regroupe les modules de code et les ressources qui prennent en charge le modèle de déploiement Réutilisation: Regroupe les modules s’ils peuvent être logiquement utilisés ensemble dans le même but ou partagés ou même exportés Sécurité: Regroupe les modules contenant des types qui nécessitent les mêmes autorisations de sécurité
  • 126. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées-Introduction Le code source Le code MSIL Le langage machine Etapes de génération des assemblées Avantages 2 Génération 3 Structure 4 Présentation 1
  • 127. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées-Introduction La structure des assemblées Assemblées *.exe,*.dll Les espaces noms Les espaces noms Les modules *.netmodule Les types *.cs Les modules *.netmodule Avantages 2 Génération 3 Structure 4 Présentation 1
  • 128. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées-Introduction ❖ Les principales différences entre une assemblé et un module sont: Avantages 2 Génération 3 Structure 4 Présentation 1  Un module ne peut pas être appelé par le code comme pour le cas d’une assemblée  Un module de point de vue structure rassemble à une assemblée mais sans attributs d’assemblé  Les modules sont utilisés pour accélérer démarrage des assemblages vu que tous les types ne situent pas dans un seul fichier  Les modules sont utilisés également dans le cas d’utilisation de plusieurs langages .Net au sein du même assemblée
  • 129. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées-Introduction ❖ Une assemblée peut être présentée sous deux formes: Avantages 2 Génération 3 Structure 4 Présentation 1 ❖ Un seul fichier ❖ Plusieurs fichiers ❖ Une assemblée présentée en mode multifichier est un ensemble de modules .NET déployés et versionnés en une seule unité ❖ Le module principal contient un manifeste principal de l'assemblée et les modules secondaires ont une extension * .netmodule contenant un manifeste niveau module ❖ Le principal avantage d'une assemblée en mode multifichiers est qu‘elle fournisse un niveau de performance plus optimisé
  • 130. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées-Introduction Avantages 2 Génération 3 Structure 4 Présentation 1 Assemblée CIL Entête CLR Métadonnées Entête Windows Manifest Ressources Les composants d’une assemblée
  • 131. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La gestion des assemblées-introduction
  • 132. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La gestion des assemblées La manipulation des assemblées Partie I
  • 133. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées Assembly 2 AssemblyName 3 Présentation 1 ❖ La classe Assembly est la principale classe responsable de créer et de gérer les assemblées d’une manière dynamique à travers le code ❖ La classe AssemblyName est une classe utilisée pour collecter des informations sur une assemblée donnée Freinds 4 ❖ On désigne par les assemblées Freinds, les assemblées dont le code interne est visible au niveau de l’assemblée de référence
  • 134. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées ❖ La classe Assembly : Propriétés Description DefinedTypes Obtient une collection des types définis dans une assemblée EntryPoint Obtient le point d'entrée d’une assemblée Location Obtient le chemin d'accès complet ou l'emplacement UNC du fichier chargé qui contient le manifeste IsDynamic Obtient une valeur qui indique si l’assemblée actuelle a été générée dynamiquement dans le processus courant ReflectionOnly Obtient une valeur Boolean indiquant si cet assemblée a été chargée dans le contexte de réflexion uniquement SecurityRuleSet Obtient une valeur qui indique détermine l’ensemble de règles de sécurité PermissionSet Obtient le jeu accordé de l'assemblée actuelle IsFullyTrusted Obtient une valeur qui indique si l'assemblée actuelle est chargée avec une confiance totale ImageRuntimeVersion Obtient une représentation sous forme de chaîne de la version du Common Language Runtime (CLR) Assembly 2 AssemblyName 3 Présentation 1 Freinds 4
  • 135. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées ❖ La classe Assembly : Méthodes Description CreateInstance() Recherche le type spécifié dans cet assemblée et en crée une instance GetAssembly() Obtient l’assemblée actuellement chargée GetEntryAssembly() Obtient l'exécutable du processus dans le domaine d'application par défaut GetExecutingAssembly() Obtient l'assemblée qui contient le code en cours d'exécution GetName() Obtient AssemblyName pour cet assemblée GetTypes() Obtient les types définis dans cet assemblée GetExportedTypes() Obtient les types publics définis dans cet assemblée qui sont visibles à l'extérieur Assembly 2 AssemblyName 3 Présentation 1 Freinds 4
  • 136. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées ❖ La classe Assembly : Méthodes Description Load() Charge une assemblée LoadFile() Charge le contenu d'une d'assemblée sur le chemin d'accès spécifié LoadFrom() Charge une assemblée en fonction de son nom de fichier ReflectionOnlyLoad() L'assemblée est chargée dans le contexte de réflexion uniquement du domaine d'application de l'appelant ReflectionOnlyLoadFr om() Charge une assemblée dans le contexte de réflexion uniquement, étant donné son chemin d'accès UnsafeLoadFrom(stri ng) Charge une assemblée dans le contexte de chargement, en ignorant des vérifications de sécurité LoadModule() Charge le module, interne qui appartient à cette assemblée Assembly 2 AssemblyName 3 Présentation 1 Freinds 4
  • 137. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées ❖ La classe AssemblyName : Propriétés Description Name Obtient ou définit le nom simple de l’assemblées KeyPair Obtient ou définit la paire de clés cryptographiques publique et privée qui sont utilisées pour créer une signature de nom fort pour les assemblées Version Obtient ou définit le major, minor, build et le numéro de révision de l’assemblées Flags Obtient ou définit les attributs de l’assemblées CultureInfo Obtient ou définit la culture prise en charge par les assemblées CultureName Obtient ou définit le nom de la culture associée aux assemblées ContentType Obtient ou définit une valeur qui indique le type de contenu des assemblées HashAlgorithm Obtient ou définit l’algorithme de hachage utilisé par le manifeste des assemblées Assembly 2 AssemblyName 3 Présentation 1 Freinds 4
  • 138. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées ❖ La classe AssemblyName : Méthodes Description GetAssemblyName(String) Obtient le AssemblyName pour un fichier donné GetPublicKey() Obtient la clé publique de l’assemblée GetType() Obtient le Type de l'instance actuelle SetPublicKey() Définit la clé publique identifiant l’assemblée GetPublicKeyToken() Obtient le jeton de clé publique, qui correspond aux 8 derniers octets du hachage SHA-1 de la clé publique sous laquelle l’application ou l’assemblée est signée Assembly 2 AssemblyName 3 Présentation 1 Freinds 4
  • 139. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées ❖ La définition d’une assemblé freind : Une figure qui montre la visibilité de la méthode interne Assembly 2 AssemblyName 3 Présentation 1 Freinds 4
  • 140. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu La gestion des assemblées – La manipulation des assemblées
  • 141. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La gestion des assemblées La manipulation des assemblées Partie II
  • 142. Préparation de la certification MCSD 70-483: Programmer en C# Les gestion des assemblées- La manipulation des assemblées Assembly 2 AssemblyName 3 Présentation 1 ❖ La génération d’une assemblée exécutable composée d’un seul module Freinds 4 ❖ Création d’un module ❖ La génération d’une assemblée bibliothèque composée d’un seul module ❖ La génération d’une assemblée bibliothèque composée de plusieurs modules ❖ Chargement et test de l’assemblé via la classe Assembly et la réflexion
  • 143. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu La gestion des assemblées – La manipulation des assemblées
  • 144. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant La gestion des assemblées La signature des assemblées
  • 145. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées – La signature des assemblées GAC 2 Installation 3 Présentation 1 Delay Sign 4 ❖ Signer une assemblée veut dire encoder certaines parties de l'assemblée avec une paire de clés publiques / clés privées ❖ La clé publique est intégrée dans l'assemblage et sera utilisée par des tierces parties qui souhaitent référencer l'assemblée ❖ Il existe deux méthodes de signature des assemblées  La signature non tardive  La signature tardive
  • 146. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées – La signature des assemblées ❖ Les assemblées sont essentiellement signées pour être préparées pour qu’elles soient fortement nommées:  Pour des raisons de sécurité  Dans le cas de génération de plusieurs versions d’une assemblée située dans le même emplacement  Pour des raisons de performance  Pour des raisons de stratégies de publication et correction des bugs ❖ Les assemblées fortement nommées sont placées dans un endroit spécial nommé GAC Global Assembly Cache ❖ Le GAC Global Assembly Cache contient déjà les assemblées du .Net Framework GAC 2 Installation 3 Présentation 1  Lorsque une assemblée va être partagée par plusieurs applications Delay Sign 4
  • 147. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées – La signature des assemblées GAC 2 Installation 3 Présentation 1 L’emplacement des assemblées fortement nommées Delay Sign 4
  • 148. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées – La signature des assemblées ❖ Il existe deux manières pour générer une paire de clés de cryptage GAC 2 Installation 3 Présentation 1 Delay Sign 4  Via Visual Studio  A l’aide de l’outil sn.exe ❖ Il existe deux manières pour signer une assemblée  A l’aide de l’outil csc.exe  A l’aide de l’outil al.exe ❖ Il existe quartes manières pour vérifier si une assemblée est signée  Via les propriétés du projet au niveau de Visual Studio  Au niveau du fichier AssemblyInfo « Pas pour toutes les situations  A l’aide de l’outil ILDASM  A l’aide de l’outil SN en utilisant l’option vf
  • 149. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées – La signature des assemblées GAC 2 Installation 3 Présentation 1 Delay Sign 4 ❖ L’installation des assemblées dans le GAC ce fait à travers l’utilitaire gacutil.exe L’outil ligne de commande gacutil.exe
  • 150. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées – La signature des assemblées GAC 2 Installation 3 Présentation 1 Delay Sign 4 ❖ La signature différée fait référence à une technique de signature partielle des assemblées alors qu'elles sont en phase de développement ❖ Le but principal de la signature différée est de permettre à une entreprise de protéger et de contrôler sa clé privée pendant le cycle de développement et de ne l'utiliser que pendant de ce processus ❖ Une assemblée signée différé peut toujours être utilisée comme un assemblage signée, cependant il ne sera pas pratique de la publier sauf si elle est signée d’une façon normale non tardive Configuration de la signature tardive
  • 151. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées – La signature des assemblées GAC 2 Installation 3 Présentation 1 Delay Sign 4 ❖ Pour appliquer une signature tardive à une assemblée il faut suivre 4 étapes 1. Générer la clé publique 2. Compiler l’assemblée avec la définition suivante 3. Utiliser à nouveau l’outil sn.exe sn –Vr MonAssemblée.dll 4. Redémarrer Visual Studio pour éviter le disfonctionnement de l’assemblée
  • 152. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La gestion des assemblées –La signature des assemblées