SlideShare une entreprise Scribd logo
1  sur  162
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
Les métadonnées
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Les attributs au niveau de AssemblyInfo.cs sont des valeurs qui
fournissent des informations sur une assemblée donnée
❖ Les attributs sont répartis selon les contextes d’informations
 Les Attributs d’identité de l’assemblée
 Les Attributs d’informations
 Attributs de manifeste de l’assemblée
 Attributs du nom fort
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Les attributs d’identité déterminent l’identité d’une assemblée tel que
le nom, la version et la culture qui servent lors de la génération de
l’assemblée avec l’outil Assembly Linker al.exe
Attribut Description
AssemblyCulture Il désigne la culture que l’assemblée prend en charge
AssemblyVersion Valeur numérique au format version principale . version
secondaire. Build . révision (p. ex. 5.5.0.0). Le Common
Language Runtime CLR utilise cette valeur pour effectuer les
opérations de liaison dans les assemblées avec nom fort
AssemblyFlags Valeur qui définit les attributs d’assemblées
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Les attributs d’informations sont utilisés pour fournir des informations
supplémentaires sur le produit ou la société de l’assemblée
Attribut Description
AssemblyCompany Valeur de chaîne qui spécifie un nom de société
AssemblyCopyright Valeur de chaîne qui spécifie le copyright
AssemblyFileVersion Valeur de chaîne qui spécifie le numéro de version du
fichier Win32 la version de l’assemblée
AssemblyInformationalVersion Valeur de chaîne qui spécifie le numéro de version du
produit complet
AssemblyProduct Valeur de chaîne qui spécifie les informations de produit
AssemblyTrademark Valeur de chaîne qui spécifie les informations de marque
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Les attributs de manifeste de l’assemblée fournissent des informations
y compris le titre, la description, l’alias par défaut et la configuration
Attribut Description
AssemblyConfiguration Valeur de chaîne désignant la configuration de
l’assemblée, comme Retail ou Debug
AssemblyDefaultAlias Cette valeur fournit un nom convivial lorsque le
nom de l’assemblée ne l’est pas
AssemblyDescription Valeur de chaîne désignant une brève description
qui résume la nature et l’objectif de l’assemblée
AssemblyTitle Valeur de chaîne qui spécifie un nom convivial
pour l’assemblée
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Vous pouvez utiliser les attributs de nom fort pour définir un nom
fort pour l’assemblée
Attribut Description
AssemblyKeyName Indique le conteneur de clé qui possède la paire de clés
transmise en tant que paramètre au constructeur de cet
attribut
AssemblyKeyFile Valeur de chaîne qui indique le nom du fichier contenant
soit la clé publique (si la signature différée est utilisée),
soit les clés publiques et privées transmises en tant que
paramètres au constructeur de cet attribut
AssemblyDelaySign Valeur booléenne qui indique que la signature différée est
utilisée ou non
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Un fichier de base de données du programme (.pdb), également appelé
fichier de symboles Program Data base File
❖ Le fichier .pdb mappe
 Les instructions du code source aux instructions d'exécution des
fichiers exécutables
 Les identificateurs créés relatifs aux classes, méthodes et autres
codes aux identificateurs utilisés dans les fichiers exécutables
compilés au niveau du projet
❖ Un fichier de symboles contient des informations sur l'emplacement
d'origine des fichiers sources, les emplacement des points d’arrêts
« BreakPoint » et les positions des symboles définit au niveau du
code
❖ Un fichier pdb est crucial pour les activités de débogage particulières
comme le débogage distant où le code situé en dehors de l’IDE
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Le débogueur cherche les fichiers pdb
 A l’intérieur de l’assemblé
 Au répertoire Bin/Debug ou Bin/Release
 Au répertoires de cache des symboles locaux
 Au niveau des serveurs de symboles au niveau
des réseaux
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Les fichiers WINMD se trouvent dans C:WindowsSystem32
WinMetadata
❖ Les fichiers WINMD ou Windows Meta Data sont des conteneurs de
métadonnée CLR issues du .Net Framework
❖ Les fichiers WINMD sont utilisés pour exposer les API dans un contexte
de Windows Runtime à une variété d’environnement de développement
Windows
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Les fichiers WINMD sont des fichiers conformes au format PE
dérivé du standard COFF
❖ Les fichiers WINMD sont équivalent à des fichiers DLL Win-32
standard qui fournissent des métadonnées aux applications clientes
Affichage du contenu d’un fichier winmd avec dumpbin
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ Lors de la génération de la bibliothèque à exposer elle doit être
compilée en mode Windows Runtime Component pour générer
automatiquement le fichier winmd correspondant
Compilation de la bibliothèque
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des assemblées- Les métadonnées
PDB
2
WINMD
3
AssemblyInfo
1
❖ En suite, il sera possible de consommer le code .Net dans les
applications Windows
Consommation du code .Net dans une
Application JavaScript/HTML5
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La gestion des assemblées- Les métadonnées
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Cryptage des données
Les algorithmes
de cryptage
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes de cryptage
Algo Symétriques
2
Algo Asymétriques
3
Présentation
1
❖ Le cryptage est le processus d'encodage d'une information de manière
à ce que seules les personnes autorisées puissent y accéder
❖ L'information en général présentée en texte clair, est chiffrée à l'aide
d'un algorithme de chiffrement générant un texte crypté qui ne peut
être lu que s'il est déchiffré
❖ Généralement outre que l’algorithme nous utilisons des clés pour
chiffrer et déchiffrer des informations
❖ Il existe trois familles de chiffrements
 Chiffrement symétrique
 Chiffrement asymétrique
 Chiffrement hybride
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes de cryptage
❖ C’est l’identification et la confirmation d’identification
Authentification:
❖ Inspirée d’un mot anglais qui indique la non généralisation de
l’information de façon à ce que elle est détenue au plus par
un seul individu exemple mot de passe
Confidentialité:
❖ Indique aussi la non généralisation de l’information mais avec un
degré moins que la confidentialité exemple dossier d’affaires
Privacité:
❖ C’est la préservation des données intactes sans la moindre modification
avant et après le transfert via le réseau
Intégrité:
Algo Symétriques
2
Algo Asymétriques
3
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes de cryptage
❖ La non-répudiation signifie la possibilité de vérifier que l'envoyeur
et le destinataire sont bien les parties qui disent avoir respectivement
envoyé ou reçu le message
Non-répudiation:
❖ La non-répudiation est assurée par la confidentialité, l’intégrité et
la disponibilité
Algo Symétriques
2
Algo Asymétriques
3
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes de cryptage
Le chiffrement Symétrique:
❖ Le concept de chiffrement symétrique se base sur le principe de
Kirchhoff, l’algorithme est connu mais le processus de cryptage
est inconnu « L’adversaire connaît le système »
❖ La raison étant que quand les systèmes de chiffrement sont largement
étudiés et qu'aucune attaque significative n'est détectée c’est qu’ils
sont efficaces
Algo Symétriques
2
Algo Asymétriques
3
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes de cryptage
Les algorithmes de cryptage symétriques:
DES 3DES AES
Rijndael RC2
SymetricAlgorithm
Algo Symétriques
2
Algo Asymétriques
3
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes de cryptage
Le chiffrement Asymétrique:
❖ Les algorithmes cryptographiques asymétriques, également connus
sous le nom d'algorithmes à clé publique, exigent que l'expéditeur
et le destinataire conservent une paire de clés Privée/PubliqueAlgo Symétriques
2
Algo Asymétriques
3
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes de cryptage
Les algorithmes de cryptage asymétriques:
DSA RSA
AsymetricAlgorithm
Algo Symétriques
2
Algo Asymétriques
3
Présentation
1
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Le cryptage des données-Les algorithmes de cryptage
Préparation de la certification MCSD 70-483: Programmer en C#
Sécurité & débogage
Béchir BEJAOUI
Formateur et consultant indépendant
Cryptage des données
Les algorithmes
connexes
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes connexes
Intégrité de données
2
Echange de clé
3
Présentation
1
❖ Les algorithmes connexes
 L’intégrité des données « signature numérique & hachage »
 Echange de clés
 Génération de nombres aléatoires
Génération
4
 Génération de clés à partir de mot de passe
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes connexes
Intégrité de données
2
Echange de clé
3
Présentation
1
❖ L’intégration permet de protéger les données de la modification non
autorisée au moment du transfert d’un point de réseau source vers
le point de réseau de destination
Génération
4
❖ Deux mécanismes essentiels sont fournit dans ce cadre pour assurer
l’intégrité des données
 Le hachage « Applications des fichiers divers »
MD5 HMACSHA512 HMACSHA256
HashAlgorithm
SHA1
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes connexes
Intégrité de données
2
Echange de clé
3
Présentation
1
Génération
4
RSAECDsa
 La signature numérique « documents »
Exemple d’utilisation de Hachage
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes connexes
Intégrité de données
2
Echange de clés
3
Présentation
1
❖ L’exchange de clés est basé sur le protocole Elliptic curve Diffie
Hellman, abrégé ECDH
Génération
4
ECDHiffieHellman RSA
❖ Le protocole assure l'échange de clés, chacun ayant un couple
de clé privée/publique basé sur les courbes elliptiques, à l’aide
d’un secret partagé « Shared secret » à travers un canal de
communication non sécurisé
❖ Ce secret partagé peut être employé directement comme une
clé de chiffrement
Préparation de la certification MCSD 70-483: Programmer en C#
Le cryptage des données-Les algorithmes connexes
Intégrité de données
2
Echange de clés
3
Présentation
1
❖ La première forme de génération consiste à générer un nombre
aléatoire à l’aide de l’algorithme Random Number Generator
Génération
4
RNGCryptoSericeProvider Rfc2898DeriveBytes
❖ La deuxième forme de génération consiste à générer une clé à
partir d’un mot de passe à l’aide de la norme PBKF2
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Le cryptage des données-Les algorithmes connexes
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La gestion des entrées & sorties
Gestion des dossiers, fichiers
& flux
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des entrées & sorties-Gestion Dossiers, fichiers & flux
❖ Un fichier est une collection de données stockées sur un disque
avec un nom spécifique et un chemin de répertoire
❖ Lorsqu'un fichier est ouvert en lecture ou en écriture, il devient
un flux ou Stream
❖ Un Dossier est une collection de fichiers et de sous dossiers
❖ Le flux est fondamentalement la séquence d'octets passant par
le chemin de communication au niveau buffer ou niveau réseau
❖ Il existe deux types de flux principaux
 Input stream dédié pour les opérations de lectures
 Output stream dédié pour les opérations d’écritures
Les classes IO
2
Présentation
1
❖ La gestion des entrées et sorties est présentée sous l’espace nom
System.IO
Préparation de la certification MCSD 70-483: Programmer en C#
Les classes IO
2
Présentation
1
Directory DirectoryInfo DriveInfo File
BinaryReader BinaryWriter
FileInfo FileStream
❖ Les principales classes présentées sous l’espace nom System.IO:
La gestion des entrées & sorties-Gestion Dossiers, fichiers & flux
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La gestion des entrées & sorties-Gestion des dossiers,fichiers
& flux
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La gestion des entrées & sorties
WebClient
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des entrées & sorties-WebClient
Présentation
1
La classe WebClient
2
❖ La classe WebClient permet d’échanger « Upload/Download »
 Les chaines de caractères
 Les fichiers
 Les données
 Les collections de données
❖ Pour le cas des collections de données, il s’agit seulement de « Upload »
❖ Il s’agit de « Upload » des éléments post sous forme de collection de
données
❖ La classe WebClient fait partie de l’espace nom System.Net
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des entrées & sorties-WebClient
Présentation
1
La classe WebClient
2
Méthodes Upload Description
UploadString Envoie une String à la ressource
UploadValues Envoie une NameValueCollection à la ressource et retourne
un tableau d’octets contenant une réponse
UploadFile Envoie un fichier local à la ressource et retourne un tableau
d’octets contenant une réponse
UploadData Envoie un tableau d’octets à la ressource et retourne un tableau
d’octets contenant une réponse
OpenWrite Récupère un Stream utilisé pour envoyer des données à la
ressource
❖ Chacune de ces méthodes admet sont équivalent en mode asynchrone
qui se termine par un suffixe Async
❖ Il sera nécessaire d’implémenter le gestionnaire UploadDataCompleted
pour récupérer le résultat du chargement à partir du thread auxiliaire
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des entrées & sorties-WebClient
Présentation
1
La classe WebClient
2
Opération de chargement de fichier en mode
asynchrone
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des entrées & sorties-WebClient
Présentation
1
La classe WebClient
2
Méthodes Download Description
DownloadString Reçoit une String à partir de la ressource
DownloadFile Reçoit un fichier à partir de la ressource
DownloadData Reçoit un tableau d’octets à partir de la ressource
OpenRead Retourne un Stream contentant les données à partir de la
ressource
❖ Chacune de ces méthodes admet sont équivalent en mode asynchrone
qui se termine par un suffixe Async
❖ Il sera nécessaire d’implémenter le gestionnaire DownloadDataCompleted
pour récupérer le résultat du chargement à partir du thread auxiliaire
❖ Il est possible d’utiliser la méthode CancelAsync pour annuler des
opérations asynchrones qui ne sont pas terminées
Préparation de la certification MCSD 70-483: Programmer en C#
La gestion des entrées & sorties-WebClient
Présentation
1
La classe WebClient
2
Opération de téléchargement de fichier en mode
asynchrone
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La gestion des entrées & sorties-WebClient
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La sérialisation
Binaire & Soap
Formatters
Partie I
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
Introduction
1
Le processus
2
❖ La sérialisation est représentée par les espaces noms:
 System.Runtime.Serialization
 System.Runtime.Serialization.Formatters.Binary
 System.Runtime.Serialization.Json
 System.Xml.Serialization
 System.Web.Script.Serialization
 System.Runtime.Serialization.Formatters.Soap
❖ BinaryFormatter et SoapFormatter représentent des implémentations
de l’interface IFormatter
❖ BinaryFormatter persiste l’objet dans un fichier binaire et SoapFormatter
persiste l’objet dans un format XML
La personnalisation
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour sérialiser un objet, il faut tout d’abord le marquer avec l’attribut
Serializable sinon il y aura une levée d’exception de type
SerializationException
Exemple de classe sérialisable
La personnalisation
3
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
Exemple de sérialisation
binaire
Exemple de sérialisation
soap
❖ Voici deux exemples de sérialisation binaire et soap
La personnalisation
3
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la sérialisation en utilisant StreamingInfo,
il faut implémenter l’interface ISerializable
La personnalisation
3
Un premier Exemple de personnalisation
de sérialisation
Introduction
Désérialisation
Sérialisation
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la sérialisation en utilisant StreamingContext
,il faut tout d’abord définir le contexte au niveau du code d’appel
La personnalisation
3
Un premier Exemple de personnalisation
de sérialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Par la suite le récupérer lors du processus de sérialisation
La personnalisation
3
Un premier Exemple de personnalisation
de sérialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la déserialisation à l’aide de l’interface
IDeserializationCallback
La personnalisation
3
Un Exemple de personnalisation
de déserialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la sérialisation/déserialisation à l’aide
des méthodes
La personnalisation
3
Actions pré et post
sérialisation
Actions pré et post
désérialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La sérialisation-Binary & Soap Formatters
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La sérialisation
Binaire & Soap
Formatters
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
Introduction
1
Le processus
2
❖ La sérialisation est représentée par les espaces noms:
 System.Runtime.Serialization
 System.Runtime.Serialization.Formatters.Binary
 System.Runtime.Serialization.Json
 System.Xml.Serialization
 System.Web.Script.Serialization
 System.Runtime.Serialization.Formatters.Soap
❖ BinaryFormatter et SoapFormatter représentent des implémentations
de l’interface IFormatter
❖ BinaryFormatter persiste l’objet dans un fichier binaire et SoapFormatter
persiste l’objet dans un format XML
La personnalisation
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour sérialiser un objet, il faut tout d’abord le marquer avec l’attribut
Serializable sinon il y aura une levée d’exception de type
SerializationException
Exemple de classe sérialisable
La personnalisation
3
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
Exemple de sérialisation
binaire
Exemple de sérialisation
soap
❖ Voici deux exemples de sérialisation binaire et soap
La personnalisation
3
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la sérialisation en utilisant StreamingInfo,
il faut implémenter l’interface ISerializable
La personnalisation
3
Un premier Exemple de personnalisation
de sérialisation
Introduction
Désérialisation
Sérialisation
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la sérialisation en utilisant StreamingContext
,il faut tout d’abord définir le contexte au niveau du code d’appel
La personnalisation
3
Un premier Exemple de personnalisation
de sérialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Par la suite le récupérer lors du processus de sérialisation
La personnalisation
3
Un premier Exemple de personnalisation
de sérialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la déserialisation à l’aide de l’interface
IDeserializationCallback
La personnalisation
3
Un Exemple de personnalisation
de déserialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-Binaire & Soap Formatters
1
Le processus
2
❖ Pour la personnalisation de la sérialisation/déserialisation à l’aide
des méthodes
La personnalisation
3
Actions pré et post
sérialisation
Actions pré et post
désérialisation
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La sérialisation-Binary & Soap Formatters
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La sérialisation
XML
Partie I
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
Les techniques
2
❖ La sérialisation XML est effectuée à l’aide du type XMLSerializer
 Les objets publiques d’une manière partielle à l’exception
des indexeurs, les propriétés en lecture seule et les propriété
non publiques
❖ Les objets sujets de sérialisation XML sont:
 La sérialisation des objets ICollection et IEnumerable
est partielle, elle ne comprend par les propriétés
non publiques
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
Les techniques
2
❖ Il y a plusieurs techniques de sérialisation XML:
 Sérialisation XML d'un type scalaire ou composé
 Sérialisation XML du tableau d'objets
 Sérialisation XML de DataSet
 Un ensemble d’objets souvent organisés sous forme hiérarchique
de graphe
 Un ensemble objets organisés conformément au modèle entités
relations
❖ La sérialisation de DataSet peut concerner:
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Technique de sérialisation scalaire
Les techniques
❖ Technique de sérialisation de type composé
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Techniques de sérialisation des tableaux d’objets
La personnalisation
3
Les techniques
❖ Techniques de sérialisation de DataSet
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ La personnalisation de la sérialisation XML se fait de deux manières
La personnalisation
3
Les techniques
 En implémentant l’interfaces IXmlSerializable
 En appliquant les attributs sur les membres des objets
[XmlRoot]
[XmlElement]
[XmlAttribute]
[XmlIgnore]
[XmlArrayItem]
[XmlChoiceIdentifier]
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Présentation de l’interface IXmlSerializable
La personnalisation
3
Les techniques
Méthode Description
GetSchema() Utilisée rarement pour spécifier un schéma personnalisé dans ce
cas la classe sujet de sérialisation doit être décorée par
XmlSchemaProviderAttribute sinon la valeur retournée par cette
méthode doit être nulle
dans la plupart des situations
ReadXml(XmlReader) Génère un objet à partir de sa représentation XML
WriteXml(XmlWriter) Convertit un objet en sa représentation XML
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Présentation des attributs
La personnalisation
3
Les techniques
 XmlRoot : Il représente l’élément racine
 XmlElement : Il représente un nœud élément
 XmlAttribute : Il représente un nœud attribut
 XmlIgnore : Il force la non sérialisation du membre
 XmlArrayItem : Il représente un élément faisant partie d’un tableau
 XmlChoiceIdentifier : Il représente un élément faisant partie d’une
énumération
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La sérialisation-XML
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La sérialisation
XML
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
Les techniques
2
❖ La sérialisation XML est principalement faite à l’aide du type
XMLSerializer
 Les objets publiques d’une manière partielle à l’exception
des indexeurs et les propriétés en lecture seule et les propriété
non publiques
❖ Les objets sujets de sérialisation XML sont:
 La sérialisation des objets ICollection et IEnumerable
est partielle, elle ne comprend par les propriétés
non publiques
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
Les techniques
2
❖ Il y a plusieurs techniques de sérialisation XML:
 Sérialisation XML d'un type scalaire ou composé
 Sérialisation XML du tableau d'objets
 Sérialisation XML de DataSet
 Un ensemble d’objets souvent organisés sous forme hiérarchique
de graphe
 Un ensemble objets organisés conformément au modèle entités
relations
❖ La sérialisation de DataSet peut concerner:
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Technique de sérialisation scalaire
Les techniques
❖ Technique de sérialisation de type composé
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Techniques de sérialisation des tableaux d’objets
La personnalisation
3
Les techniques
❖ Techniques de sérialisation de DataSet
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ La personnalisation de la sérialisation XML se fait de deux manières
La personnalisation
3
Les techniques
 En implémentant l’interface IXmlSerializable
 En appliquant les attributs sur les membres des objets
[XmlRoot]
[XmlElement]
[XmlAttribute]
[XmlIgnore]
[XmlArrayItem]
[XmlChoiceIdentifier]
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Présentation de l’interface IXmlSerializable
La personnalisation
3
Les techniques
Méthode Description
GetSchema() Utilisée rarement pour spécifier un schéma personnalisé dans ce
cas la classe sujet de sérialisation doit être décorée par
XmlSchemaProviderAttribute sinon la valeur retournée par cette
méthode doit être nulle dans la plupart des situations
WriteXml(XmlWriter) Convertit un objet en sa représentation XML personnalisée
ReadXml(XmlReader) Génère un objet à partir de sa représentation XML personalisée
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
2
❖ Présentation des attributs
La personnalisation
3
Les techniques
 XmlRoot : Il représente l’élément racine
 XmlElement : Il représente un nœud élément
 XmlAttribute : Il représente un nœud attribut
 XmlIgnore : Il force la non sérialisation du membre
 XmlArrayItem : Il représente un élément faisant partie d’un tableau
 XmlChoiceIdentifier : Il représente un élément faisant partie d’une
énumération
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La sérialisation-XML
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La sérialisation
XML
Partie III
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
❖ Outre que XMLSerializer, il existe deux autres types qui permettent
de sérialiser désérialiser des objets en format XML, il s’agit de
 NetDataContractSerializer
 DataContractSerializer
❖ DataContractSerializer est utilisé dans un contexte de sérialisation XML
à l’aide d’un contrat de données fournit
❖ NetDataContractSerializer est utilisé dans un contexte de sérialisation
XML à l’aide des types .Net Framework, il est moins limité en cas
de sérialisation dans un contexte de transtypage
❖ A ne pas confondre avec le type DataContractJsonSerializer
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
❖ Pour utiliser l’un des deux types de serializers il faut décorer
le type sujet de sérialisation avec les attributs adéquats
Exemple de classe à sérialiser
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Exemple de code de sérialisation
Exemple de output
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
❖ On va imaginer le cas où il est nécessaire de sérialiser une collection
de types dérivées d’un type de base
Classe de base Classe dérivée
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
❖ En cas de sérialisation avec transtypage
Cas de sérialisation avec transtypage
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
❖ En cas de sérialisation on aura une levée de SerializationException
Cas de sérialisation avec transtypage
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
❖ Il est possible de résoudre cette contrainte via deux méthodes
 Définition d’un DataContractResolver et son injection dans le
processus de sérialisation
 Décoration du type de base avec un ensemble d’attributs
du type KnownTypeAttribute mentionnant les noms de
chaque type dérivé
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-XML
Exemple de code de sérialisation
Exemple de output
Présentation
1
DataContractSerializer
2
NetDataContractSerializer
3
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La sérialisation-XML
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
La sérialisation
JSON
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-JSON
Présentation
1
DataContractJsonSerializer
2
❖ La sérialisation sous format JSON est représentée par les espaces noms:
 System.Runtime.Serialization.Json
 System.Web.Script.Serialization
JasonSerializer
3
Contrôle
4
Le gestionnaire des références
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-JSON
❖ La sérialisation avec DataContractJsonSerializerPrésentation
1
DataContractJsonSerializer
2
JasonSerializer
3
Contrôle
4
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-JSON
❖ La sérialisation avec JavascriptSerializerPrésentation
1
DataContractJsonSerializer
2
JasonSerializer
3
Contrôle
4
Préparation de la certification MCSD 70-483: Programmer en C#
La sérialisation-JSON
❖ Le contrôle ou la personnalisation de format de sortie s’effectue
à travers les propriétés de l’attribut DataMemberAttribute
Présentation
1
DataContractJsonSerializer
2
JavascriptSerializer
3
Contrôle
4
 Order : De type entier qui force l’ordre d’apparition des propriétés
 IsRequired : De type Boolean qui indique si la sérialisation du
membre est nécessaire ou pas dans le fichier json
 Name: De type chaine qui change l’affichage du
nom dans le fichier json
 EmitDefaultValue: De type Boolean qui indique qu’une valeur par
défaut
est prise en considération si une valeur n’est pas définie d’un
membre
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ La sérialisation-JSON
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Introduction
Présentation
1
Tableaux
2
❖ Les collections sont présentées au niveau de plusieurs espaces noms
 System
 System.Collections
 System.Collections.Generic
 System.Collections.Specalized
 System.Collections.Concurrent
 System.Collections.ObjectModel
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Introduction
Présentation
1
Tableaux
2
❖ Les tableaux sont définis en tant que conteneurs d’un vecteur de
variables dont le type et le nombre sont prédéfinis
 Les tableaux à seule dimension
 Les tableaux multi dimension
 Les tableaux en escalier « Jagged »
❖ Les tableaux sont indexés à zéro
❖ Les tableaux sont de type référence
❖ La classe Array présente des méthodes statiques utilitaires
pour manipuler des tableaux
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections-Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Non génériques
Partie I
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Non génériques
Présentation
1
Les classes
4
❖ Le System.Collections est un espace de noms qui contient des
interfaces et des classes qui définissent différentes collections d'objets,
tels que les
❖ Ces collections peuvent contenir des
 Interfaces
 Listes
 Les piles
 Les files
 Les tableaux de hachages
 Types scalaires
 Classes
 Structures
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Non génériques
Présentation
1
Les classes
4 ArrayList HashTable Queue Stack
SortedList Comparer BitArray
L’espace nom System.Collections:
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections-Non génériques
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Non génériques
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Non génériques
Présentation
1
❖ Il est possible d’implémenter une collection personnalisée en héritant
de la classe CollectionBase
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections-Non génériques
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Génériques
Partie I
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Génériques
Présentation
1
Les classes
4 ❖ Les collections génériques apparaissent dès la version C# 2.0
❖ Les types des éléments sont exprimés en format générique <T> sous
forme de:
 Listes
 Les piles
 Les files
 Les dictionnaires
❖ Ces classes sont fortement typées et plus performantes en les
comparant avec leurs équivalentes en System.Collection
❖ L'espace de noms System.Collections.Generic contient des classes
utilisées lorsque il est connu d’avance les types de données à stocker
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Génériques
Présentation
1
Les classes
4 List<T> Queue<T> Stack<T> LinkedList<T>
Dictionary<T,U>
L’espace nom System.Collections.Generic:
SortedDictionary<T,U>
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections- Génériques
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Génériques
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Génériques
Présentation
1
❖ Présentation de cas d’implémentation de IList<T>
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections- Génériques
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Spécialisées
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Spécialisés
Présentation
1
Les classes
4
❖ L'espace de noms System.Collections.Specialized contient des
collections spécialisées qui sont essentiellement concentrées sur la
manipulation des ensembles des chaines
 La collection de chaines
 Le dictionnaire de chaines
 Le dictionnaires Hybride
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Génériques
Présentation
1
Les classes
4 HybridDictionaryListDictionary NameValueCollection
CollectionsUtil StringDictionary
L’espace nom System.Collections.Specialized:
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections- Génériques
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Spécialisés
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Spécialisés
Présentation
1
❖ La seule implémentation personnalisée dans ce cas concerne l’interface
INotifyCollectionChanged
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections- Spécialisés
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Les collections
Objet Model
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Objet Model
Présentation
1
Les classes
4
❖ L'espace de noms System.Collections.ObjectModel contient des
collections applicables dans un contexte de modelisation
 La collection générique
 La collection observable
 La collection à clé
 Les collection et dictionnaire en lecture seule
Préparation de la certification MCSD 70-483: Programmer en C#
Les collections-Objet Model
Présentation
1
Les classes
4 Collection<T> ObservableCollection<T> KeyedCollection
ReadOnlyCollection ReadOnlyObservableCollection<T>
ReadOnlyDictionary<Key,Value>
L’espace nom System.Collections.ObjectModel:
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Les collections- Objet model
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Accès aux données
ADO.NET
Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- ADO.Net Introduction
Présentation
1
Les types
4
❖ ADO.NET est considéré comme un pont entre les applications et la base
de données
❖ Les objets ADO.NET encapsulent toutes les opérations d'accès aux
données et les contrôles qui interagissent avec ces objets pour afficher
les données
❖ Contrairement aux objets ADO, les objets ADO.NET fournissent deux
modes de connexions
 Le mode connecté
 Le mode non connecté
❖ Dans le cas du mode non connecté, des clichés de données sont
stockées dans des conteneurs spéciaux appelés DataSet
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- ADO.Net Introduction
Présentation
1
Les types
4
Connection
DataAdapter
Command
DataReader
DataSet
DataTable DataRelation
DataColumn
DataRow
Présentation structurelle de ADO.NET
Mode connecté
Mode non connecté
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- ADO.Net Introduction
Présentation
1
Les types
4
Connection DataAdapter
1. Select
2. Insert
3. Delete
4. Update
Command
DataReader
Execute
command
DataSet
Présentation fonctionnelle de ADO.NET
Préparation de la certification MCSD 70-483: Programmer en C#
Présentation
1
Les types
4
DataSet
L’espace nom System.Data:
DataTable DataRelation DataColumn
DataRow DataView
IDataReader IDbCommand IDbConnection IDbDataAdapter
IDbDataParameter
Les classes:
Les interfaces:
Accès aux données- ADO.Net Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Accès aux données – ADO.Net-Introduction
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Accès aux données
ADO.NET
Implémentation
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- ADO.Net Implémentation
Présentation
1
SqlClient
4
❖ Les principales implémentations de ADO.Net se trouvent sous les
espaces noms
 System.Data.Odbc
 System.Data.Oledb
 System.Data.SqlClient
❖ L’espace nom System.Data.Common contient les classes partagées
par les implémentations de ADO.Net
❖ L’espace nom System.Data.SQL contient les classes spécifiques à SQL
Server
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- ADO.Net Implémentation
Présentation
1
SqlClient
4
SqlConnection
L’espace nom System.Data.SqlClient:
SqlCommand SqlCommandBuilder
SqlDataAdapter
SqlParameter SqlParameterCollection
SqlDataReader
SqlTransaction
SqlExcpetion
SqlError
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Accès aux données- ADO.Net Implémentation
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Accès aux données
LINQ
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ
❖ L'acronyme LINQ signifie Language Integrated Query
❖ LINQ est un ORM qui intègre habilement les requêtes en C # en
mappant les divers composants d’une base de données en objets
CLR requêtable via un Language très proche de SQL
❖ On désigne par le terme fournisseur LINQ, la couche logicielle qui
permet de mapper les éléments d’un environnement requêtable
non managé à leurs équivalents en terme de CLR
❖ Il existe plusieurs fournisseurs LINQ
 LINQ to Objects
 LINQ to SQL
 LINQ to XML
❖ Il existe plusieurs autres fournisseurs LINQ
❖ Il est possible de créer son propre fournisseur LINQ
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ
❖ LINQ offre une IntelliSense lors du développement
❖ LINQ permet une expérience de débogage encore plus facile
❖ Contrairement à SQL, le LINQ est extensible puisqu’il est
essentiellement basé sur la notion des méthodes extensions
❖ Contrairement à SQL, le LINQ permet la jointure des données
issues de divers sources de données en une seule requête
❖ Le LINQ permet une transformation plus facile de structure de données
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Les avantages de LINQ:
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To SQL
Présentation
1
To SQL
2
❖ Les requêtes effectuées dans un contexte LINQ to SQL renvoient des
variables qui sont généralement de type IQueryable <T>
❖ LINQ to SQL est basé essentiellement sur trois couches:
 LINQ API composée de méthodes qui présentent les divers
fonctionnalités de requêtes
 Le fournisseur LINQ to SQL
 ADO.NET
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To OBJECTS
❖ Les requêtes dans LINQ to Objects renvoient des variables de type
généralement IEnumerable <T> uniquement
❖ LINQ to Objects présente également de nombreux avantages par
rapport aux boucles foreach traditionnelles, tel que:
 La lisibilité
 Le filtrage puissant
 La possibilité d’agrégation
 Le codage minimal
Présentation
1
To SQL
2
To OBJECTS
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To XML
❖ LINQ to XML est représenté par l’espace nom System.Xml.Linq
XCData XComment XContainer
XDeclaration XDocument XDocumentType XElement
XNodeDocumentOrderComparer
XNodeEqualityComparer
XAttribute
XObject
XObjectChangeEventArgs
Xprocessing instruction
XText
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- Mots clés
from select group
into orderby join let
in onequals by
ascending descending
where
Les requêtes LINQ
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Accès aux données- LINQ
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Accès aux données
LINQ
Partie II
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ
❖ L'acronyme LINQ signifie Language Integrated Query
❖ LINQ est un ORM qui intègre habilement les requêtes en C # en
mappant les divers composants d’une base de données en objets
CLR requêtable via un Language très proche de SQL
❖ On désigne par le terme fournisseur LINQ, la couche logicielle qui
permet de mapper les éléments d’un environnement requêtable
non managé à leurs équivalents en terme de CLR
❖ Il existe plusieurs fournisseurs LINQ
 LINQ to Objects
 LINQ to SQL
 LINQ to XML
❖ Il existe plusieurs autres fournisseurs LINQ
❖ Il est possible de créer son propre fournisseur LINQ
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ
❖ LINQ offre une IntelliSense lors du développement
❖ LINQ permet une expérience de débogage encore plus facile
❖ Contrairement à SQL, le LINQ est extensible puisqu’il est
essentiellement basé sur la notion des méthodes extensions
❖ Contrairement à SQL, le LINQ permet la jointure des données
issues de divers sources de données en une seule requête
❖ Le LINQ permet une transformation plus facile de structure de données
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Les avantages de LINQ:
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To SQL
Présentation
1
To SQL
2
❖ Les requêtes effectuées dans un contexte LINQ to SQL renvoient des
variables qui sont généralement de type IQueryable <T>
❖ LINQ to SQL est basé essentiellement sur trois couches:
 LINQ API composée de méthodes qui présentent les divers
fonctionnalités de requêtes
 Le fournisseur LINQ to SQL
 ADO.NET
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To OBJECTS
❖ Les requêtes dans LINQ to Objects renvoient des variables de type
généralement IEnumerable <T> uniquement
❖ LINQ to Objects présente également de nombreux avantages par
rapport aux boucles foreach traditionnelles, tel que:
 La lisibilité
 Le filtrage puissant
 La possibilité d’agrégation
 Le codage minimal
Présentation
1
To SQL
2
To OBJECTS
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To XML
❖ LINQ to XML est représenté par l’espace nom System.Xml.Linq
XCData XComment XContainer
XDeclaration XDocument XDocumentType XElement
XNodeDocumentOrderComparer
XNodeEqualityComparer
XAttribute
XObject
XObjectChangeEventArgs
Xprocessing instruction
XText
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- Mots clés
from select group
into orderby join let
in onequals by
ascending descending
where
Les requêtes LINQ
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Accès aux données- LINQ
Préparation de la certification MCSD 70-483: Programmer en C#
Béchir BEJAOUI
Formateur et consultant indépendant
Accès aux données
LINQ
Partie III
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ
❖ L'acronyme LINQ signifie Language Integrated Query
❖ LINQ est un ORM qui intègre habilement les requêtes en C # en
mappant les divers composants d’une base de données en objets
CLR requêtable via un Language très proche de SQL
❖ On désigne par le terme fournisseur LINQ, la couche logicielle qui
permet de mapper les éléments d’un environnement requêtable
non managé à leurs équivalents en terme de CLR
❖ Il existe plusieurs fournisseurs LINQ
 LINQ to Objects
 LINQ to SQL
 LINQ to XML
❖ Il existe plusieurs autres fournisseurs LINQ
❖ Il est possible de créer son propre fournisseur LINQ
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ
❖ LINQ offre une IntelliSense lors du développement
❖ LINQ permet une expérience de débogage encore plus facile
❖ Contrairement à SQL, le LINQ est extensible puisqu’il est
essentiellement basé sur la notion des méthodes extensions
❖ Contrairement à SQL, le LINQ permet la jointure des données
issues de divers sources de données en une seule requête
❖ Le LINQ permet une transformation plus facile de structure de données
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Les avantages de LINQ:
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To SQL
Présentation
1
To SQL
2
❖ Les requêtes effectuées dans un contexte LINQ to SQL renvoient des
variables qui sont généralement de type IQueryable <T>
❖ LINQ to SQL est basé essentiellement sur trois couches:
 LINQ API composée de méthodes qui présentent les divers
fonctionnalités de requêtes
 Le fournisseur LINQ to SQL
 ADO.NET
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To OBJECTS
❖ Les requêtes dans un contexte LINQ to Objects renvoient des variables
de type IEnumerable <T>
❖ LINQ to Objects présente également de nombreux avantages par
rapport aux boucles foreach traditionnelles, tel que:
 La lisibilité
 Le filtrage puissant
 La possibilité d’agrégation
 Le codage minimal
Présentation
1
To SQL
2
To OBJECTS
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- LINQ-To XML
❖ LINQ to XML est représenté par l’espace nom System.Xml.Linq
XCData XComment XContainer
XDeclaration XDocument XDocumentType XElement
XNodeDocumentOrderComparer
XNodeEqualityComparer
XAttribute
XObject
XObjectChangeEventArgs
Xprocessing instruction
XText
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Accès aux données- Mots clés
from select group
into orderby join let
in onequals by
ascending descending
where
Les requêtes LINQ
Présentation
1
To SQL
2
To OBJECT
3
To XML
4
Mots clés
5
Préparation de la certification MCSD 70-483: Programmer en C#
Ce qu’on a vu
▪ Accès aux données- LINQ
Préparation de la certification MCSD 70-483: Programmer en C#
Le Bilan
Béchir BEJAOUI
Formateur et consultant indépendant
Ce que nous avons vu ensemble
Préparation de la certification MCSD 70-483: Programmer en C#
Le bilan
❖ Chapitre I
 Les techniques de validation via les expressions régulières
 Les techniques de débogage « System.Diagnostics »
 Les directives
 Les techniques de validation dans un contexte de globalisation
 Les techniques de validation des entrées
 La gestion des assemblées
 Le cryptage/décryptage des données
Préparation de la certification MCSD 70-483: Programmer en C#
Le bilan
 Les opérations entrées et sorties cas de fichiers et dossiers
❖ Chapitre II
 La sérialisation XML
 La sérialisation JSON
 Les opérations entrées et sorties cas du WebClient
 La sérialisation Binary &Soap
Préparation de la certification MCSD 70-483: Programmer en C#
Le bilan
 Les collections non génériques
❖ Chapitre III
 Les collections model d’objets
 La couche applicative ADO.Net
 Les collections génériques
 Les collection spécialisées
 La couche applicative LINQ
❖ Chapitre IV
Préparation de la certification MCSD 70-483: Programmer en C#
Le bilan
A Bientôt

Contenu connexe

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

Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharpSDFG5
 
Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...
Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...
Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...Identity Days
 
Alphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécurité
Alphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécuritéAlphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécurité
Alphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécuritéAlphorm
 
chap1-windows server.pptxhhhgggjjjhhdddddh
chap1-windows server.pptxhhhgggjjjhhdddddhchap1-windows server.pptxhhhgggjjjhhdddddh
chap1-windows server.pptxhhhgggjjjhhdddddhHamza546870
 
Alphorm.com Formation Certified Network Defender 1/2 : Réussir la certification
Alphorm.com Formation Certified Network Defender 1/2 : Réussir la certificationAlphorm.com Formation Certified Network Defender 1/2 : Réussir la certification
Alphorm.com Formation Certified Network Defender 1/2 : Réussir la certificationAlphorm
 
PrésentationAD.pdf
PrésentationAD.pdfPrésentationAD.pdf
PrésentationAD.pdfSekmDidtech
 
Webinar bonnes pratiques securite
Webinar   bonnes pratiques securiteWebinar   bonnes pratiques securite
Webinar bonnes pratiques securitejumeletArnaud
 
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...☁️Seyfallah Tagrerout☁ [MVP]
 
Génération de certificats SSL
Génération de certificats SSLGénération de certificats SSL
Génération de certificats SSLFabian Vandendyck
 
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Mohamed Abdennebi
 
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
 
RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm
 
Strong Authentication with PKI
Strong Authentication with PKIStrong Authentication with PKI
Strong Authentication with PKISylvain Maret
 
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
 
Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécuritédihiaselma
 
Sécurisation de jitsi en SAAS (OSXP 2023)
Sécurisation de jitsi en SAAS (OSXP 2023)Sécurisation de jitsi en SAAS (OSXP 2023)
Sécurisation de jitsi en SAAS (OSXP 2023)Soisik FROGER
 
Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...
Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...
Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...Identity Days
 

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

Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharp
 
Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...
Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...
Identity Days 2020 - Mettre en oeuvre AD-CS en respectant les meilleures prat...
 
Alphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécurité
Alphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécuritéAlphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécurité
Alphorm.com Formation Réseaux Cisco 2/2 : Maîtriser la sécurité
 
chap1-windows server.pptxhhhgggjjjhhdddddh
chap1-windows server.pptxhhhgggjjjhhdddddhchap1-windows server.pptxhhhgggjjjhhdddddh
chap1-windows server.pptxhhhgggjjjhhdddddh
 
Alphorm.com Formation Certified Network Defender 1/2 : Réussir la certification
Alphorm.com Formation Certified Network Defender 1/2 : Réussir la certificationAlphorm.com Formation Certified Network Defender 1/2 : Réussir la certification
Alphorm.com Formation Certified Network Defender 1/2 : Réussir la certification
 
PrésentationAD.pdf
PrésentationAD.pdfPrésentationAD.pdf
PrésentationAD.pdf
 
Webinar bonnes pratiques securite
Webinar   bonnes pratiques securiteWebinar   bonnes pratiques securite
Webinar bonnes pratiques securite
 
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...Présentation Microsoft Advanced Threat Analytics  | Deep-Dive - MSCloud Summi...
Présentation Microsoft Advanced Threat Analytics | Deep-Dive - MSCloud Summi...
 
Génération de certificats SSL
Génération de certificats SSLGénération de certificats SSL
Génération de certificats SSL
 
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
 
PKI par la Pratique
PKI par la PratiquePKI par la Pratique
PKI par la Pratique
 
Sécurité des données
Sécurité des donnéesSécurité des données
Sécurité des données
 
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
 
RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
 
Strong Authentication with PKI
Strong Authentication with PKIStrong Authentication with PKI
Strong Authentication with PKI
 
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...
 
Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécurité
 
Sécurisation de jitsi en SAAS (OSXP 2023)
Sécurisation de jitsi en SAAS (OSXP 2023)Sécurisation de jitsi en SAAS (OSXP 2023)
Sécurisation de jitsi en SAAS (OSXP 2023)
 
Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...
Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...
Quelle approche préventive adopter pour empêcher les mouvements latéraux au s...
 

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

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...Faga1939
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Coursebenezerngoran
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 

Dernier (18)

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 

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

  • 1. 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 Les métadonnées
  • 2. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Les attributs au niveau de AssemblyInfo.cs sont des valeurs qui fournissent des informations sur une assemblée donnée ❖ Les attributs sont répartis selon les contextes d’informations  Les Attributs d’identité de l’assemblée  Les Attributs d’informations  Attributs de manifeste de l’assemblée  Attributs du nom fort
  • 3. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Les attributs d’identité déterminent l’identité d’une assemblée tel que le nom, la version et la culture qui servent lors de la génération de l’assemblée avec l’outil Assembly Linker al.exe Attribut Description AssemblyCulture Il désigne la culture que l’assemblée prend en charge AssemblyVersion Valeur numérique au format version principale . version secondaire. Build . révision (p. ex. 5.5.0.0). Le Common Language Runtime CLR utilise cette valeur pour effectuer les opérations de liaison dans les assemblées avec nom fort AssemblyFlags Valeur qui définit les attributs d’assemblées
  • 4. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Les attributs d’informations sont utilisés pour fournir des informations supplémentaires sur le produit ou la société de l’assemblée Attribut Description AssemblyCompany Valeur de chaîne qui spécifie un nom de société AssemblyCopyright Valeur de chaîne qui spécifie le copyright AssemblyFileVersion Valeur de chaîne qui spécifie le numéro de version du fichier Win32 la version de l’assemblée AssemblyInformationalVersion Valeur de chaîne qui spécifie le numéro de version du produit complet AssemblyProduct Valeur de chaîne qui spécifie les informations de produit AssemblyTrademark Valeur de chaîne qui spécifie les informations de marque
  • 5. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Les attributs de manifeste de l’assemblée fournissent des informations y compris le titre, la description, l’alias par défaut et la configuration Attribut Description AssemblyConfiguration Valeur de chaîne désignant la configuration de l’assemblée, comme Retail ou Debug AssemblyDefaultAlias Cette valeur fournit un nom convivial lorsque le nom de l’assemblée ne l’est pas AssemblyDescription Valeur de chaîne désignant une brève description qui résume la nature et l’objectif de l’assemblée AssemblyTitle Valeur de chaîne qui spécifie un nom convivial pour l’assemblée
  • 6. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Vous pouvez utiliser les attributs de nom fort pour définir un nom fort pour l’assemblée Attribut Description AssemblyKeyName Indique le conteneur de clé qui possède la paire de clés transmise en tant que paramètre au constructeur de cet attribut AssemblyKeyFile Valeur de chaîne qui indique le nom du fichier contenant soit la clé publique (si la signature différée est utilisée), soit les clés publiques et privées transmises en tant que paramètres au constructeur de cet attribut AssemblyDelaySign Valeur booléenne qui indique que la signature différée est utilisée ou non
  • 7. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Un fichier de base de données du programme (.pdb), également appelé fichier de symboles Program Data base File ❖ Le fichier .pdb mappe  Les instructions du code source aux instructions d'exécution des fichiers exécutables  Les identificateurs créés relatifs aux classes, méthodes et autres codes aux identificateurs utilisés dans les fichiers exécutables compilés au niveau du projet ❖ Un fichier de symboles contient des informations sur l'emplacement d'origine des fichiers sources, les emplacement des points d’arrêts « BreakPoint » et les positions des symboles définit au niveau du code ❖ Un fichier pdb est crucial pour les activités de débogage particulières comme le débogage distant où le code situé en dehors de l’IDE
  • 8. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Le débogueur cherche les fichiers pdb  A l’intérieur de l’assemblé  Au répertoire Bin/Debug ou Bin/Release  Au répertoires de cache des symboles locaux  Au niveau des serveurs de symboles au niveau des réseaux
  • 9. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Les fichiers WINMD se trouvent dans C:WindowsSystem32 WinMetadata ❖ Les fichiers WINMD ou Windows Meta Data sont des conteneurs de métadonnée CLR issues du .Net Framework ❖ Les fichiers WINMD sont utilisés pour exposer les API dans un contexte de Windows Runtime à une variété d’environnement de développement Windows
  • 10. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Les fichiers WINMD sont des fichiers conformes au format PE dérivé du standard COFF ❖ Les fichiers WINMD sont équivalent à des fichiers DLL Win-32 standard qui fournissent des métadonnées aux applications clientes Affichage du contenu d’un fichier winmd avec dumpbin
  • 11. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ Lors de la génération de la bibliothèque à exposer elle doit être compilée en mode Windows Runtime Component pour générer automatiquement le fichier winmd correspondant Compilation de la bibliothèque
  • 12. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des assemblées- Les métadonnées PDB 2 WINMD 3 AssemblyInfo 1 ❖ En suite, il sera possible de consommer le code .Net dans les applications Windows Consommation du code .Net dans une Application JavaScript/HTML5
  • 13. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La gestion des assemblées- Les métadonnées
  • 14. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Cryptage des données Les algorithmes de cryptage
  • 15. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes de cryptage Algo Symétriques 2 Algo Asymétriques 3 Présentation 1 ❖ Le cryptage est le processus d'encodage d'une information de manière à ce que seules les personnes autorisées puissent y accéder ❖ L'information en général présentée en texte clair, est chiffrée à l'aide d'un algorithme de chiffrement générant un texte crypté qui ne peut être lu que s'il est déchiffré ❖ Généralement outre que l’algorithme nous utilisons des clés pour chiffrer et déchiffrer des informations ❖ Il existe trois familles de chiffrements  Chiffrement symétrique  Chiffrement asymétrique  Chiffrement hybride
  • 16. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes de cryptage ❖ C’est l’identification et la confirmation d’identification Authentification: ❖ Inspirée d’un mot anglais qui indique la non généralisation de l’information de façon à ce que elle est détenue au plus par un seul individu exemple mot de passe Confidentialité: ❖ Indique aussi la non généralisation de l’information mais avec un degré moins que la confidentialité exemple dossier d’affaires Privacité: ❖ C’est la préservation des données intactes sans la moindre modification avant et après le transfert via le réseau Intégrité: Algo Symétriques 2 Algo Asymétriques 3 Présentation 1
  • 17. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes de cryptage ❖ La non-répudiation signifie la possibilité de vérifier que l'envoyeur et le destinataire sont bien les parties qui disent avoir respectivement envoyé ou reçu le message Non-répudiation: ❖ La non-répudiation est assurée par la confidentialité, l’intégrité et la disponibilité Algo Symétriques 2 Algo Asymétriques 3 Présentation 1
  • 18. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes de cryptage Le chiffrement Symétrique: ❖ Le concept de chiffrement symétrique se base sur le principe de Kirchhoff, l’algorithme est connu mais le processus de cryptage est inconnu « L’adversaire connaît le système » ❖ La raison étant que quand les systèmes de chiffrement sont largement étudiés et qu'aucune attaque significative n'est détectée c’est qu’ils sont efficaces Algo Symétriques 2 Algo Asymétriques 3 Présentation 1
  • 19. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes de cryptage Les algorithmes de cryptage symétriques: DES 3DES AES Rijndael RC2 SymetricAlgorithm Algo Symétriques 2 Algo Asymétriques 3 Présentation 1
  • 20. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes de cryptage Le chiffrement Asymétrique: ❖ Les algorithmes cryptographiques asymétriques, également connus sous le nom d'algorithmes à clé publique, exigent que l'expéditeur et le destinataire conservent une paire de clés Privée/PubliqueAlgo Symétriques 2 Algo Asymétriques 3 Présentation 1
  • 21. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes de cryptage Les algorithmes de cryptage asymétriques: DSA RSA AsymetricAlgorithm Algo Symétriques 2 Algo Asymétriques 3 Présentation 1
  • 22. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Le cryptage des données-Les algorithmes de cryptage
  • 23. Préparation de la certification MCSD 70-483: Programmer en C# Sécurité & débogage Béchir BEJAOUI Formateur et consultant indépendant Cryptage des données Les algorithmes connexes
  • 24. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes connexes Intégrité de données 2 Echange de clé 3 Présentation 1 ❖ Les algorithmes connexes  L’intégrité des données « signature numérique & hachage »  Echange de clés  Génération de nombres aléatoires Génération 4  Génération de clés à partir de mot de passe
  • 25. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes connexes Intégrité de données 2 Echange de clé 3 Présentation 1 ❖ L’intégration permet de protéger les données de la modification non autorisée au moment du transfert d’un point de réseau source vers le point de réseau de destination Génération 4 ❖ Deux mécanismes essentiels sont fournit dans ce cadre pour assurer l’intégrité des données  Le hachage « Applications des fichiers divers » MD5 HMACSHA512 HMACSHA256 HashAlgorithm SHA1
  • 26. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes connexes Intégrité de données 2 Echange de clé 3 Présentation 1 Génération 4 RSAECDsa  La signature numérique « documents » Exemple d’utilisation de Hachage
  • 27. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes connexes Intégrité de données 2 Echange de clés 3 Présentation 1 ❖ L’exchange de clés est basé sur le protocole Elliptic curve Diffie Hellman, abrégé ECDH Génération 4 ECDHiffieHellman RSA ❖ Le protocole assure l'échange de clés, chacun ayant un couple de clé privée/publique basé sur les courbes elliptiques, à l’aide d’un secret partagé « Shared secret » à travers un canal de communication non sécurisé ❖ Ce secret partagé peut être employé directement comme une clé de chiffrement
  • 28. Préparation de la certification MCSD 70-483: Programmer en C# Le cryptage des données-Les algorithmes connexes Intégrité de données 2 Echange de clés 3 Présentation 1 ❖ La première forme de génération consiste à générer un nombre aléatoire à l’aide de l’algorithme Random Number Generator Génération 4 RNGCryptoSericeProvider Rfc2898DeriveBytes ❖ La deuxième forme de génération consiste à générer une clé à partir d’un mot de passe à l’aide de la norme PBKF2
  • 29. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Le cryptage des données-Les algorithmes connexes
  • 30. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La gestion des entrées & sorties Gestion des dossiers, fichiers & flux
  • 31. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des entrées & sorties-Gestion Dossiers, fichiers & flux ❖ Un fichier est une collection de données stockées sur un disque avec un nom spécifique et un chemin de répertoire ❖ Lorsqu'un fichier est ouvert en lecture ou en écriture, il devient un flux ou Stream ❖ Un Dossier est une collection de fichiers et de sous dossiers ❖ Le flux est fondamentalement la séquence d'octets passant par le chemin de communication au niveau buffer ou niveau réseau ❖ Il existe deux types de flux principaux  Input stream dédié pour les opérations de lectures  Output stream dédié pour les opérations d’écritures Les classes IO 2 Présentation 1 ❖ La gestion des entrées et sorties est présentée sous l’espace nom System.IO
  • 32. Préparation de la certification MCSD 70-483: Programmer en C# Les classes IO 2 Présentation 1 Directory DirectoryInfo DriveInfo File BinaryReader BinaryWriter FileInfo FileStream ❖ Les principales classes présentées sous l’espace nom System.IO: La gestion des entrées & sorties-Gestion Dossiers, fichiers & flux
  • 33. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La gestion des entrées & sorties-Gestion des dossiers,fichiers & flux
  • 34. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La gestion des entrées & sorties WebClient
  • 35. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des entrées & sorties-WebClient Présentation 1 La classe WebClient 2 ❖ La classe WebClient permet d’échanger « Upload/Download »  Les chaines de caractères  Les fichiers  Les données  Les collections de données ❖ Pour le cas des collections de données, il s’agit seulement de « Upload » ❖ Il s’agit de « Upload » des éléments post sous forme de collection de données ❖ La classe WebClient fait partie de l’espace nom System.Net
  • 36. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des entrées & sorties-WebClient Présentation 1 La classe WebClient 2 Méthodes Upload Description UploadString Envoie une String à la ressource UploadValues Envoie une NameValueCollection à la ressource et retourne un tableau d’octets contenant une réponse UploadFile Envoie un fichier local à la ressource et retourne un tableau d’octets contenant une réponse UploadData Envoie un tableau d’octets à la ressource et retourne un tableau d’octets contenant une réponse OpenWrite Récupère un Stream utilisé pour envoyer des données à la ressource ❖ Chacune de ces méthodes admet sont équivalent en mode asynchrone qui se termine par un suffixe Async ❖ Il sera nécessaire d’implémenter le gestionnaire UploadDataCompleted pour récupérer le résultat du chargement à partir du thread auxiliaire
  • 37. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des entrées & sorties-WebClient Présentation 1 La classe WebClient 2 Opération de chargement de fichier en mode asynchrone
  • 38. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des entrées & sorties-WebClient Présentation 1 La classe WebClient 2 Méthodes Download Description DownloadString Reçoit une String à partir de la ressource DownloadFile Reçoit un fichier à partir de la ressource DownloadData Reçoit un tableau d’octets à partir de la ressource OpenRead Retourne un Stream contentant les données à partir de la ressource ❖ Chacune de ces méthodes admet sont équivalent en mode asynchrone qui se termine par un suffixe Async ❖ Il sera nécessaire d’implémenter le gestionnaire DownloadDataCompleted pour récupérer le résultat du chargement à partir du thread auxiliaire ❖ Il est possible d’utiliser la méthode CancelAsync pour annuler des opérations asynchrones qui ne sont pas terminées
  • 39. Préparation de la certification MCSD 70-483: Programmer en C# La gestion des entrées & sorties-WebClient Présentation 1 La classe WebClient 2 Opération de téléchargement de fichier en mode asynchrone
  • 40. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La gestion des entrées & sorties-WebClient
  • 41. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La sérialisation Binaire & Soap Formatters Partie I
  • 42. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters Introduction 1 Le processus 2 ❖ La sérialisation est représentée par les espaces noms:  System.Runtime.Serialization  System.Runtime.Serialization.Formatters.Binary  System.Runtime.Serialization.Json  System.Xml.Serialization  System.Web.Script.Serialization  System.Runtime.Serialization.Formatters.Soap ❖ BinaryFormatter et SoapFormatter représentent des implémentations de l’interface IFormatter ❖ BinaryFormatter persiste l’objet dans un fichier binaire et SoapFormatter persiste l’objet dans un format XML La personnalisation 3
  • 43. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour sérialiser un objet, il faut tout d’abord le marquer avec l’attribut Serializable sinon il y aura une levée d’exception de type SerializationException Exemple de classe sérialisable La personnalisation 3 Introduction
  • 44. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 Exemple de sérialisation binaire Exemple de sérialisation soap ❖ Voici deux exemples de sérialisation binaire et soap La personnalisation 3 Introduction
  • 45. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la sérialisation en utilisant StreamingInfo, il faut implémenter l’interface ISerializable La personnalisation 3 Un premier Exemple de personnalisation de sérialisation Introduction Désérialisation Sérialisation
  • 46. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la sérialisation en utilisant StreamingContext ,il faut tout d’abord définir le contexte au niveau du code d’appel La personnalisation 3 Un premier Exemple de personnalisation de sérialisation Introduction
  • 47. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Par la suite le récupérer lors du processus de sérialisation La personnalisation 3 Un premier Exemple de personnalisation de sérialisation Introduction
  • 48. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la déserialisation à l’aide de l’interface IDeserializationCallback La personnalisation 3 Un Exemple de personnalisation de déserialisation Introduction
  • 49. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la sérialisation/déserialisation à l’aide des méthodes La personnalisation 3 Actions pré et post sérialisation Actions pré et post désérialisation Introduction
  • 50. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La sérialisation-Binary & Soap Formatters
  • 51. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La sérialisation Binaire & Soap Formatters Partie II
  • 52. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters Introduction 1 Le processus 2 ❖ La sérialisation est représentée par les espaces noms:  System.Runtime.Serialization  System.Runtime.Serialization.Formatters.Binary  System.Runtime.Serialization.Json  System.Xml.Serialization  System.Web.Script.Serialization  System.Runtime.Serialization.Formatters.Soap ❖ BinaryFormatter et SoapFormatter représentent des implémentations de l’interface IFormatter ❖ BinaryFormatter persiste l’objet dans un fichier binaire et SoapFormatter persiste l’objet dans un format XML La personnalisation 3
  • 53. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour sérialiser un objet, il faut tout d’abord le marquer avec l’attribut Serializable sinon il y aura une levée d’exception de type SerializationException Exemple de classe sérialisable La personnalisation 3 Introduction
  • 54. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 Exemple de sérialisation binaire Exemple de sérialisation soap ❖ Voici deux exemples de sérialisation binaire et soap La personnalisation 3 Introduction
  • 55. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la sérialisation en utilisant StreamingInfo, il faut implémenter l’interface ISerializable La personnalisation 3 Un premier Exemple de personnalisation de sérialisation Introduction Désérialisation Sérialisation
  • 56. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la sérialisation en utilisant StreamingContext ,il faut tout d’abord définir le contexte au niveau du code d’appel La personnalisation 3 Un premier Exemple de personnalisation de sérialisation Introduction
  • 57. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Par la suite le récupérer lors du processus de sérialisation La personnalisation 3 Un premier Exemple de personnalisation de sérialisation Introduction
  • 58. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la déserialisation à l’aide de l’interface IDeserializationCallback La personnalisation 3 Un Exemple de personnalisation de déserialisation Introduction
  • 59. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-Binaire & Soap Formatters 1 Le processus 2 ❖ Pour la personnalisation de la sérialisation/déserialisation à l’aide des méthodes La personnalisation 3 Actions pré et post sérialisation Actions pré et post désérialisation Introduction
  • 60. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La sérialisation-Binary & Soap Formatters
  • 61. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La sérialisation XML Partie I
  • 62. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 Les techniques 2 ❖ La sérialisation XML est effectuée à l’aide du type XMLSerializer  Les objets publiques d’une manière partielle à l’exception des indexeurs, les propriétés en lecture seule et les propriété non publiques ❖ Les objets sujets de sérialisation XML sont:  La sérialisation des objets ICollection et IEnumerable est partielle, elle ne comprend par les propriétés non publiques
  • 63. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 Les techniques 2 ❖ Il y a plusieurs techniques de sérialisation XML:  Sérialisation XML d'un type scalaire ou composé  Sérialisation XML du tableau d'objets  Sérialisation XML de DataSet  Un ensemble d’objets souvent organisés sous forme hiérarchique de graphe  Un ensemble objets organisés conformément au modèle entités relations ❖ La sérialisation de DataSet peut concerner:
  • 64. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Technique de sérialisation scalaire Les techniques ❖ Technique de sérialisation de type composé
  • 65. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Techniques de sérialisation des tableaux d’objets La personnalisation 3 Les techniques ❖ Techniques de sérialisation de DataSet
  • 66. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ La personnalisation de la sérialisation XML se fait de deux manières La personnalisation 3 Les techniques  En implémentant l’interfaces IXmlSerializable  En appliquant les attributs sur les membres des objets [XmlRoot] [XmlElement] [XmlAttribute] [XmlIgnore] [XmlArrayItem] [XmlChoiceIdentifier]
  • 67. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Présentation de l’interface IXmlSerializable La personnalisation 3 Les techniques Méthode Description GetSchema() Utilisée rarement pour spécifier un schéma personnalisé dans ce cas la classe sujet de sérialisation doit être décorée par XmlSchemaProviderAttribute sinon la valeur retournée par cette méthode doit être nulle dans la plupart des situations ReadXml(XmlReader) Génère un objet à partir de sa représentation XML WriteXml(XmlWriter) Convertit un objet en sa représentation XML
  • 68. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Présentation des attributs La personnalisation 3 Les techniques  XmlRoot : Il représente l’élément racine  XmlElement : Il représente un nœud élément  XmlAttribute : Il représente un nœud attribut  XmlIgnore : Il force la non sérialisation du membre  XmlArrayItem : Il représente un élément faisant partie d’un tableau  XmlChoiceIdentifier : Il représente un élément faisant partie d’une énumération
  • 69. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La sérialisation-XML
  • 70. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La sérialisation XML Partie II
  • 71. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 Les techniques 2 ❖ La sérialisation XML est principalement faite à l’aide du type XMLSerializer  Les objets publiques d’une manière partielle à l’exception des indexeurs et les propriétés en lecture seule et les propriété non publiques ❖ Les objets sujets de sérialisation XML sont:  La sérialisation des objets ICollection et IEnumerable est partielle, elle ne comprend par les propriétés non publiques
  • 72. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 Les techniques 2 ❖ Il y a plusieurs techniques de sérialisation XML:  Sérialisation XML d'un type scalaire ou composé  Sérialisation XML du tableau d'objets  Sérialisation XML de DataSet  Un ensemble d’objets souvent organisés sous forme hiérarchique de graphe  Un ensemble objets organisés conformément au modèle entités relations ❖ La sérialisation de DataSet peut concerner:
  • 73. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Technique de sérialisation scalaire Les techniques ❖ Technique de sérialisation de type composé
  • 74. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Techniques de sérialisation des tableaux d’objets La personnalisation 3 Les techniques ❖ Techniques de sérialisation de DataSet
  • 75. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ La personnalisation de la sérialisation XML se fait de deux manières La personnalisation 3 Les techniques  En implémentant l’interface IXmlSerializable  En appliquant les attributs sur les membres des objets [XmlRoot] [XmlElement] [XmlAttribute] [XmlIgnore] [XmlArrayItem] [XmlChoiceIdentifier]
  • 76. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Présentation de l’interface IXmlSerializable La personnalisation 3 Les techniques Méthode Description GetSchema() Utilisée rarement pour spécifier un schéma personnalisé dans ce cas la classe sujet de sérialisation doit être décorée par XmlSchemaProviderAttribute sinon la valeur retournée par cette méthode doit être nulle dans la plupart des situations WriteXml(XmlWriter) Convertit un objet en sa représentation XML personnalisée ReadXml(XmlReader) Génère un objet à partir de sa représentation XML personalisée
  • 77. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 2 ❖ Présentation des attributs La personnalisation 3 Les techniques  XmlRoot : Il représente l’élément racine  XmlElement : Il représente un nœud élément  XmlAttribute : Il représente un nœud attribut  XmlIgnore : Il force la non sérialisation du membre  XmlArrayItem : Il représente un élément faisant partie d’un tableau  XmlChoiceIdentifier : Il représente un élément faisant partie d’une énumération
  • 78. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La sérialisation-XML
  • 79. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La sérialisation XML Partie III
  • 80. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML ❖ Outre que XMLSerializer, il existe deux autres types qui permettent de sérialiser désérialiser des objets en format XML, il s’agit de  NetDataContractSerializer  DataContractSerializer ❖ DataContractSerializer est utilisé dans un contexte de sérialisation XML à l’aide d’un contrat de données fournit ❖ NetDataContractSerializer est utilisé dans un contexte de sérialisation XML à l’aide des types .Net Framework, il est moins limité en cas de sérialisation dans un contexte de transtypage ❖ A ne pas confondre avec le type DataContractJsonSerializer Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3
  • 81. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML ❖ Pour utiliser l’un des deux types de serializers il faut décorer le type sujet de sérialisation avec les attributs adéquats Exemple de classe à sérialiser Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3
  • 82. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Exemple de code de sérialisation Exemple de output Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3
  • 83. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML ❖ On va imaginer le cas où il est nécessaire de sérialiser une collection de types dérivées d’un type de base Classe de base Classe dérivée Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3
  • 84. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML ❖ En cas de sérialisation avec transtypage Cas de sérialisation avec transtypage Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3
  • 85. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML ❖ En cas de sérialisation on aura une levée de SerializationException Cas de sérialisation avec transtypage Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3
  • 86. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3 ❖ Il est possible de résoudre cette contrainte via deux méthodes  Définition d’un DataContractResolver et son injection dans le processus de sérialisation  Décoration du type de base avec un ensemble d’attributs du type KnownTypeAttribute mentionnant les noms de chaque type dérivé
  • 87. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-XML Exemple de code de sérialisation Exemple de output Présentation 1 DataContractSerializer 2 NetDataContractSerializer 3
  • 88. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La sérialisation-XML
  • 89. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant La sérialisation JSON
  • 90. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-JSON Présentation 1 DataContractJsonSerializer 2 ❖ La sérialisation sous format JSON est représentée par les espaces noms:  System.Runtime.Serialization.Json  System.Web.Script.Serialization JasonSerializer 3 Contrôle 4 Le gestionnaire des références
  • 91. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-JSON ❖ La sérialisation avec DataContractJsonSerializerPrésentation 1 DataContractJsonSerializer 2 JasonSerializer 3 Contrôle 4
  • 92. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-JSON ❖ La sérialisation avec JavascriptSerializerPrésentation 1 DataContractJsonSerializer 2 JasonSerializer 3 Contrôle 4
  • 93. Préparation de la certification MCSD 70-483: Programmer en C# La sérialisation-JSON ❖ Le contrôle ou la personnalisation de format de sortie s’effectue à travers les propriétés de l’attribut DataMemberAttribute Présentation 1 DataContractJsonSerializer 2 JavascriptSerializer 3 Contrôle 4  Order : De type entier qui force l’ordre d’apparition des propriétés  IsRequired : De type Boolean qui indique si la sérialisation du membre est nécessaire ou pas dans le fichier json  Name: De type chaine qui change l’affichage du nom dans le fichier json  EmitDefaultValue: De type Boolean qui indique qu’une valeur par défaut est prise en considération si une valeur n’est pas définie d’un membre
  • 94. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ La sérialisation-JSON
  • 95. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Introduction
  • 96. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Introduction Présentation 1 Tableaux 2 ❖ Les collections sont présentées au niveau de plusieurs espaces noms  System  System.Collections  System.Collections.Generic  System.Collections.Specalized  System.Collections.Concurrent  System.Collections.ObjectModel
  • 97. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Introduction Présentation 1 Tableaux 2 ❖ Les tableaux sont définis en tant que conteneurs d’un vecteur de variables dont le type et le nombre sont prédéfinis  Les tableaux à seule dimension  Les tableaux multi dimension  Les tableaux en escalier « Jagged » ❖ Les tableaux sont indexés à zéro ❖ Les tableaux sont de type référence ❖ La classe Array présente des méthodes statiques utilitaires pour manipuler des tableaux
  • 98. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections-Introduction
  • 99. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Non génériques Partie I
  • 100. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Non génériques Présentation 1 Les classes 4 ❖ Le System.Collections est un espace de noms qui contient des interfaces et des classes qui définissent différentes collections d'objets, tels que les ❖ Ces collections peuvent contenir des  Interfaces  Listes  Les piles  Les files  Les tableaux de hachages  Types scalaires  Classes  Structures
  • 101. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Non génériques Présentation 1 Les classes 4 ArrayList HashTable Queue Stack SortedList Comparer BitArray L’espace nom System.Collections:
  • 102. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections-Non génériques
  • 103. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Non génériques Partie II
  • 104. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Non génériques Présentation 1 ❖ Il est possible d’implémenter une collection personnalisée en héritant de la classe CollectionBase
  • 105. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections-Non génériques
  • 106. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Génériques Partie I
  • 107. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Génériques Présentation 1 Les classes 4 ❖ Les collections génériques apparaissent dès la version C# 2.0 ❖ Les types des éléments sont exprimés en format générique <T> sous forme de:  Listes  Les piles  Les files  Les dictionnaires ❖ Ces classes sont fortement typées et plus performantes en les comparant avec leurs équivalentes en System.Collection ❖ L'espace de noms System.Collections.Generic contient des classes utilisées lorsque il est connu d’avance les types de données à stocker
  • 108. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Génériques Présentation 1 Les classes 4 List<T> Queue<T> Stack<T> LinkedList<T> Dictionary<T,U> L’espace nom System.Collections.Generic: SortedDictionary<T,U>
  • 109. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections- Génériques
  • 110. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Génériques Partie II
  • 111. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Génériques Présentation 1 ❖ Présentation de cas d’implémentation de IList<T>
  • 112. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections- Génériques
  • 113. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Spécialisées
  • 114. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Spécialisés Présentation 1 Les classes 4 ❖ L'espace de noms System.Collections.Specialized contient des collections spécialisées qui sont essentiellement concentrées sur la manipulation des ensembles des chaines  La collection de chaines  Le dictionnaire de chaines  Le dictionnaires Hybride
  • 115. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Génériques Présentation 1 Les classes 4 HybridDictionaryListDictionary NameValueCollection CollectionsUtil StringDictionary L’espace nom System.Collections.Specialized:
  • 116. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections- Génériques
  • 117. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Spécialisés Partie II
  • 118. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Spécialisés Présentation 1 ❖ La seule implémentation personnalisée dans ce cas concerne l’interface INotifyCollectionChanged
  • 119. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections- Spécialisés
  • 120. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Les collections Objet Model
  • 121. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Objet Model Présentation 1 Les classes 4 ❖ L'espace de noms System.Collections.ObjectModel contient des collections applicables dans un contexte de modelisation  La collection générique  La collection observable  La collection à clé  Les collection et dictionnaire en lecture seule
  • 122. Préparation de la certification MCSD 70-483: Programmer en C# Les collections-Objet Model Présentation 1 Les classes 4 Collection<T> ObservableCollection<T> KeyedCollection ReadOnlyCollection ReadOnlyObservableCollection<T> ReadOnlyDictionary<Key,Value> L’espace nom System.Collections.ObjectModel:
  • 123. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Les collections- Objet model
  • 124. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Accès aux données ADO.NET Introduction
  • 125. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- ADO.Net Introduction Présentation 1 Les types 4 ❖ ADO.NET est considéré comme un pont entre les applications et la base de données ❖ Les objets ADO.NET encapsulent toutes les opérations d'accès aux données et les contrôles qui interagissent avec ces objets pour afficher les données ❖ Contrairement aux objets ADO, les objets ADO.NET fournissent deux modes de connexions  Le mode connecté  Le mode non connecté ❖ Dans le cas du mode non connecté, des clichés de données sont stockées dans des conteneurs spéciaux appelés DataSet
  • 126. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- ADO.Net Introduction Présentation 1 Les types 4 Connection DataAdapter Command DataReader DataSet DataTable DataRelation DataColumn DataRow Présentation structurelle de ADO.NET Mode connecté Mode non connecté
  • 127. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- ADO.Net Introduction Présentation 1 Les types 4 Connection DataAdapter 1. Select 2. Insert 3. Delete 4. Update Command DataReader Execute command DataSet Présentation fonctionnelle de ADO.NET
  • 128. Préparation de la certification MCSD 70-483: Programmer en C# Présentation 1 Les types 4 DataSet L’espace nom System.Data: DataTable DataRelation DataColumn DataRow DataView IDataReader IDbCommand IDbConnection IDbDataAdapter IDbDataParameter Les classes: Les interfaces: Accès aux données- ADO.Net Introduction
  • 129. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Accès aux données – ADO.Net-Introduction
  • 130. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Accès aux données ADO.NET Implémentation
  • 131. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- ADO.Net Implémentation Présentation 1 SqlClient 4 ❖ Les principales implémentations de ADO.Net se trouvent sous les espaces noms  System.Data.Odbc  System.Data.Oledb  System.Data.SqlClient ❖ L’espace nom System.Data.Common contient les classes partagées par les implémentations de ADO.Net ❖ L’espace nom System.Data.SQL contient les classes spécifiques à SQL Server
  • 132. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- ADO.Net Implémentation Présentation 1 SqlClient 4 SqlConnection L’espace nom System.Data.SqlClient: SqlCommand SqlCommandBuilder SqlDataAdapter SqlParameter SqlParameterCollection SqlDataReader SqlTransaction SqlExcpetion SqlError
  • 133. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Accès aux données- ADO.Net Implémentation
  • 134. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Accès aux données LINQ Partie II
  • 135. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ ❖ L'acronyme LINQ signifie Language Integrated Query ❖ LINQ est un ORM qui intègre habilement les requêtes en C # en mappant les divers composants d’une base de données en objets CLR requêtable via un Language très proche de SQL ❖ On désigne par le terme fournisseur LINQ, la couche logicielle qui permet de mapper les éléments d’un environnement requêtable non managé à leurs équivalents en terme de CLR ❖ Il existe plusieurs fournisseurs LINQ  LINQ to Objects  LINQ to SQL  LINQ to XML ❖ Il existe plusieurs autres fournisseurs LINQ ❖ Il est possible de créer son propre fournisseur LINQ Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 136. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ ❖ LINQ offre une IntelliSense lors du développement ❖ LINQ permet une expérience de débogage encore plus facile ❖ Contrairement à SQL, le LINQ est extensible puisqu’il est essentiellement basé sur la notion des méthodes extensions ❖ Contrairement à SQL, le LINQ permet la jointure des données issues de divers sources de données en une seule requête ❖ Le LINQ permet une transformation plus facile de structure de données Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5 Les avantages de LINQ:
  • 137. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To SQL Présentation 1 To SQL 2 ❖ Les requêtes effectuées dans un contexte LINQ to SQL renvoient des variables qui sont généralement de type IQueryable <T> ❖ LINQ to SQL est basé essentiellement sur trois couches:  LINQ API composée de méthodes qui présentent les divers fonctionnalités de requêtes  Le fournisseur LINQ to SQL  ADO.NET To OBJECT 3 To XML 4 Mots clés 5
  • 138. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To OBJECTS ❖ Les requêtes dans LINQ to Objects renvoient des variables de type généralement IEnumerable <T> uniquement ❖ LINQ to Objects présente également de nombreux avantages par rapport aux boucles foreach traditionnelles, tel que:  La lisibilité  Le filtrage puissant  La possibilité d’agrégation  Le codage minimal Présentation 1 To SQL 2 To OBJECTS 3 To XML 4 Mots clés 5
  • 139. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To XML ❖ LINQ to XML est représenté par l’espace nom System.Xml.Linq XCData XComment XContainer XDeclaration XDocument XDocumentType XElement XNodeDocumentOrderComparer XNodeEqualityComparer XAttribute XObject XObjectChangeEventArgs Xprocessing instruction XText Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 140. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- Mots clés from select group into orderby join let in onequals by ascending descending where Les requêtes LINQ Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 141. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Accès aux données- LINQ
  • 142. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Accès aux données LINQ Partie II
  • 143. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ ❖ L'acronyme LINQ signifie Language Integrated Query ❖ LINQ est un ORM qui intègre habilement les requêtes en C # en mappant les divers composants d’une base de données en objets CLR requêtable via un Language très proche de SQL ❖ On désigne par le terme fournisseur LINQ, la couche logicielle qui permet de mapper les éléments d’un environnement requêtable non managé à leurs équivalents en terme de CLR ❖ Il existe plusieurs fournisseurs LINQ  LINQ to Objects  LINQ to SQL  LINQ to XML ❖ Il existe plusieurs autres fournisseurs LINQ ❖ Il est possible de créer son propre fournisseur LINQ Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 144. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ ❖ LINQ offre une IntelliSense lors du développement ❖ LINQ permet une expérience de débogage encore plus facile ❖ Contrairement à SQL, le LINQ est extensible puisqu’il est essentiellement basé sur la notion des méthodes extensions ❖ Contrairement à SQL, le LINQ permet la jointure des données issues de divers sources de données en une seule requête ❖ Le LINQ permet une transformation plus facile de structure de données Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5 Les avantages de LINQ:
  • 145. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To SQL Présentation 1 To SQL 2 ❖ Les requêtes effectuées dans un contexte LINQ to SQL renvoient des variables qui sont généralement de type IQueryable <T> ❖ LINQ to SQL est basé essentiellement sur trois couches:  LINQ API composée de méthodes qui présentent les divers fonctionnalités de requêtes  Le fournisseur LINQ to SQL  ADO.NET To OBJECT 3 To XML 4 Mots clés 5
  • 146. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To OBJECTS ❖ Les requêtes dans LINQ to Objects renvoient des variables de type généralement IEnumerable <T> uniquement ❖ LINQ to Objects présente également de nombreux avantages par rapport aux boucles foreach traditionnelles, tel que:  La lisibilité  Le filtrage puissant  La possibilité d’agrégation  Le codage minimal Présentation 1 To SQL 2 To OBJECTS 3 To XML 4 Mots clés 5
  • 147. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To XML ❖ LINQ to XML est représenté par l’espace nom System.Xml.Linq XCData XComment XContainer XDeclaration XDocument XDocumentType XElement XNodeDocumentOrderComparer XNodeEqualityComparer XAttribute XObject XObjectChangeEventArgs Xprocessing instruction XText Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 148. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- Mots clés from select group into orderby join let in onequals by ascending descending where Les requêtes LINQ Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 149. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Accès aux données- LINQ
  • 150. Préparation de la certification MCSD 70-483: Programmer en C# Béchir BEJAOUI Formateur et consultant indépendant Accès aux données LINQ Partie III
  • 151. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ ❖ L'acronyme LINQ signifie Language Integrated Query ❖ LINQ est un ORM qui intègre habilement les requêtes en C # en mappant les divers composants d’une base de données en objets CLR requêtable via un Language très proche de SQL ❖ On désigne par le terme fournisseur LINQ, la couche logicielle qui permet de mapper les éléments d’un environnement requêtable non managé à leurs équivalents en terme de CLR ❖ Il existe plusieurs fournisseurs LINQ  LINQ to Objects  LINQ to SQL  LINQ to XML ❖ Il existe plusieurs autres fournisseurs LINQ ❖ Il est possible de créer son propre fournisseur LINQ Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 152. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ ❖ LINQ offre une IntelliSense lors du développement ❖ LINQ permet une expérience de débogage encore plus facile ❖ Contrairement à SQL, le LINQ est extensible puisqu’il est essentiellement basé sur la notion des méthodes extensions ❖ Contrairement à SQL, le LINQ permet la jointure des données issues de divers sources de données en une seule requête ❖ Le LINQ permet une transformation plus facile de structure de données Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5 Les avantages de LINQ:
  • 153. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To SQL Présentation 1 To SQL 2 ❖ Les requêtes effectuées dans un contexte LINQ to SQL renvoient des variables qui sont généralement de type IQueryable <T> ❖ LINQ to SQL est basé essentiellement sur trois couches:  LINQ API composée de méthodes qui présentent les divers fonctionnalités de requêtes  Le fournisseur LINQ to SQL  ADO.NET To OBJECT 3 To XML 4 Mots clés 5
  • 154. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To OBJECTS ❖ Les requêtes dans un contexte LINQ to Objects renvoient des variables de type IEnumerable <T> ❖ LINQ to Objects présente également de nombreux avantages par rapport aux boucles foreach traditionnelles, tel que:  La lisibilité  Le filtrage puissant  La possibilité d’agrégation  Le codage minimal Présentation 1 To SQL 2 To OBJECTS 3 To XML 4 Mots clés 5
  • 155. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- LINQ-To XML ❖ LINQ to XML est représenté par l’espace nom System.Xml.Linq XCData XComment XContainer XDeclaration XDocument XDocumentType XElement XNodeDocumentOrderComparer XNodeEqualityComparer XAttribute XObject XObjectChangeEventArgs Xprocessing instruction XText Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 156. Préparation de la certification MCSD 70-483: Programmer en C# Accès aux données- Mots clés from select group into orderby join let in onequals by ascending descending where Les requêtes LINQ Présentation 1 To SQL 2 To OBJECT 3 To XML 4 Mots clés 5
  • 157. Préparation de la certification MCSD 70-483: Programmer en C# Ce qu’on a vu ▪ Accès aux données- LINQ
  • 158. Préparation de la certification MCSD 70-483: Programmer en C# Le Bilan Béchir BEJAOUI Formateur et consultant indépendant Ce que nous avons vu ensemble
  • 159. Préparation de la certification MCSD 70-483: Programmer en C# Le bilan ❖ Chapitre I  Les techniques de validation via les expressions régulières  Les techniques de débogage « System.Diagnostics »  Les directives  Les techniques de validation dans un contexte de globalisation  Les techniques de validation des entrées  La gestion des assemblées  Le cryptage/décryptage des données
  • 160. Préparation de la certification MCSD 70-483: Programmer en C# Le bilan  Les opérations entrées et sorties cas de fichiers et dossiers ❖ Chapitre II  La sérialisation XML  La sérialisation JSON  Les opérations entrées et sorties cas du WebClient  La sérialisation Binary &Soap
  • 161. Préparation de la certification MCSD 70-483: Programmer en C# Le bilan  Les collections non génériques ❖ Chapitre III  Les collections model d’objets  La couche applicative ADO.Net  Les collections génériques  Les collection spécialisées  La couche applicative LINQ ❖ Chapitre IV
  • 162. Préparation de la certification MCSD 70-483: Programmer en C# Le bilan A Bientôt