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