Passez sûrement votre examen de certification MCSD MS 70-483.
Les objectifs de cette deuxième partie de la formation MCSD Programmer en C# MS 70-483 sont :
1. Techniques de débogage & sécurisation
La validation des entrées de données
Le diagnostic de l’application
La gestion des assemblées
Le cryptage/décryptage des données.
2. L’Accès aux données
Exécution des opérations des Entrées/Sorties
La sérialisation/désérialisation des données
Manipulation des chaînes et des collections
La couche applicative d’accès aux données ADO.NET
La couche applicative d’accès aux données LINQ
Suivez la formation vidéo par ici : https://www.smartnskilled.com/tutoriel/formation-en-ligne-programmer-csharp6-preparation-a-la-certification-mcsd-70-483-partie-2
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