La plateforme Microsoft .NET - PowerPoint PPT Presentation

About This Presentation
Title:

La plateforme Microsoft .NET

Description:

Title: PowerPoint Presentation Last modified by: Poirey Created Date: 1/1/1601 12:00:00 AM Document presentation format: Affichage l' cran Other titles – PowerPoint PPT presentation

Number of Views:150
Avg rating:3.0/5.0
Slides: 123
Provided by: franckDel
Category:

less

Transcript and Presenter's Notes

Title: La plateforme Microsoft .NET


1
La plateforme Microsoft .NET
- Ce cours \\santiago\Cours et TPs
2005-2006\Cedrik Poirey\MS.NET - Installation
Visual Studio .NET \\santiago\installs\all -
Compte MSN Cedrik mrow_monaco_at_hotmail.com
2
Sommaire
  • Quest ce que .NET
  • Vue densemble du Framework .NET
  • Le Common Language Runtime
  • C et VB.NET
  • Visual Studio .NET
  • ASP.NET
  • ADO.NET et XML

3
Historique
.NET ???
1995
Internet
IE, IIS
Visual Studio
4
.NET ???
5
La plate forme .NET
.NET ???
PC périphériques
Experiences utilisateur
VisualStudio.NET .NET Framework
Authentication
Web services .NET MyServices
Storage
Notification
Mobile Information 2001 Server
Host Integration Server 2000
Application Center 2000
BizTalk Server 2000
Commerce Server 2000
Exchange 2000
SQL Server 2000
ISA Server 2000
Serveurs
Enterprise Servers
Windows 2000 Server
6
.NET Clients
.NET ???
  • Windows-powered
  • Supporte XML et les services Web
  • Fonctionne en autonome ou en mode connecté

7
Sommaire
  • Quest ce que .NET
  • Vue densemble du Framework .NET
  • Le Common Language Runtime
  • C et VB.NET
  • Visual Studio .NET
  • ASP.NET
  • ADO.NET et XML

8
Schématisation de .NET
FRAMEWORK
Protocoles Internet ouverts SOAP, SCL, DISCO,
HTTP SMTP, XML, WAP, XSD
Visual Studio .NET
Vos services internes
Votre application et votre service Web
Orchestration
.NET Enterprise Servers
.NET Framework
Autres applications utilisant votre service
Opérations
Windows CE, Me, 2000, .NET
Building Block Services
Clientsfinaux
Services Web publics
9
Framework, langages et outils
FRAMEWORK
VB
C
C
Visual Studio .NET
JScript

Common Language Specification
ASP .NET
Windows Forms
Données et XML
Bibliothèque de classes de base
Common Language Runtime
Windows
Services COM
10
FRAMEWORK
Vue densemble
Components SecurityTransactions XML Abilities
11
Objectifs
FRAMEWORK
  • Intégration de lexistant
  • Multiples langages de programmation (vingtaine)
  • Interopérabilité COM
  • Compatibilité  side by side  (2 versions dun
    même composant)
  • Développement dapplications simplifié
  • Modèle de programmation unifié
  • Elever le niveau dabstraction (gtmodèle objet)
  • classe, interface, héritage, propriété, event,
    constructor, exception
  • Elimination complète de la plomberie COM
  • Bibliothèque de classe riche et extensible
  • Intégration native des standards Web
  • Environnement dexécution robuste et sécurisé
  • Code managé (GC, Type Safe, Self-configuring,
    dynamically tuning)
  • Runtime Security (unification du mode de
    traitement des erreurs)
  • Déploiement et administration simplifiés
  • Assemblies (versioning, securité, evolution des
    DLLs)
  • Installation Zero-Impact (Xcopy, pas
    denregistrement)

12
Unifier les Modèles de Programmation
FRAMEWORK
API cohérente quelque soit le langage ou le type
dapplication
13
Intégration native de XML
FRAMEWORK
.NET Framework fournit une mise en correspondance
bidirectionnelle
Concepts Applicatifs
Données
Schéma
Services
Invocation
14
Composition
FRAMEWORK
ADO.NET and XML
Base Class Library
Common Language Runtime
15
Common Language Runtime
FRAMEWORK
  • Common Language
  • Ouvert à différentes syntaxes (CLS)
  • FrameWork Objet pour le développeur
  • Runtime
  • Une exécution managée et contrôlée
  • Managed Code, Managed Memory
  • Services ( XML, DATA, WEB )
  • Basé sur
  • Win32, XML, SOAP
  • Inter opère avec DCOM/COM, COM1.0

16
.NET Syntaxes
FRAMEWORK
  • La plate-forme .Net est indépendante du langage
  • Tous les langages accèdent aux services fournis
    par la CLR
  • Commun Langage Spécification (CLS)
  • Spécification décriture des compilateurs
     syntaxiques 
  • Chaque langage utilise et étend le framework .Net
  • Les langages .Net sont interopérables.

17
Base Class Library
FRAMEWORK
18
The big picture
FRAMEWORK
VB
C
C
Visual Studio.NET
J

Common Language Specification
ASP.NET Web Forms Web Services
Windows Forms
Soumis à LECMA
ADO.NET (Données XML)
Base Class Library
Common Language Runtime
19
Sommaire
  • Quest ce que .NET
  • Vue densemble du Framework .NET
  • Le Common Language Runtime
  • Webcast
  • Un peu de code
  • GC
  • C et VB.NET
  • Visual Studio .NET
  • ASP.NET
  • ADO.NET et XML

20
Common Language Runtime
CLR/Sommaire
  • Objectifs
  • Conception compilation
  • Déploiement
  • Exécution
  • A propos du Garbage Collector
  • Résumé

21
Simplification du développement
CLR/Objectifs
  • Moins d'écriture, davantage de réutilisation
  • Framework étendu et homogène
  • Classes et interfaces
  • Disparition de toute la "plomberie"
  • Métadonnées
  • Proxies transparents
  • Gestion de la mémoire
  • Un ensemble d'outils de support WYSIWYG non
    négligeable
  • Concepteurs et assistants
  • Débogueurs
  • Générateurs de profils

Pour une productivité accrue.
22
Simplification et sécurisation accrue du
déploiement
CLR/Objectifs
  • Aucun enregistrement, installation à zéro impact
  • Déploiement avec XCOPY, téléchargement
    incrémentiel
  • Versions côte-à-côte des composants partagés
  • Stockage des versions au moment de la compilation
  • Stratégie d'administration au moment de
    l'exécution
  • Stratégie de sécurité basée sur la preuve
  • Basée sur l'identité et l'utilisateur du code
  • Origine du code (emplacement)
  • Éditeur (clé publique)

Pour enfin mettre un terme à l'"enfer des DLL" !
23
Évolutivité
CLR/Objectifs
  • Des périphériques intelligents aux parcs Web
  • Gestion automatique de la mémoire
  • Autoconfiguration
  • Paramétrage dynamique
  • Pool de threads
  • Gestion asynchrone des communications
  • Accès distant aux objets
  • Événements
  • Version pour périphérique intelligent
  • Systèmes d'exploitation en temps réel (RTOS,
    Real-Time Operating System)
  • Mêmes outils utilisés pour le bureau

Pour un meilleur rapport performance/coût.
24
Fonctionnalité multi langage
CLR/Objectifs
  • Système de type commun
  • Orienté objet
  • Prise en charge des langages procéduraux
  • Possibilité de prise en charge des langages
    fonctionnels
  • La CLS guide la conception du framework
  • Ensemble de règles permettant une utilisation
    étendue
  • L'ensemble de la fonctionnalité .NET Framework
    est disponible
  • Plus de 20 langages étudiés
  • La plupart sont des "consommateurs CLS"
  • Beaucoup étendent la CLS

Un large éventail d'outils pour vos travaux.
25
Les langages disponibles
CLR/Objectifs
  • Managed C
  • Visual Basic
  • C
  • SmallTalk
  • Oberon
  • Scheme
  • Mercury
  • Oz
  • Objective Caml
  • Perl
  • Python
  • Cobol
  • Haskell
  • ML
  • Jscript
  • Ada
  • APL
  • Eiffel
  • Pascal
  • Fortran

26
Unification des types
CLR/Objectifs
27
Vue densemble
CLR/Objectifs
Base Class Library Support
Class Loader
28
Common Language Runtime
CLR/Sommaire
  • Objectifs
  • Conception compilation
  • Déploiement
  • Exécution
  • A propos du Garbage Collector
  • Résumé

29
Métadonnées
CLR/Conception compilation
  • Informations indépendantes du langage, et plus
    encore
  • Élément clé pour un modèle de programmation
    simplifié
  • Automatiquement générées par les compilateurs
  • Stockées avec le code dans le fichier exécutable
  • Stockées au format binaire
  • Requises pour l'exécution (obligatoires)
  • Convertibles en et à partir du schéma XML et des
    bibliothèques de types COM

30
Que contiennent les métadonnées ?
CLR/Conception compilation
  • Description de l'unité de déploiement (assembly)
  • Identité  nom, version, culture, clé publique
  • Quels sont les types exportés ?
  • Quels sont les assemblys dont elle dépend ?
  • Quelles sont les autorisations de sécurité
    requises pour l'exécution ?
  • Description des types
  • Nom, visibilité, classe de base, interfaces
    implémentées
  • Membres (méthodes, champs, propriétés,
    événements, types imbriqués)
  • Attributs personnalisés
  • Définis par l'utilisateur (auteur ?)
  • Définis par le compilateur (const)
  • Définis par le framework (DllImport, Obsolete)

31
Métadonnées  création et utilisation
CLR/Conception compilation
Sérialisation
Réflexion
Codesource
Concepteurs
Exportateur TLB
Compilateur
Débogueur
Compilateurs
Métadonnées (et code)
Générateurde profils
Explorateurde types
Générateurde schéma
Générateur proxy
Codage XML (SDL ou SUDS)
32
Les compilateurs utilisent les métadonnées
CLR/Conception compilation
  • Pour l'importation de types de données
    interlangages
  • Émettent des métadonnées dans le code de sortie
  • Décrivent les types définis et utilisés
  • Enregistrent les assemblys externes référencés
  • Enregistrent les informations de version
  • Les attributs personnalisés peuvent être utilisés
  • Obsolète
  • Conformité CLS
  • Compilés pour le déboguage
  • Marqueurs spécifiques au langage

33
D'autres outils utilisent les métadonnées
CLR/Conception compilation
  • Explorateurs de types et d'objets
  • Classes de réflexion
  • Concepteurs
  • Importateur et exportateur TLB
  • Outils de documentation
  • Débogueurs et générateurs de profils

34
Common Language Runtime
CLR/Sommaire
  • Objectifs
  • Conception compilation
  • Déploiement
  • Exécution
  • A propos du Garbage Collector
  • Résumé

35
Assembly
CLR/Déploiement
  • Unité de déploiement
  • Un seul ou plusieurs fichiers, indépendants du
    packaging
  • Autodescriptive par le biais des métadonnées
    (manifeste)
  • Unité de versioning
  • Stockée par le compilateur
  • Stratégie par application et par ordinateur
  • Amélioration de la sécurité
  • Des autorisations sont attribuées aux assemblys
  • Les méthodes peuvent demander la preuve qu'une
    autorisation a été accordée à toute la chaîne
    d'appel
  • Les assemblys servent d'intermédiaires aux
    importations et exportations
  • Les types référencés sont relatifs à l'assembly

36
Applications
CLR/Déploiement
  • Les applications sont des unités configurables
  • Un assembly ou plus
  • Fichiers ou données spécifiques aux applications
  • L'emplacement des assemblys est déterminé en
    fonction de 
  • Leur nom logique (nom, éditeur, version et
    culture)
  • L'application qui les charge
  • Les applications peuvent avoir des versions
    privées des assemblys
  • La stratégie de version peut être définie par
    application

37
Common Language Runtime
CLR/Sommaire
  • Objectifs
  • Conception compilation
  • Déploiement
  • Exécution
  • A propos du Garbage Collector
  • Résumé

38
Modèle d'exécution
CLR/Exécution
VB
VC
C

IL
Codenatif
NGEN
Common Language Runtime
Compilateur JIT standard
Codenatif
39
Code managé
CLR/Exécution
  • Le code managé fournit 
  • Les métadonnées décrivant les données
  • L'emplacement des références aux objets
  • Les tables de gestion des exceptions
  • Donc, le runtime peut fournir 
  • La gestion des exceptions
  • La sécurité
  • La gestion automatique de la durée de vie
  • Le débogage et la génération de profils

40
Flux de contrôle du runtime
CLR/Exécution
Assembly
Chargeurde classes
Première référence au type
Compilateur du code IL en code natif
Supportd'exécution
Codenatifmanagé
Premier appel de méthode
Gestionnairesde code
Systèmede sécurité
Processeur
41
Compilationdu code IL en code natif
CLR/Exécution
  • JIT "standard"
  • Génère du code natif optimisé
  • Inclut une vérification du code en langage
    intermédiaire (IL, Intermediate Language)
  • Génération de code au moment de l'installation
    (NGEN)
  • Exécutée au moment de l'installation
  • Réduit le temps de démarrage
  • Vérifications de version du code natif et retour
    au runtime JIT en cas d'erreur

42
Données managées
CLR/Exécution
  • Disposition fournie par le CLR pour gerer
    certaines parties de la mémoire
  • Généralement automatique
  • Les métadonnées peuvent spécifier 
  • L'ordre
  • La compression
  • La disposition explicite
  • Durée de vie gérée par le CLR (GC)
  • Jeu de travail compacté
  • Données déplacées
  • Références aux objets mises à jour
  • Erreurs de page prises en charge

43
Appel de code non managé
CLR/Exécution
Non managé
Codenatif
Managé
Common Language Runtime
Compilateur JIT standard
Codenatif
44
Trois mécanismes
CLR/Exécution
  • COM Interop
  • Identité des objets conservée (IUnknown)
  • Interfaces COM sélectionnées automatiquement
    créées
  • PInvoke (Platform Invoke)
  • Appel des points d'entrée DLL statiques
  • IJW (It Just Works)
  • Pas de marshaling

45
Common Language Runtime
CLR/Sommaire
  • Objectifs
  • Conception compilation
  • Déploiement
  • Exécution
  • A propos du Garbage Collector
  • Résumé

46
Common Language Runtime
CLR/Sommaire
  • Objectifs
  • Conception compilation
  • Déploiement
  • Exécution
  • A propos du Garbage Collector
  • Résumé

47
Résumé
CLR/Résumé
  • Simplification...
  • Du développement, du déploiement et de
    l'administration
  • Code multilangage, sécurisé et mobile
  • Tout le code est compilé avant exécution
  • Pas votre machine virtuelle conventionnelle !
  • Interopérabilité totale avec le code non managé
  • Services COM, COM 1.0, Microsoft Win32, vos
    DLL
  • Évolutivité  des périphériques intelligents aux
    parcs Web

48
Common Language Runtime
  • Questions ? Remarques ?
  • Principaux concepts
  • Métadonnées
  • Multi langages (héritage)
  • Aucun enregistrement (déploiement par simple
    copie)
  • Composants side by side
  • Flux de contrôle du runtime à lexécution
  • Interop totale
  • Un peu de code

49
C IL
  • Utilisation du désassembleur ILDASM pour
    retrouver le code IL dun assembly (exe ou dll).
  • -gt Il existe des projets plus ou moins évolués de
    désassembleur IL -gt C
  • -gt Et donc des obfuscateurs .NET

50
Garbage Collector
CLR/GC
  • Managed Heap (tas managé)
  • Créer au démarrage du process
  • ( heap dédié aux larges object, gt 20000 bytes)
  • Réservation dune zone contiguë
  • Gestion dun pointeur sur le prochain
     NextObjPtr 
  • Aussi rapide quune allocation  Stack 
  • Incrémenter le pointeur de heap
  • Copie du buffer et appel constructeur
  • En fin de heap
  • Allocation/réservation (win32)
  • Garbage Collection
  • Travail par génération pour limiter le travail

Le managed heap connaît a tout moment le type
dun objet
51
Garbage Collector
CLR/GC
  • Optimisation par Gestion de Générations
  • Postulats
  • Plus les objets sont récents, plus courte est
    leur vie.
  • Plus un objet est vieux, plus sa vie est longue.
  • Les objets les plus récents tendent a avoir plus
    déchanges et sont sollicités plus fréquemment,
     en même  temps.
  • Compacter une portion de heap est plus rapide que
    de tout compacter
  • Rechercher a  regrouper  les objets
  • Bénéficier le plus possible du cache processeur
  • Limiter les accès  lointains 
  • Test sur P 200 Mhz 1 milliseconde pour un GC de
    génération 0 (full GC)
  • Objectif,  No more time than an ordinary page
    fault 

52
Garbage Collector
CLR/GC
Allocation dobjets
Déréférencement
Mark
Compact
Nouvelle allocation dobjets
53
Garbage Collector
  • La génération 2 est létape ultime du cycle de
    collecte des objets .NET
  • Un cycle de collecte ne se déclenche que lorsque
    la génération 0 est pleine, et ne sintéresse
    quaux générations qui permettront de satisfaire
    les besoins immédiats en allocation mémoire
  • Aucun moyen programmatique dinhiber le GC
  • On peut forcer le déclenchement du GC
    System.GC.Collect() ou System.GC.Collect(n)
  • (pour les tâches qui crée des objets et qui ne
    doivent pas être interrompue)

54
Sommaire
  • Quest ce que .NET
  • Vue densemble du Framework .NET
  • Le Common Language Runtime
  • C et VB.NET
  • Visual Studio .NET
  • ASP.NET
  • ADO.NET et XML

55
C et VB.NET
Langages/Sommaire
  • VB .NET Les nouveautés
  • C .NET Bref aperçu

56
Le langage VB .NET
Langages/Nouveautés VB
  • Langage réellement objet
  • Support de lhéritage
  • Support du multi-threading
  • Création de services NT
  • Extension .vb
  • Compilateur vbc.exe

57
La syntaxe VB .NET (1)
Langages/Nouveautés VB
  • Propriété
  • Déclaration de propriété (read-only ou
    write-only possible)
  • Mot-clé Property
  • Constructeurs
  • Déclaration dun constructeur
  • Utilisation dune classe implémentant un
    constructeur
  • Mot-clé New
  • Overloading
  • Possibilité de fournir plusieurs signatures à une
    même méthode
  • Héritage
  • Héritage dune autre classe (multi langage)
  • Mot-clés Inherits Mybase
  • Overriding
  • Modification du comportement dune méthode dune
    classe dont on hérite
  • Mot-clé Overrides Overridable

58
La syntaxe VB .NET (2)
Langages/Nouveautés VB
  • Events
  • Permet la communication entre classes
  • Principe dabonnement
  • Mot-clés Event RaiseEvent AddHandler
    Handles
  • Exemple
  • Gestion derreur
  • Gestion par exception
  • On oublie les On error GOTO
  • Mot-clés Try catch throw

Le client s'abonne à l'événement NouveauCours
Client
Le serveur notifie le client à chaque nouvelle
quotation
59
C et VB.NET
Langages/Sommaire
  • VB .NET Les nouveautés
  • C .NET Bref aperçu

60
C - La syntaxe
Langages/C
  • Le meilleur du C et de VB
  • Développement RAD grâce à Visual Studio.Net
  • Langage utilisé à de 80 pour développer le
    .Net Framework
  • Soumis à lECMA

61
C et le framework
Langages/C
  • C, comme tous les langages s'appuyant sur la
    plateforme .Net, peut bénéficier de tous les
    services offerts par le .NET Framework.
  • Il est impératif de regarder dans le détail les
    services proposés par ce framework

62
C.NET La base en C
Langages/C
63
C.NET La base en C
Langages/C
64
C.NET La base en C
Langages/C
65
C.NET La base en C
Langages/C
66
C.NET La base en C
Langages/C
67
C.NET La base en C
Langages/C
68
C.NET La base en C
Langages/C
69
C.NET La base en C
Langages/C
70
C.NET La base en C
Langages/C
71
Langages/C
72
C.NET La base en C
Langages/C
73
Langages/C
74
Sommaire
  • Quest ce que .NET
  • Vue densemble du Framework .NET
  • Le Common Language Runtime
  • C et VB.NET
  • Visual Studio .NET
  • ASP.NET
  • ADO.NET et XML

75
Visual Studio .NET
VS .NET/Sommaire
  • Evolution de Visual Basic et Visual C
  • IDE unifié pour les langages .NET (C, VB, C,
    J)
  • Simplification des procédures de déboguage
  • Fonctionnalités multiples
  • Personnalisation complète de lenvironnement
  • Navigateur multifonction intégré web, ms-help,
    code source, forms
  • Nombreux assistants de génération de code
  • Quelques photos décrans lien utile
  • http//support.microsoft.com/default.aspx?scidkb
    FR324775

76
(No Transcript)
77
(No Transcript)
78
VISUAL STUDIO 2005
79
PAUSE
80
Sommaire
  • Quest ce que .NET
  • Vue densemble du Framework .NET
  • Le Common Language Runtime
  • C et VB.NET
  • Visual Studio .NET
  • ASP.NET
  • ADO.NET et XML

81
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

82
Objectifs (1)
ASP .NET/Introduction
  • Amélioration des performances
  • code compilé, services de mises en cache
  • Prise en charge d'un outil de haute tenue
  • IDE WYSIWYG, déploiement automatique
  • Puissance et souplesse
  • basé sur la plateforme CLR, multi langage
  • Simplicité
  • séparation interface/logique services du CLR
    (GC, ref.)
  • Gestion aisée
  • configuration hiérarchique basé sur du texte
  • déploiement par simple copie, pas de redémarrage
    du serveur

83
Objectifs (2)
ASP .NET/Introduction
  • Évolutivité et disponibilité
  • processus supervisés et managés par le runtime de
    ASP.NET (remplacement automatique si pb)
  • Personnalisation et extensibilité
  • possibilité d'étendre ou de remplacer n'importe
    quel sous-composant du runtime de ASP.NET
  • Sécurité
  • l'authentification Windows intégrée
  • configuration par application

84
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

85
Web Forms .NET ???
ASP .NET/Web Forms
  • Modèle de programmation évolutif du CLR pour
    générer des pages Web de manière dynamique.
  • Evolution logique de ASP
  • Améliorations
  • possibilité de créer et d'employer des contrôles
    d'interface utilisateur (réutilisation, reduction
    de la quantité de code)
  • organisation claire de la logique des pages pour
    éviter le code spaghetti)
  • une prise en charge forte du design WYSIWYG des
    pages.

86
Première page Web Forms
ASP .NET/Web Forms
  • Fichier texte portant une extension de nom de
    fichier .aspx
  • Déployée au sein d'une arborescence racine
    virtuelle IIS
  • Compilée au 1er appel par le runtime dASP.NET en
    une classe .NET (cette instance compilée est
    réutilisée par la suite)
  • Création à partir dun simple fichier HTML
  • Démo (demo1.aspx)

87
Blocs de restitution ltgt ASP
ASP .NET/Web Forms
  • Compatibilité assurée avec les pages ASP
    existantes
  • Moyen puissant de manipulation, mais pas propre
    (gestion de létat de la page entre les
    aller-retours au serveur de manière
    personnalisée)
  • Démo (demo2.aspx)

88
Contrôles serveur ASP.NET
ASP .NET/Web Forms
  • En plus (remplacement) des blocs de codes lt gt
  • Balises personnalisées ou balises HTML
    intrinsèques contenant une valeur d'attribut
    runat"server".
  • Au moment de l'exécution, ces contrôles serveur
    génèrent automatiquement du contenu HTML.
  • Etat de la page géré automatiquement dans un
    champ de formulaire ltinput type"hidden"gt
  • Prise en charge de contrôles personnalisés plus
    riche (voir ltaspadrotatorgt ou ltaspcalendargt)
  • Démo (control.aspx)

89
Gestion des événements
ASP .NET/Web Forms
  • Modèle objet exposé par chaque contrôle serveur
  • propriétés
  • méthodes
  • Évènements
  • Utilisation de ce modèle objet pour modifier
    proprement la page
  • Démo (evenement.aspx)

90
Contrôles serveur personnalisés
ASP .NET/Web Forms
  • ASP.NET est fourni avec 45 contrôles serveur
    intégrés  immédiatement exploitables.
  • Possibilité pour les développeurs de rajouter
    leur propres contrôles personnalisés

91
Validation de formulaires
ASP .NET/Web Forms
  • Moyen convivial, mais puissant, de détecter les
    erreurs dans les formulaires d'entrée
  • Affichage de messages
  • Adaptation au client
  • Client supérieur JavaScript et DHTML
  • Client inférieur aller-retour sur le serveur
  • Démo (validator.aspx)

92
Méthode code-behind
ASP .NET/Web Forms
  • ASP.NET prend en charge deux méthodes de création
    des pages dynamiques
  • code de la page est physiquement déclaré au sein
    du fichier .aspx d'origine (exemples précédents)
  • méthode code-behind permet au code de la page
    d'être séparé plus proprement du contenu HTML
    dans un fichier totalement distinct
  • Démo (intro13.aspx)

93
Données et liaison de données
ASP .NET/Web Forms
  • Contrôles serveurs DataGrid et DataList pour
    afficher simplement des résultats de requêtes.
  • DataGrid rapide à mettre en œuvre
  • DataList pour mieux controler la structure et la
    présentation
  • Alternative le control Repeater qui permet de
    controler la présentation au niveau du HTML
  • Démo VS.NET
  • Datagrid remplacé par GridView dans VS 2005

94
Résumé
ASP .NET/Web Forms
  • Web Forms ASP.NET fournit un moyen aisé, mais
    puissant, de générer une interface utilisateur
    Web dynamique.
  • Les pages Web Forms ASP.NET peuvent cibler
    n'importe quel navigateur client (aucun cookie ou
    bibliothèque de scripts n'est requis).
  • Les pages Web Forms ASP.NET assurent la
    compatibilité de la syntaxe avec les pages ASP
    existantes.
  • Les contrôles serveur ASP.NET permettent
    d'encapsuler aisément des fonctionnalités
    courantes.
  • ASP.NET est fourni avec 45 contrôles serveur
    intégrés. Les développeurs peuvent également
    utiliser des contrôles créés par des tiers.
  • Les contrôles serveur ASP.NET peuvent projeter
    automatiquement du code HTML de niveau supérieur
    et de niveau inférieur.
  • Les modèles ASP.NET permettent de personnaliser
    aisément l'apparence des contrôles serveur de
    liste.
  • Les contrôles de validation ASP.NET permettent
    d'effectuer aisément une validation des données
    déclarative sur le client ou le serveur.

95
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

96
Services Web .NET
ASP .NET/Services Web
  • Fichier texte .asmx semblable aux fichiers .aspx
    plus
  • importation de l'espace de noms
    System.Web.Services
  • La classe est dérivée de la classe de base
    WebService
  • Chaque méthode devant être exposée doit avoir
    lattribut WebMethod en C, ltWebMethod()gt en
    Visual Basic ou WebMethodAttribute en JScript,
    devant sa signature
  • Ensemble d'outils et de code perfectionné pour
    l'utilisation des services Web
  • WSDL.exe outil de ligne de commande pour créer
    des classes proxy à partir de WSDL
  • Assistants dans Visual Studio pour ajouter des
    références WEB
  • A propos de linterop(types communs, tableau,
    encoding)
  • Démo

97
TP
98
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

99
Définition
ASP .NET/Applications Web
  • Cest la somme de tous les fichiers, pages,
    gestionnaires, modules et codes exécutables
    pouvant être appelés ou exécutés dans la portée
    d'un répertoire virtuel donné (et de ses
    sous-répertoires) sur un serveur d'application
    Web.
  • Sexécute dans un domaine d'application .NET
    Framework unique
  • Garantit lisolation des classes et des variables
    statiques
  • Pool d'instances de HttpApplication géré par ASP
    .NET durant la vie de lapplication. Une instance
    assignée automatiquement à chaque requète HTTP.

100
Création
ASP .NET/Applications Web
  • Dans un répertoire virtuel de serveur web.
  • Simple copie dau moins un fichier .aspx dans le
    répertoire.
  • Automatique depuis VS .NET lors de la création
    dun projet de type  Site web 

101
Durée de vie d'une application
ASP .NET/Applications Web
  • Créée lors du lancement initial d'une demande au
    serveur
  • Création dun pool dinstance de HttpApplication,
    et déclenchement de lévénement Application_Start
  • Les instances de HttpApplication traitent les
    différentes demandes jusquà la dernière
    instance, puis lévénement Application_End est
    déclenché

102
Utilisation du fichier Global.asax
ASP .NET/Applications Web
  • Situé à la racine de l'arborescence du répertoire
    virtuel de lapplication Web
  • Permet au développeur de créer la logique liée à
    la gestion des événements d'application de niveau
    supérieur (Application_Start, Application_End,
    Session_Start, Session_End )
  • Contient toutes les variables globales de
    lapplication. Attention ce nest plus le cas
    avec VS 2005. Privilégiez la création dune
    classe  MySettings  qui contiendra ces
    variables.
  • Démo

103
Remarque sur les threads multiples
ASP .NET/Applications Web
  • ASP.NET traite les demandes simultanément et
    plusieurs threads peuvent accéder à l'objet
    Application attention en cas dutilisation
    dobjets avec une portée dapplication !
  • Exemple dangereux
  • lt
  • Application("counter") CType(Application("counte
    r") 1, Int32)
  • gt
  • Code thread-safe
  • lt
  • Application.Lock()
  • Application("counter") CType(Application("counte
    r") 1, Int32)
  • Application.UnLock()
  • gt

104
Résumé
ASP .NET/Applications Web
  • Les applications ASP.NET Framework se composent
    de tous les éléments situés sous un répertoire
    virtuel du serveur Web.
  • Pour créer une application ASP.NET Framework,
    ajoutez des fichiers à un répertoire virtuel du
    serveur Web.
  • La durée de vie d'une application ASP.NET
    Framework est marquée par les événements
    Application_Start et Application_End.
  • Les applications ASP.NET Framework peuvent
    définir dans le fichier Global.asax des
    gestionnaires d'événements et des objets dont la
    portée est limitée à l'application ou à la
    session.
  • L'accès à des objets ayant une portée
    d'application doit être sécurisé pour l'accès
    multithread.

105
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

106
Services de cache
ASP .NET/Cache
  • Pour de meilleures performances
  • Conservation des pages ou des données entre les
    demandes HTTP et les réutiliser sans avoir à les
    recréer.
  • 3 types de mise en cache à disposition
  • mise en cache de sortie
  • mise en cache par fragment
  • mise en cache de données

107
Mise en cache de sortie
ASP .NET/Cache
  • Pour mettre la totalité dune page en cache.
  • Pour qu'une réponse puisse être mise dans le
    cache de sortie, elle doit posséder une stratégie
    d'expiration/validation valide et être visible
    dans le cache public.
  • Exemple
  • lt_at_ OutputCache Duration"60" VaryByParam"none"
    gt
  • lt_at_ OutputCache Duration"60" VaryByParam"state"
    gt

108
Mise en cache par fragment
ASP .NET/Cache
  • Mise en cache des parties du contenu d'une page.
  • Les parties à mettre en cache doivent être
    désignée au moyen dun contrôle utilisateur avant
    de les marquer pour la mise en cache à l'aide de
    la directive _at_ OutputCache.
  • Exemple
  • lt_at_ Register TagPrefix"Acme" TagName"Menu"
    Src"Menu.ascx" gt
  • lthtmlgt ltbodygt
  • ltAcmeMenu Category"LeftMenu" runatserver/gt
  • Hi, the time is now ltNowgt
  • ltAcmeMenu Category"RightMenu" runatserver/gt
  • lt/bodygt lt/htmlgt
  • lt_at_ OutputCache Duration"120" VaryByParam"none"
    gt
  • ltscript language"VB" runatservergt
  • lt/scriptgt
  • ltaspTextBox id"MyMenu" runatserver/gt

109
Mise en cache de données
ASP .NET/Cache
  • Permet de mettre en cache des objets arbitraires
    par programme.
  • Prend en charge l'expiration et les dépendances.
  • Limité à une application et sa durée de vie
    équivaut à celle de l'application.
  • Exemple
  • mise en cache
  • Cache("mykey") myValue
  • récupération des données
  • myValue Cache("mykey")
  • If myValue ltgt Null Then
  • DisplayData(myValue)
  • End If

110
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

111
Vue densemble
ASP .NET/configuration
  • Système de configuration riche et souple qui
    permet aux développeurs d'associer aisément des
    paramètres à une application installable et aux
    administrateurs de personnaliser ces valeurs
    après le déploiement.
  • La hiérarchie de répertoire dune application
    contient les fichiers de configuration de cette
    application (la configuration est déployée par
    simple copie).
  • Fichiers de texte brut qui peuvent être lus et
    écrits par les utilisateurs du serveur (protégés
    par IIS).
  • Les modifications apportées aux fichiers de
    configuration ASP.NET sont automatiquement
    détectées par le système.

112
Format du fichier de configuration
ASP .NET/configuration
  • Fichiers machine.config et web.config basés sur
    XML.
  • Exemple calcul des paramètres de configuration
    de l'URL http//myserver/myapplication/mydir/page.
    aspx
  • Base configuration settings for machine.
    C\WinNT\Microsoft.NET\Framework\v.2.00\config\mac
    hine.config
  • Overridden by the configuration settings for the
    site (or the root application).
    C\inetpub\wwwroot\web.config
  • Overridden by application configuration settings.
    D\MyApplication\web.config
  • Overridden by subdirectory configuration
    settings. D\MyApplication\MyDir\web.config

113
Sections de configuration standard
ASP .NET/configuration
lthttpModulesgt Responsable de la configuration des modules HTTP au sein d'une application. Parmi leurs utilisations courantes, citons la sécurité et la connexion.
lthttpHandlersgt Responsable du mappage des URL entrantes à des classes IHttpHandler
ltsessionStategt Responsable de la configuration du module HTTP d'état de la session.
ltglobalizationgt Responsable de la configuration des paramètres de globalisation d'une application.
ltcompilationgt Responsable de tous les paramètres de compilation utilisés par ASP.NET.
lttracegt Responsable de la configuration du service de suivi ASP.NET.
ltprocessModelgt Responsable de la configuration des paramètres du modèle de processus ASP.NET sur les serveurs Web IIS.
ltbrowserCapsgt Responsable du contrôle des paramètres du composant Browser Capabilities.
114
Utilisation des param. d'application
ASP .NET/configuration
  • Stockage de paramètres d'application
    personnalisés
  • chaînes de connexion de base de données
  • des chemins d'accès de fichiers
  • des URL de services Web XML distants
  • Exemple
  • ltconfigurationgt
  • ltappSettingsgt
  • ltadd key"WSURL" value"http//localhost/WSTP/Se
    rvice1.asmx"/gt
  • lt/appSettingsgt
  • lt!-- etc --gt
  • lt/configurationgt
  • Extraction
  • String wsurl ConfigurationSettings.AppSettings("
    WSURL")
  • Démo

115
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

116
Arborescence
ASP .NET/Déploiement
  • Plusieurs applications Web sur un même ASP .NET,
    identifiées à l'aide d'un préfixe d'URL unique au
    sein d'un site Web.
  • Chaque application ASP.NET Framework exposée dans
    un espace de noms d'URL est sauvegardée dans un
    répertoire du système de fichiers situé sur un
    partage de fichiers local ou distant.

117
Assemblys
ASP .NET/Déploiement
  • Unité de déploiement des classes dans le Common
    Language Runtime.
  • 1 projet Visual Studio.NET 1 assembly .NET
    Framework 1 DLL physique
  • Déploiement par simple copie (!)
  • dans le cache dassembly global (pour du code
    partagé)
  • ou local (pour le code propre à une application
    sécurité et facilité du versionning).
    Sous-repertoire /bin par défaut.

118
Démarrage d'une application
ASP .NET/Déploiement
  • Création manuelle d'un domaine d'application lors
    du démarrage d'une nouvelle application (à la
    1ère demande cliente).
  • Paramètres passés au CLR
  • Les chemins d'accès des répertoires constituant
    le cache d'assembly local
  • Les restrictions de sécurité de l'application
  • Chargement de classe
  • Lors de la résolution de classe, ne charge jamais
    la DLL physique, mais une copie de la DLL
    dassembly.
  • Possibilité de supprimer, remplacer, renommer à
    tout moment un assembly.
  • Detection automatique par le CLR des
    modifications ? prises en compte sans redémarrer
    le serveur

119
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

120
Authentification et autorisation
ASP .NET/Securité
  • Authentification
  • l'action de déterminer l'identité de l'entité à
    l'origine de la requête
  • généralement une paire nom/mot de passe
  • Autorisation
  • processus consistant à déterminer si une entité
    authentifiée peut accéder à une ressource donnée.
  • ASP.NET agit conjointement avec IIS pour assurer
    des services d'authentification et d'autorisation
    destinés aux applications.
  • Possibilité dacceder dans le code à lobjet
    WindowsPrincipal
  • Vérification dun rôle,

121
Configuration
ASP .NET/Securité
  • Specification dans web.config du type
    dauthentification à mettre en place
  • possibilité None, Windows, Passport, Forms
  • exemple ltauthentication mode"Forms"/gt
  • Autorisation des utilisateurs et des rôles dans
    web.config
  • éléments "allow", "deny" avec attributs "users",
    "roles"
  • liste dutilisateurs ou de rôles possibles
  • test sur la méthod HTTP avec lattribut "verb"
  • Utilisateurs spéciaux
  • ? utilisateur non authentifié
  • tous les utilisateurs
  • exemple ltauthorizationgt
  • ltallow verb"POST" users"john,mary"gt
  • ltallow verb"POST" roles"Admins"gt
  • ltdeny verb"POST" users""gt
  • ltallow verb"GET" users""gt
  • lt/authorizationgt

122
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

123
Vue densemble
ASP .NET/Localisation
  • Prise en charge du codage
  • en interne, ASP.NET utilise Unicode .
  • ASP.NET peut être configuré de plusieurs manières
    pour utiliser un codage défini (lors de dialogue
    vers lextérieur).
  • Prise en charge de la localisation
  • propriétés CurrentCulture de la classe
    CultureInfo
  • Routines de mises en formes pour laffichage de
    nombres, devises, dates,
  • Démo
  • Paramètres de configuration
  • Dans fichier web.config
  • Dans la directive _at_Page

ltconfigurationgt ltsystem.webgt
ltglobalization fileEncoding"utf-8"
requestEncoding"utf-8" responseEncoding"utf-8"
culture"en-US" /gt lt/system.webgt lt/con
figurationgt
lt_at_Page Culture"fr-FR" UICulture"fr-FR"
ResponseEncoding"utf-8"gt
124
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

125
Traçage au niveau de la page
ASP .NET/Traçage
  • Pour activer le traçage au niveau de la page,
    utilisez un attribut Trace"true" dans la
    directive Page de niveau supérieur.
  • Le traçage au niveau de la page vous permet
    d'écrire des instructions de débogage en tant que
    composants de la sortie cliente d'une page. Les
    instructions de traçage sont sorties à l'aide des
    méthodes Trace.Write et Trace.Warn, en passant
    une catégorie et un message pour chaque
    instruction.
  • Le débogage du code peut s'exécuter de manière
    conditionnelle, selon que le traçage est activé
    ou non pour la page. Utilisez la propriété
    Trace.IsEnabled de la page pour déterminer si le
    traçage est activé.

126
Traçage au niveau de lappli.
ASP .NET/Traçage
  • Vous pouvez activer le traçage au niveau de
    l'application à l'aide d'une section  trace  du
    fichier de configuration situé dans le répertoire
    racine de l'application.
  • Le traçage au niveau de l'application active la
    sortie du journal de traçage pour chaque page
    d'une application (à moins qu'une directive au
    niveau de la page désactive explicitement le
    traçage).
  • Après le lancement d'une série de demandes, vous
    pouvez accéder aux détails qui les concernent en
    demandant  trace.axd  à partir de la racine de
    l'application.

127
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

128
Déboguage
ASP .NET/ Déboguage
  • Puissants outils de déboguage intégré à Visual
    Studio .NET
  • Démo

129
ASP .NET
ASP .NET/Sommaire
  • Introduction
  • Web Forms .NET
  • Services Web .NET
  • Application Web .NET
  • Service de cache
  • Configuration
  • Déploiement
  • Sécurité
  • Localisation
  • Traçage
  • Déboguage
  • Performance

130
Vue densemble des performances
ASP .NET/ Performance
  • Amélioration de la plateforme Microsoft
  • les pages ne sont compilées qu'une seule fois
  • mises en cache pour les demandes ultérieures
  • cache des objets internes, tels que des variables
    de serveur, afin d'accélérer l'accès au code
    utilisateur
  • bénéfice des performances du Common Language
    Runtime 
  • compilation juste-à-temps,
  • adaptation aux ordinateurs mono ou
    multiprocesseurs, etc.
  • Notions importantes
  • Débit nombre de demandes qu'une application Web
    peut servir par unité de temps (demandes/seconde)
  • Temps de réponse durée entre le lancement d'une
    demande et le premier octet retourné au client
    par le serveur
  • Temps dexécution durée de traitement d'une
    demande
  • Evolutivité capacité de sadapter aux
    ressources

131
Conseils (1)
ASP .NET/ Performance
  • Désactivez l'état de session s'il n'est pas
    utilisé
  • Mode Read-Only possible
  • Évitez les allers-retours excessifs du serveur 
  • Utilisation des validation d'entrées de
    formulaires côté client
  • Utilisez Page.IsPostback pour éviter toute tâche
    supplémentaire lors d'un aller-retour
  • Ex lors du passage dans le page_load Démo !
  • Utilisez les contrôles serveur avec parcimonie et
    de manière appropriée
  • Évitez tout état d'affichage de contrôle serveur
    excessif 
  • Démo !

132
Conseils (2)
ASP .NET/ Performance
  • Ne vous basez pas sur des exceptions dans votre
    code
  • Utilisez la liaison anticipée dans du code Visual
    Basic
  • lt_at_ Page Language"VB" Strict"true" gt
  • Utilisez SqlDataReader pour un curseur de données
    en avant et en lecture seule
  • Meilleurs résultats que le DataSet
  • N'oubliez pas de désactiver le mode débogage

Try result 100 / num Catch (e As Exception)
result 0 End
If Not (num 0) Then result 100 / num Else
result 0 End If
133
Outil proposé
ASP .NET/ Performance
  • WAS Web Application Stress
  • Simulation de N clients HTTP
  • temps de réponse
  • débits
  • compteurs de performances relatives à
    lapplication
  • détecteur de goulet détranglement

134
ASP.NET Request .asmx .aspx
Request .html .htm
Http Request Handling
HTTP Request
INETINFO.EXE IIS worker process
ASPNET_WP.EXE ASP.NET worker process
IIS
ISAPI Extension Manager
ASPNET_ISAPI.DLL ASP.NET ISAPI extension
ASP.NET
.htm
.aspx
ASP.DLL
Static HTML Files
CLR
COM runtime (DLLHost.EXE)
Win2k Server
135
Sommaire
  • Quest ce que .NET
  • Vue densemble du Framework .NET
  • Le Common Language Runtime
  • Les objets COM
  • C et VB.NET
  • Visual Studio .NET
  • ASP.NET
  • ADO.NET et XML

136
ADO .NET
ADO .NET/Sommaire
  • Présentation
  • Objets
  • Resumé

137
Définition
ADO .NET/Présentation
  • Ensemble de classes permettant un accès à
    différentes sources de données
  • Evolution par rapport à ADO
  • composante essentielle du framework .NET
  • propose un support optimum au modèle déconnecté
  • support dXML natif au framework
  • reste accessible facilement aux développeurs ADO

138
Architecture dADO .NET
ADO .NET/Présentation
  • System.Data
  • .SqlTypes Ensemble de classes qui permet de
    faire la correspondance avec les types de données
    rencontrées dans SQL Server
  • .SqlClient Ensemble de classes qui permet un
    accès à une source de données de type SQL Server
  • .Common Ensemble de classes qui permet
    d implémenter son propre fournisseur d accès
    aux données
  • .OleDb Ensemble de classes qui permet un accès
    à différentes sources de données
  • .OracleClient Ensemble de classes qui permet un
    accès à une source de données de type Oracle
    Server (distribué par Microsoft avec Visual
    Studio .NET 2005)

139
ADO Architecture 2 Modes
ADO .NET/Présentation
  • Mode déconnecté
  • Dataset qui cache les données sans maintien de la
    connexion
  • Mode Connecté
  • Managed Provider
  • Accès physique à la base

140
Mode déconnecté
ADO .NET/Présentation
  • Les données sont cachées dans les DataSets
  • Dans ce modèle on limite les allers retour vers
    le serveur
  • Un DataSet est un cache de data issu dune
    database
  • Notion de virtual data store
  • Un DataSet contient une ou plusieurs tables
  • Les DataAdapters forment le pont entre DataSet et
    Database
  • Ils chargent les data depuis la Database dans le
    DataSet
  • Ils répercutent les modifications du DataSet vers
    la Database selon un batch update model

DataBase
DataAdapters
DataSet
141
Exemple darchitecture
ADO .NET/Présentation
142
ADO .NET
ADO .NET/Sommaire
  • Présentation
  • Objets
  • Resumé

143
Connexions
ADO .NET/Objets
  • Objets utilisés pour se connecter à une base de
    donnée
  • 2 possibilités
  • Fournisseur de donnée spécifique
  • SQL Server (System.Data.SqlClient)
  • Oracle Server (System.Data.OracleClient)
  • Fournisseur de donnée OLE DB .NET
    (System.Data.OleDb)
  • Pour tout type de connexion
  • Exemple

public sub Run() Dim mySqlConnection as
SqlConnection mySqlConnection new
SqlConnection("serverworm databaseBankuser
idsa") try mySqlConnection.Open()
Console.WriteLine("Connexion 0 ouverte",
mySqlConnection.ConnectionString) ' Close
the connection explicitly
mySqlConnection.Close() Console.WriteLine("C
onnexion ferme. Il est important de fermer les
connexions explicitement.") catch
Console.WriteLine("Impossible d'ouvrir la
connexion 0", mySqlConnection.ConnectionString)
end try end sub
144
Command
ADO .NET/Objets
  • Information envoyée à une base de donnée
  • Objet présenté par les classes spécifiques dun
    fournisseur (ex SqlCommand)
  • Type INSERT, SELECT, UPDATE, DELETE, Appel de
    procédures stockées,
  • Exemple

public sub Run() Dim Message as String
Dim myConnection as SqlConnection Dim
mySqlCommand as SqlCommand mySqlConnection
new SqlConnection("serverworm
databaseBankuser idsa") mySqlCommand new
SqlCommand(insert into CUSTOMERS (NAME) values
(poil), myConnection) try
myConnection.Open() mySqlCommand.ExecuteNonQ
uery() Message "Nouvel enregistrement
dans la table Customers de Bank. 
myConnection.Close() catch myException as
Exception Message "Impossible d'inserer
l'enregistrement " myException.ToString()
end try Console.Write(Message) end sub
145
DataReader
ADO .NET/Objets
  • Objet similaire à un curseur de données
  • en lecture seule/avance seule
  • prend en charge les données à deux dimensions
    (flat) ainsi que les données hiérarchiques
  • Exemple

public sub Run() Dim Message as String
Dim myConnection as SqlConnection Dim
mySqlCommand as SqlCommand Dim myReader as
SqlDataReader mySqlConnection new
SqlConnection("serverworm databaseBankuser
idsa") mySqlCommand new SqlCommand(select
from CUSTOMERS, myConnection) try
myConnection.Open() myReader
mySqlCommand.ExecuteReader() do while
(myReader.Read()) Console.Write(myReader("
CustomerID").ToString()) loop
myConnection.Close() catch myException as
Exception end try end sub
146
DataSet DataAdapter définitions
ADO .NET/Objets
  • DataSet
  • similaire à ADO Recordset (mais puissant et
    toujours en mode déconnecté)
  • cache de donnée avec structure similaire à une BD
  • Pas dinteraction directe avec la source de
    données
  • Nombreuses caractéristiques XML
  • DataAdapter
  • pont entre le DataSet et la source de données
  • mise à jour de la BD à partir du DataSet (méthode
    update)
  • Définition explicite des commandes dINSERT,
    DELETE et UPDATE pour répercuter sur la BD les
    modifications du DataSet (ou methode
    SqlCommandBuilder() plus coûteuse)

147
DataSet DataAdapter schéma
ADO .NET/Objets
148
DataSet DataAdapter exemples
ADO .NET/Objets
Public Sub Run() Dim Message as String
Dim myConnection as SqlConnection Dim
mySqlDataAdapter as SqlDataAdapter Dim
workParam as SqlParameter mySqlConnection
new SqlConnection("serverworm
databaseBank
Write a Comment
User Comments (0)
About PowerShow.com