COURS : PROGRAMMATION
CLIENT/SERVERCLIENT/SERVER
11
ELGARRAI zineb 2010-2011
RAPPEL SUR POO
Objet?
Un objet est une entité cohérente rassemblant des
données et du code travaillant sur ses données
Cla...
RAPPEL SUR POORAPPEL SUR POO
L’encapsulation?
la séparation nette entre la partie publique d'un objet (ou
i f ) l d l' ili...
RAPPEL POO
L’héritage?
L'héritage est le second des trois principes fondamentaux
d di i é bj Il h é d d i ldu paradigme or...
RAPPEL POO
Classe abstraite?
Elle ne fournit pas d'implémentation pour certaines de ces
méthodes qui sont dites méthodes a...
RAPPEL POORAPPEL POO
Interface?
Une interface est semblable à une classe sans attribut (mais
pouvant contenir des constant...
RAPPEL POORAPPEL POO
Agrégation?
Un type de relation entre deux classes qui traduit cette fois
l l i E é d P èdles relatio...
RAPPEL POO
Polymorphisme?
Il permet à une méthode d'adopter plusieurs formes sur
d l diffédes classes différentes.
L h ?La...
RAPPEL POORAPPEL POO
Constructeur?
Méthode spéciale, à mi chemin entre la méthode de classe
l é h d d'i h é d é l bjet la ...
RAPPEL POORAPPEL POO
Message?
Unique moyen de communication fourni par les objets.
U i i d d i h bi llUne invocation de me...
INTRODUCTION
A 2ARCHITECTURE 2 TIERS
1111
ARCHITECTURE 2-TIERS
Une architecture 2-tiers est composée de deux éléments, un
client et un serveur et où le tiers (Les p...
TACHES DU CLIENT
présentation des données
Envoie des requêtes (Demandes)
1313
TACHES DU SERVEUR
Sauvegarde des données
Traitement des requêtes (Réponse)
1414
ARCHITECTURE 2 -TIERS
En définitive et dans la perspective d'une architecture 2-tiers avec
n ser e r de base de données (S...
AVANTAGES D'UNE ARCHITECTURE 2-TIERS
le développement d'une architecture 2-tiers peut être réalisé
rapidement toute chose ...
LES INCONVÉNIENTS D’UNE ARCHITECTURE 2-TIERSLES INCONVÉNIENTS D UNE ARCHITECTURE 2-TIERS
problèmes de contrôle des évoluti...
TECHNOLOGIE ADO NETTECHNOLOGIE ADO.NET
1818
TECHNOLOGIE ADO.NET
ADO .NET est un regroupement de types (classes,
interfaces, …) dans l'espace de nom System.Data
constr...
ADO.NETADO.NET
L'entité la plus importante d’ADO .NET permettant de
gérer les données en local dans une mémoire cache
comp...
LE MODÈLE OBJET ADO.NET
2121
ADO.NET: DESCRIPTION DES OBJETS
Objet Description
Connection
Ouvre une connexion vers une source de
d é é ifidonnées spéci...
RÉSUMÉRÉSUMÉ
Pour le mode connecté:
1- Connection
2-Commanded
3-Reader
Pour le mode déconnecté:
1- Connection1 Connection
...
FOURNISSEURS DE DONNÉES NETFOURNISSEURS DE DONNÉES .NET
FRAMEWORK
2424
RÔLE
Un fournisseur de données .NET Framework (FDNF) est
utilisé pour la connexion à une base de données,
l'exécution de c...
LES FDNF INCLUS DANS LE .NET FRAMEWORK.
Fournisseur de données .NET
Framework
Description
Fournisseur de données .NET
Fram...
FDFNFDFN
Pour pouvoir faire appel aux classes proposées par ADO
.Net il est nécessaire d'inclure une référence à l'espace ...
LA DIFFÉRENCE ENTRE LE MODE
CONNECTÉ ET EN MODE DÉCONNECTÉ
2828
LE MODE CONNECTÉLE MODE CONNECTÉ
Mode connecté :
Ce mode permet à un client de se connecter à un serveur de base de
d é l ...
LE MODE DÉCONNECTÉLE MODE DÉCONNECTÉ
Mode déconnecté :
Le but de ce mode est de récupérer en un bloc une portion de
l b d ...
RAPPEL SUR SQL
EXERCICESEXERCICES
3131
EXERCICES
1. Ecrire une requête qui permet de sélectionner tous les
produits que la société commercialise.
Aj d d i à l B ...
Partie II :
Intégrer les accès aux données dans
le client en mode connectéle client en mode connecté
3333
L’OBJET CONNECTIONL OBJET CONNECTION
La connectivité à SQLServer est assurée par l'objet
SqlConnection de l'espace de noms...
EXEMPLE DE GESTION D'UNE CONNEXION
Imports System.data
Imp rt S t m D t SqlCli ntImports System.Data.SqlClient
Public Sub ...
L’OBJET COMMAND
Une fois la connexion vers une base de données effectuée, vous
pouvez exécuter une requête et récupérer so...
EXEMPLE D'UTILISATION D'UN OBJET COMMAND
Public Shared Sub Main()
Di C A S i "D S l lh d S i SSP " " i i lDim strCon As St...
L'OBJET DATAREADERL OBJET DATAREADER
L'objet DataReader permet de récupérer d'une source de
données un flux en lecture seu...
L’OBJET DATAREADER
Il dé d' ili bj iIl est recommandé d'utiliser cet objet si :
V ' p b i d é li h d d éVous n'avez pas be...
L’OBJET DATAREADERL OBJET DATAREADER
Par défaut, un DataReader charge une ligne entière en mémoire à
h q e ppel de l métho...
L’OBJET DATAREADER
Exemple:
Dim iColonne As IntegerDim iColonne As Integer
iColonne = oDataReader.GetInt32(0)
La méthode C...
EXEMPLE D'EXTRACTION DE DONNÉES AVEC L'OBJET
D RDATAREADER
Dim strCon As String = "Data Source=localhost; Integrated Secur...
TP1
Voir l’enoncé
4343
Prochain SlideShare
Chargement dans…5
×

Cours partie1 elgarrai zineb

524 vues

Publié le

Le module Développement des applications Client / Serveur

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
524
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
78
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cours partie1 elgarrai zineb

  1. 1. COURS : PROGRAMMATION CLIENT/SERVERCLIENT/SERVER 11 ELGARRAI zineb 2010-2011
  2. 2. RAPPEL SUR POO Objet? Un objet est une entité cohérente rassemblant des données et du code travaillant sur ses données Classe? Une classe peut être considérée comme un moule à partir duquel on peut créer des objets on dit que les classes sont la méta donnée des objets 22
  3. 3. RAPPEL SUR POORAPPEL SUR POO L’encapsulation? la séparation nette entre la partie publique d'un objet (ou i f ) l d l' ili d l i i éinterface) seule connue de l'utilisateur de la partie privée ou implémentation qui doit rester masquée. Tous les langages orientés objet n'imposent pas de respecter le principe d'encapsulation C'est donc aurespecter le principe d encapsulation. C est donc au programmeur de veiller personnellement au grain. 33
  4. 4. RAPPEL POO L’héritage? L'héritage est le second des trois principes fondamentaux d di i é bj Il h é d d i ldu paradigme orienté objet. Il est chargé de traduire le principe naturel de Généralisation / Spécialisation « La classe dérivée est une version spécialisée de sa classe« La classe dérivée est une version spécialisée de sa classe de base » L'héritage multiple est une extension au modèle d'héritageL héritage multiple est une extension au modèle d héritage simple où l'on autorise une classe à posséder plusieurs classes mères afin de modéliser une généralisation multiple.g p 44
  5. 5. RAPPEL POO Classe abstraite? Elle ne fournit pas d'implémentation pour certaines de ces méthodes qui sont dites méthodes abstraites. Une classe abstraite ne peut avoir d'instance. But des classes abstraites: définir un cadre de travail pour les classes dérivées en proposant un ensemble de méthodes que l'on retrouvera tout au long de l'arborescence Ce mécanisme est fondamental po r la mise enl'arborescence. Ce mécanisme est fondamental pour la mise en place du polymorphisme. 55
  6. 6. RAPPEL POORAPPEL POO Interface? Une interface est semblable à une classe sans attribut (mais pouvant contenir des constantes) dont toutes les méthodes sont abstraites. une classe implémente une interface si elle propose une i lé i h d é h d dé i i fimplémentation pour chacune des méthodes décrites en interface les méthodes décrites dans les interfaces sont, par définition, polymorphes puisqu'elles sont implémentées de façonpolymorphes puisqu elles sont implémentées de façon indépendante dans chaque classe implémentant une même interface 66
  7. 7. RAPPEL POORAPPEL POO Agrégation? Un type de relation entre deux classes qui traduit cette fois l l i E é d P èdles relations « Est composé de ... » ou « Possède … » ou encore « a … ». L'une des caractéristiques principale de l'agrégation est saL une des caractéristiques principale de l agrégation est sa cardinalité 77
  8. 8. RAPPEL POO Polymorphisme? Il permet à une méthode d'adopter plusieurs formes sur d l diffédes classes différentes. L h ?La surcharge? La surcharge est un mécanisme fréquemment proposé par l l d t i t d’ i êles langages de poo et qui permet d’associer au même nom de méthode / fonction / procédure différentes signatures. 88
  9. 9. RAPPEL POORAPPEL POO Constructeur? Méthode spéciale, à mi chemin entre la méthode de classe l é h d d'i h é d é l bjet la méthode d'instance chargée de créer un nouvel objet en mémoire et d'initialiser son état. 99
  10. 10. RAPPEL POORAPPEL POO Message? Unique moyen de communication fourni par les objets. U i i d d i h bi llUne invocation de message se traduit habituellement par l'activation d'une méthode. D'ailleurs dans la plupart des langages orientés objetD ailleurs, dans la plupart des langages orientés objet modernes, il n'y a pas de distinction entre les notions de message et de méthodeg 1010
  11. 11. INTRODUCTION A 2ARCHITECTURE 2 TIERS 1111
  12. 12. ARCHITECTURE 2-TIERS Une architecture 2-tiers est composée de deux éléments, un client et un serveur et où le tiers (Les parties) fait référence non pas à une entité physique mais logiquenon pas à une entité physique mais logique. Représentation : 1212
  13. 13. TACHES DU CLIENT présentation des données Envoie des requêtes (Demandes) 1313
  14. 14. TACHES DU SERVEUR Sauvegarde des données Traitement des requêtes (Réponse) 1414
  15. 15. ARCHITECTURE 2 -TIERS En définitive et dans la perspective d'une architecture 2-tiers avec n ser e r de base de données (SGBD) le schéma précédent seraun serveur de base de données (SGBD) le schéma précédent sera plus exactement le suivant : 1515
  16. 16. AVANTAGES D'UNE ARCHITECTURE 2-TIERS le développement d'une architecture 2-tiers peut être réalisé rapidement toute chose étant égale par ailleurs à la complexité du projetcomplexité du projet La plupart des outils de développement dans l'architectureLa plupart des outils de développement dans l architecture 2-tiers sont robustes et mènent d'eux mêmes à des techniques RAD (Rapid Application Development) quiq ( p pp p ) q peuvent être utilisées pour s'assurer que les spécifications des utilisateurs sont précisément et totalement prises en compte. 1616
  17. 17. LES INCONVÉNIENTS D’UNE ARCHITECTURE 2-TIERSLES INCONVÉNIENTS D UNE ARCHITECTURE 2-TIERS problèmes de contrôle des évolutions de versions et de redistributionproblèmes de contrôle des évolutions de versions et de redistribution des applications En termes de sécurité l'architecture 2-tiers peut être complexe dans laEn termes de sécurité l architecture 2-tiers peut être complexe dans la mesure où il sera nécessaire à l'utilisateur d'avoir autant d'accès protégé par mot de passe que d'accès serveursp g p p q l'aspect propriétaire de l'application client. Le marché de l'informatique se caractérise par volatilité de certaines de ses entreprises qui n'ont pas de fait une très longue pérennité. Dans ce contexte et ces contraintes, la question de la viabilité à long terme, d' ppli ti li t pr priét ir t élém t i ifi tif àd'une application client propriétaire, est un élément significatif à prendre en compte dans le choix d'une architecture 2-tiers. 1717
  18. 18. TECHNOLOGIE ADO NETTECHNOLOGIE ADO.NET 1818
  19. 19. TECHNOLOGIE ADO.NET ADO .NET est un regroupement de types (classes, interfaces, …) dans l'espace de nom System.Data construits par Microsoft afin de manipuler des donnéesconstruits par Microsoft afin de manipuler des données structurées dans le .NET Framework. ADO NET échange toutes ses informations au formatADO .NET échange toutes ses informations au format XML 1919
  20. 20. ADO.NETADO.NET L'entité la plus importante d’ADO .NET permettant de gérer les données en local dans une mémoire cache complètement déconnectée de la source de données (donccomplètement déconnectée de la source de données (donc indépendante de cette source) est le DataSet et la collection de classes qui lui sont liées.q 2020
  21. 21. LE MODÈLE OBJET ADO.NET 2121
  22. 22. ADO.NET: DESCRIPTION DES OBJETS Objet Description Connection Ouvre une connexion vers une source de d é é ifidonnées spécifique Command Exécute une commande sur une source de donnéesdonnées Lit un flux de données à partir d'une source de données en mode connecté Le mode d'accès DataReader données en mode connecté. Le mode d accès est en lecture seule avec un curseur en avant seulement. DataSet Représente un ensemble de données en mode déconnecté. Il peut être constitué de DataSet plusieurs tables ainsi que des relations et contraintes existant entre elles. R lit D t S t t é t l i à22 DataAdapter Remplit un DataSet et répercute les mises à jour dans la source de données. 22
  23. 23. RÉSUMÉRÉSUMÉ Pour le mode connecté: 1- Connection 2-Commanded 3-Reader Pour le mode déconnecté: 1- Connection1 Connection 2-Commande 3 Dataset3-Dataset 4-Dataadapter 2323
  24. 24. FOURNISSEURS DE DONNÉES NETFOURNISSEURS DE DONNÉES .NET FRAMEWORK 2424
  25. 25. RÔLE Un fournisseur de données .NET Framework (FDNF) est utilisé pour la connexion à une base de données, l'exécution de commandes et l'extraction de résultatsl exécution de commandes et l extraction de résultats Ces résultats sont soit traités directement, soit accédés à distance entre couchesdistance entre couches. Les FDNF créent une couche minimale entre la source de données et votre code afin d'augmenter les performancesg p sans sacrifier la fonctionnalité 2525
  26. 26. LES FDNF INCLUS DANS LE .NET FRAMEWORK. Fournisseur de données .NET Framework Description Fournisseur de données .NET Framework pour SQL Server Fournit un accès aux données pour Microsoft SQL Server version 7.0 ou ultérieure. Utilise l'espace de noms System Data SqlClientl espace de noms System.Data.SqlClient. Fournisseur de données .NET Framework pour OLE DB Pour les sources de données exposées à l'aide de OLE DB Utilise l'espace de nomsFramework pour OLE DB OLE DB. Utilise l espace de noms System.Data.OleDb. Fournisseur de données .NET Pour les sources de données exposées à l'aide de Framework pour ODBC p ODBC. Utilise l'espace de noms System.Data.Odbc. F i d d é NET P l d d é O l LFournisseur de données .NET Framework pour Oracle Pour les sources de données Oracle. Le fournisseur de données .NET Framework pour Oracle prend en charge le logiciel client Oracle à 26 partir de la version 8.1.7 et utilise l'espace de noms System.Data.OracleClient. 26
  27. 27. FDFNFDFN Pour pouvoir faire appel aux classes proposées par ADO .Net il est nécessaire d'inclure une référence à l'espace de noms correspondant Vous pouvez soit inclure l'espacenoms correspondant. Vous pouvez soit inclure l espace System.Data soit inclure des classes de cet espace comme System.Data.OleDb ou System.Data.SqlClient ; touty y q ; dépend de la source de données utilisée. Imports System.Data Imports System.Data.SqlClientp y q 2727
  28. 28. LA DIFFÉRENCE ENTRE LE MODE CONNECTÉ ET EN MODE DÉCONNECTÉ 2828
  29. 29. LE MODE CONNECTÉLE MODE CONNECTÉ Mode connecté : Ce mode permet à un client de se connecter à un serveur de base de d é l li f l i ldonnées et tant que le client ne fermera pas la connexion, le serveur se souviendra de lui. Lorsque l'on désirera récupérer des informations (SELECT) on les recevra au compte-gouttes c'est-à-dire une par(SELECT), on les recevra au compte gouttes, c est à dire une par une. 2929
  30. 30. LE MODE DÉCONNECTÉLE MODE DÉCONNECTÉ Mode déconnecté : Le but de ce mode est de récupérer en un bloc une portion de l b d d é fi d' ff d i l lla base de données afin d'effectuer des traitements en local sur la machine du client. On aura donc une ouverture de connexion à la base de données la récupération en un seulconnexion à la base de données, la récupération en un seul bloc du résultat puis la fermeture de la connexion. 3030
  31. 31. RAPPEL SUR SQL EXERCICESEXERCICES 3131
  32. 32. EXERCICES 1. Ecrire une requête qui permet de sélectionner tous les produits que la société commercialise. Aj d d i à l B D2. Ajouter des nouveaux produits à la B.D. ; 3. Supprimer le produit n° 1 M difi l d d i ° 24. Modifier le nom du produit n° 2 3232
  33. 33. Partie II : Intégrer les accès aux données dans le client en mode connectéle client en mode connecté 3333
  34. 34. L’OBJET CONNECTIONL OBJET CONNECTION La connectivité à SQLServer est assurée par l'objet SqlConnection de l'espace de noms System Data SqlClientSystem.Data.SqlClient. vous devrez utiliser l'objet OleDbConnection si votrevous devrez utiliser l objet OleDbConnection si votre fournisseur est un fournisseur OleDb L'ouverture d'une connexion est réalisée par la méthode Open et la fermeture par la méthode Close.Open et la fermeture par la méthode Close. 3434
  35. 35. EXEMPLE DE GESTION D'UNE CONNEXION Imports System.data Imp rt S t m D t SqlCli ntImports System.Data.SqlClient Public Sub MaConnection() Dim strCon As String = "Data Source=localhost; IntegratedDim strCon As String = Data Source=localhost; Integrated Security=SSPI;" & "Initial Catalog=Nom_BD“ trytry Dim oConnection As SqlConnection = New SqlConnection(strCon) oConnection.Open() Console.WriteLine("Etat de la connexion : " & oConnection.State) oConnection.Close() catch e as Exception Console.WriteLine("L'erreur suivante a été rencontrée :" & e.Message) End Try 35End Try End Sub 35
  36. 36. L’OBJET COMMAND Une fois la connexion vers une base de données effectuée, vous pouvez exécuter une requête et récupérer son résultat en utilisant l'objet Command. La création d'un objet Command nécessite l'instanciation d'un objet SqlCommand. Cet objet expose différentes méthodes Execute à ili l l é l dutiliser selon le résultat attendu : L méth d E ec teReader p t êtr tili é p r ré pér r n jLa méthode ExecuteReader peut être utilisée pour récupérer un jeu d'enregistrements et retourne un objet DataReader. La méthode ExecuteScalar récupère une valeur unitaireLa méthode ExecuteScalar récupère une valeur unitaire. La méthode ExecuteNonQuery exécute une commande ne retournant pas de lignes. 36retournant pas de lignes. 36
  37. 37. EXEMPLE D'UTILISATION D'UN OBJET COMMAND Public Shared Sub Main() Di C A S i "D S l lh d S i SSP " " i i lDim strCon As String = "Data Source=localhost; Integrated Security=SSPI;" + "Initial Catalog=Northwind" Dim strRequete As String = "INSERT INTO Region VALUES (5,'Sud')" Try Dim oConnection As New SqlConnection(strCon) Dim oCommand As New SqlCommand(strRequete, oConnection)q ( q , ) oConnection.Open() oCommand.ExecuteNonQuery() oConnection Close()oConnection.Close() Catch e As Exception Console.WriteLine(("L'erreur suivante a été rencontrée :" + e.Message)) End TryEnd Try End Sub 'Main End Class 'CommandeSQL 3737
  38. 38. L'OBJET DATAREADERL OBJET DATAREADER L'objet DataReader permet de récupérer d'une source de données un flux en lecture seule en avant seulement (read only forward only) Il résulte de l'exécution de la méthodeonly, forward only). Il résulte de l exécution de la méthode ExecuteReader sur un objet Command. L'objet DataReader ne stocke en mémoire qu'une seuleL objet DataReader ne stocke en mémoire qu une seule ligne à la fois, permettant ainsi d'augmenter les performances d'une application et d'en réduire la charge. 3838
  39. 39. L’OBJET DATAREADER Il dé d' ili bj iIl est recommandé d'utiliser cet objet si : V ' p b i d é li h d d éVous n'avez pas besoin de réaliser un cache des données Vous traitez un jeu d'enregistrements trop important pour être stocké en mémoireêtre stocké en mémoire Vous souhaitez accéder à des données rapidement en lecture seule en avant seulement Comme l'objet DataReader a été conçu pour accéder aux d é l d é il ê idonnées selon un mode connecté, il ne peut être transmis entre différents tiers applicatifs ce que réalisait un Recordset déconnecté. 3939
  40. 40. L’OBJET DATAREADERL OBJET DATAREADER Par défaut, un DataReader charge une ligne entière en mémoire à h q e ppel de l méthode Readchaque appel de la méthode Read. Il est possible d'accéder aux valeurs de colonnes soit par leurs nomsIl est possible d accéder aux valeurs de colonnes soit par leurs noms soit par leurs références ordinales. Une solution plus performante est proposée permettant d'accéder aux valeurs dans leurs types de données natifs (GetInt32, GetDouble, G S i )GetString .) Par exemple si la première colonne de la ligne indicée par 0 est dePar exemple si la première colonne de la ligne indicée par 0 est de type int, alors il est possible de la récupérer à l'aide de la méthode GetInt32 de l'objet DataReader. 4040
  41. 41. L’OBJET DATAREADER Exemple: Dim iColonne As IntegerDim iColonne As Integer iColonne = oDataReader.GetInt32(0) La méthode Close ferme un objet DataReader. si l'objet Command utilisé contient des paramètres en sortie ou desj p valeurs de retours, ils ne pourront être récupérés qu'a l'issue de la fermeture du DataReader. Pour augmenter les performances, il est parfois nécessaire de soumettre plusieurs requêtes à la fois L'objet DataReader répond à cesoumettre plusieurs requêtes à la fois. L objet DataReader répond à ce besoin avec la méthode NextResult permettant de passer d'un jeu d'enregistrement à un autre. 4141
  42. 42. EXEMPLE D'EXTRACTION DE DONNÉES AVEC L'OBJET D RDATAREADER Dim strCon As String = "Data Source=localhost; Integrated Security=SSPI;" + "Initial Catalog=North" Dim strRequete As String = "SELECT CategoryID, CategoryName FROM Categories;« " Try Dim oConnection As New SqlConnection(strCon)Dim oConnection As New SqlConnection(strCon) Dim oCommand As New SqlCommand(strRequete, oConnection) oConnection.Open() Dim oReader As SqlDataReader = oCommand.ExecuteReader() Do Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetName(0), oReader.GetName(1)) While oReader Read()While oReader.Read() Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab + "{1}", oReader.GetInt32(0), oReader.GetString(1)) End While Loop While oReader.NextResult() oReader.Close() oConnection.Close() Catch e As Exception 42Catch e As Exception Console.WriteLine(("L'erreur suivante a été rencontrée :" + e.Message)) End Try 42
  43. 43. TP1 Voir l’enoncé 4343

×