Accueil > > > CRÉATION ET UTILISATION DE CLASSES ASP
CRÉATION ET UTILISATION DE CLASSES ASP
Information sur la source
Description
Un petit tutorial sur l'utilisation des classes ASP. Il s'addresse au developpeur ayant quelques connaissances en ASP
Source
- Création de classe ASP
-
- La création de classe ASP permet de donner une orientation objet aux projets ASP. En effet, les classes ASP ressemblent beaucoup aux classes que l'on pourrait créer avec d'autre langages tels que C, Java, etc.
-
- Une classe se décompose en Propriété, Méthodes et Evénements.
-
- Les propriétés :
- On pourrait facilement comparer les Propriétés à des variables; mais tout l'intérêt d'une classe, est de pouvoir associer un code à l'ajout d'une valeur à un Propriétés. Si cela semble un peu obscure vous comprendrez tout dans l'exemple qui suivra...
-
- Les méthodes :
- Elles sont comparables à des fonctions ou des Sub.
-
- Les événements :
- Un événements permet d'éxécuter un morceau de code à un moment donné. Hélas, dans une classe ASP, nous ne pouvons créer d'événements personnalisés, mais seulement utiliser les deux événements de base de la classe : Class_Initialize et Class_Terminate.
-
- Ces deux événements se produisent à un moment bien déterminé :
- - Class_Initialize est appelé automatiquement lorsque que vous instancié un classe ( set MonObjet = new MaClasse), cela vous permet par exemple d'initialiser des variables dans votre classe, etc.
- - Class_Terminate est appelé automatiquement lorsque que vous supprimer un object ( set MonObjet = nothing), cela est très utils lorsque vous créer une connexion vers une DB avec le Class_Initialize et que vous la refermé avec Class_Terminate. Je donnerai de plus amples informations là dessus dans mon exemple.
-
- Les avantages d'une clase :
- Nous pourrions très simplement effectuer le même travail qu'une classe en utilisant simplement des fonctions ou des Subs, alors pourquoi utiliser des classes. Dans un souci de clarté, pour partager le code, pour réutiliser plusieurs fois les même fonctionnalité; je m'explique : le but est de créer un objet que le dévellopeur pourra utiliser, sans se soucier du fonctionnement de l'objet.
-
- Public ou Private ?
- Lorsque vous déclaré une variable, une fonction ou une Sub, vous pourvez les déclarer de type Private ou Public. Pour une classe, le type Private signifie que la déclaration ne sera visible qu'à l'intérieur de la classe et publique qu'elle sera visible à l'extérieur et à l'intérieur. Lorsque vous créer des fonctions ou des Sub de type Public, vous créer en fait une méthode; par contre si vous les déclarer en tant que private cela restera des fonctions ou des Subs.
-
- Variables ou Propriétés ?
- Dans une classe ASP, vous pouvez créer des variables Public ou Private, les première seront visible à l'extérieur de la classe et pourront être utilisé pour stocker une valeur mais en aucun cas ne pourrai executer un code. Vous pouvez créer trois type de Propriétés :
-
- Property Get MaPropriete()
- Lorsque l'utilisateur va demander une propriété à la classe (MaVariable = MaClasse.MaPropriete), la classe va executer une code lié à cette propriété en vu de retourner une valeur
-
- Property Let MaPropriete()
- Lorsque l'utilisateur va assigner une valeur à une propriété de la classe (MaClasse.MaPropriete = MaVariable), la classe va executer une code lié à cette propriété en vu de stocker une valeur. Par exemple : Vérifier si la chaîne est bien formée, etc.
-
- Property Set MaPropriete()
- Lorsque l'utilisateur va assigner une référence à un objet (MaClasse.MaPropriete = MaVariable), la classe va executer une code lié à cette propriété en vu de stocker cette référence.
-
-
- Passons à l'exemple :
- J'ai préparé une classe pour créer un <select></select> en html... Celle que j'utilise sur mon site se connecte à une base de donnée et stocke les type de langue dans un tableau. Comme j'ai une page où l'utilisateur doit entrer trois adresses différente et qu'il doit indiquer trois fois la langue utiliser pour la correspondance, la première fois que je charge la classe je stocke les valeur depuis la DB mais la fois suivante que j'utilise la classe, les valeurs sont encore stockées dans la classe d'où un gain de temps non négligeable avec beaucoup de valeurs.
-
- <%
- Class SelectLang
-
- private iCodeLang
- private sName
- private sObjSelect
- private sLangTab(3,2)
-
-
- Public property let Name(sArgs) 'Propriété qui définit le nom du select
- sName = sArgs
- end property
-
- Public property Get Name() ' Propriété pour récupérer le nom du select
- name = sName
- end property
-
- Public property let CodeLang(iArgs) 'Je stocke la valeur du code de langue qui devra être sélectionné
- if iCodeLang <> iArgs then
- call Reset()
- iCodeLang = iArgs
- end if
- end property
-
- Public property get CodeLang() 'Récupère le code de langue qui sera sélectionné
- CodeLang = iCodeLang
- end property
-
- Private Sub Class_Initialize
- call InitVar()
- call InitLangTab()
- End Sub
-
- Private Sub Class_Terminate
-
- End Sub
-
- private Sub GenerateSelect() 'Sub de type Private pour utilisation en interne
- dim i
- For i = 0 to ubound(sLangTab) -1
- if sLangTab(i,0) = iCodeLang then
- call AddWithVbcrlf("<OPTION SELECTED VALUE='" & sLangTab(i,0) & "'>" & sLangTab(i,1) & "</OPTION>")
- else
- call AddWithVbcrlf("<OPTION VALUE='" & sLangTab(i,0) & "'>" & sLangTab(i,1) & "</OPTION>")
- end if
- next
-
- end Sub
-
- private Sub AddWithVbcrlf(sArgs) ' Sub qui ajoute une option au select
- sObjSelect = sObjSelect & sArgs & vbcrlf
- end Sub
-
- Public Sub WriteSelect() 'Sub pour
- sHeader = "<select name='" & sName & "'>" & vbcrlf 'On créer le header du select
- sFooter = "</select>" & vbcrlf 'On créer le footer du select
- if trim(sObjSelect) = "" then ' Si la variable est vide c'est que soit c'est la première fois qu'on
- 'utilise la classe ou que l'on a changé le CodeLang
- GenerateSelect
- response.write sHeader & sObjSelect & sFooter
- else
- response.write sHeader & sObjSelect & sFooter
- end if
- end Sub
-
- Public Sub Reset()
- sObjSelect = ""
- end Sub
-
- Private Sub InitVar()
- sObjSelect = ""
- end Sub
-
- Private Sub InitLangTab() 'Initialisation du tableau avec les valeur des langues
- sLangTab(0,0) = 0
- sLangTab(0,1) = "Français"
-
- sLangTab(1,0) = 1
- sLangTab(1,1) = "Allemand"
-
- sLangTab(2,0) = 2
- sLangTab(2,1) = "Anglais"
- end Sub
-
- End Class
- %>
-
- Le code qui utilise cette classe :
- <%
- set oSelectLang = new SelectLang 'Instantiation de l'objet
- oSelectLang.name = "LangSelect" '
- oSelectLang.CodeLang = 1 'On change le code langue => la classe génére le select
- oSelectLang.WriteSelect
-
- oSelectLang.CodeLang = 0 'On change le code langue => la classe génére le select
- oSelectLang.WriteSelect
-
- oSelectLang.CodeLang = 0 'Le CodeLang est le même donc la classe ne regénère pas le select
- oSelectLang.WriteSelect
-
- oSelectLang.CodeLang = 0 'Le CodeLang est le même donc la classe ne regénère pas le select
- oSelectLang.WriteSelect
-
- oSelectLang.CodeLang = 2 'On change le code langue => la classe génére le select
- oSelectLang.WriteSelect
-
- oSelectLang.CodeLang = 1 'On change le code langue => la classe génére le select
- oSelectLang.WriteSelect
-
- set oSelectLang = nothing
- %>
Création de classe ASP
La création de classe ASP permet de donner une orientation objet aux projets ASP. En effet, les classes ASP ressemblent beaucoup aux classes que l'on pourrait créer avec d'autre langages tels que C, Java, etc.
Une classe se décompose en Propriété, Méthodes et Evénements.
Les propriétés :
On pourrait facilement comparer les Propriétés à des variables; mais tout l'intérêt d'une classe, est de pouvoir associer un code à l'ajout d'une valeur à un Propriétés. Si cela semble un peu obscure vous comprendrez tout dans l'exemple qui suivra...
Les méthodes :
Elles sont comparables à des fonctions ou des Sub.
Les événements :
Un événements permet d'éxécuter un morceau de code à un moment donné. Hélas, dans une classe ASP, nous ne pouvons créer d'événements personnalisés, mais seulement utiliser les deux événements de base de la classe : Class_Initialize et Class_Terminate.
Ces deux événements se produisent à un moment bien déterminé :
- Class_Initialize est appelé automatiquement lorsque que vous instancié un classe ( set MonObjet = new MaClasse), cela vous permet par exemple d'initialiser des variables dans votre classe, etc.
- Class_Terminate est appelé automatiquement lorsque que vous supprimer un object ( set MonObjet = nothing), cela est très utils lorsque vous créer une connexion vers une DB avec le Class_Initialize et que vous la refermé avec Class_Terminate. Je donnerai de plus amples informations là dessus dans mon exemple.
Les avantages d'une clase :
Nous pourrions très simplement effectuer le même travail qu'une classe en utilisant simplement des fonctions ou des Subs, alors pourquoi utiliser des classes. Dans un souci de clarté, pour partager le code, pour réutiliser plusieurs fois les même fonctionnalité; je m'explique : le but est de créer un objet que le dévellopeur pourra utiliser, sans se soucier du fonctionnement de l'objet.
Public ou Private ?
Lorsque vous déclaré une variable, une fonction ou une Sub, vous pourvez les déclarer de type Private ou Public. Pour une classe, le type Private signifie que la déclaration ne sera visible qu'à l'intérieur de la classe et publique qu'elle sera visible à l'extérieur et à l'intérieur. Lorsque vous créer des fonctions ou des Sub de type Public, vous créer en fait une méthode; par contre si vous les déclarer en tant que private cela restera des fonctions ou des Subs.
Variables ou Propriétés ?
Dans une classe ASP, vous pouvez créer des variables Public ou Private, les première seront visible à l'extérieur de la classe et pourront être utilisé pour stocker une valeur mais en aucun cas ne pourrai executer un code. Vous pouvez créer trois type de Propriétés :
Property Get MaPropriete()
Lorsque l'utilisateur va demander une propriété à la classe (MaVariable = MaClasse.MaPropriete), la classe va executer une code lié à cette propriété en vu de retourner une valeur
Property Let MaPropriete()
Lorsque l'utilisateur va assigner une valeur à une propriété de la classe (MaClasse.MaPropriete = MaVariable), la classe va executer une code lié à cette propriété en vu de stocker une valeur. Par exemple : Vérifier si la chaîne est bien formée, etc.
Property Set MaPropriete()
Lorsque l'utilisateur va assigner une référence à un objet (MaClasse.MaPropriete = MaVariable), la classe va executer une code lié à cette propriété en vu de stocker cette référence.
Passons à l'exemple :
J'ai préparé une classe pour créer un <select></select> en html... Celle que j'utilise sur mon site se connecte à une base de donnée et stocke les type de langue dans un tableau. Comme j'ai une page où l'utilisateur doit entrer trois adresses différente et qu'il doit indiquer trois fois la langue utiliser pour la correspondance, la première fois que je charge la classe je stocke les valeur depuis la DB mais la fois suivante que j'utilise la classe, les valeurs sont encore stockées dans la classe d'où un gain de temps non négligeable avec beaucoup de valeurs.
<%
Class SelectLang
private iCodeLang
private sName
private sObjSelect
private sLangTab(3,2)
Public property let Name(sArgs) 'Propriété qui définit le nom du select
sName = sArgs
end property
Public property Get Name() ' Propriété pour récupérer le nom du select
name = sName
end property
Public property let CodeLang(iArgs) 'Je stocke la valeur du code de langue qui devra être sélectionné
if iCodeLang <> iArgs then
call Reset()
iCodeLang = iArgs
end if
end property
Public property get CodeLang() 'Récupère le code de langue qui sera sélectionné
CodeLang = iCodeLang
end property
Private Sub Class_Initialize
call InitVar()
call InitLangTab()
End Sub
Private Sub Class_Terminate
End Sub
private Sub GenerateSelect() 'Sub de type Private pour utilisation en interne
dim i
For i = 0 to ubound(sLangTab) -1
if sLangTab(i,0) = iCodeLang then
call AddWithVbcrlf("<OPTION SELECTED VALUE='" & sLangTab(i,0) & "'>" & sLangTab(i,1) & "</OPTION>")
else
call AddWithVbcrlf("<OPTION VALUE='" & sLangTab(i,0) & "'>" & sLangTab(i,1) & "</OPTION>")
end if
next
end Sub
private Sub AddWithVbcrlf(sArgs) ' Sub qui ajoute une option au select
sObjSelect = sObjSelect & sArgs & vbcrlf
end Sub
Public Sub WriteSelect() 'Sub pour
sHeader = "<select name='" & sName & "'>" & vbcrlf 'On créer le header du select
sFooter = "</select>" & vbcrlf 'On créer le footer du select
if trim(sObjSelect) = "" then ' Si la variable est vide c'est que soit c'est la première fois qu'on
'utilise la classe ou que l'on a changé le CodeLang
GenerateSelect
response.write sHeader & sObjSelect & sFooter
else
response.write sHeader & sObjSelect & sFooter
end if
end Sub
Public Sub Reset()
sObjSelect = ""
end Sub
Private Sub InitVar()
sObjSelect = ""
end Sub
Private Sub InitLangTab() 'Initialisation du tableau avec les valeur des langues
sLangTab(0,0) = 0
sLangTab(0,1) = "Français"
sLangTab(1,0) = 1
sLangTab(1,1) = "Allemand"
sLangTab(2,0) = 2
sLangTab(2,1) = "Anglais"
end Sub
End Class
%>
Le code qui utilise cette classe :
<%
set oSelectLang = new SelectLang 'Instantiation de l'objet
oSelectLang.name = "LangSelect" '
oSelectLang.CodeLang = 1 'On change le code langue => la classe génére le select
oSelectLang.WriteSelect
oSelectLang.CodeLang = 0 'On change le code langue => la classe génére le select
oSelectLang.WriteSelect
oSelectLang.CodeLang = 0 'Le CodeLang est le même donc la classe ne regénère pas le select
oSelectLang.WriteSelect
oSelectLang.CodeLang = 0 'Le CodeLang est le même donc la classe ne regénère pas le select
oSelectLang.WriteSelect
oSelectLang.CodeLang = 2 'On change le code langue => la classe génére le select
oSelectLang.WriteSelect
oSelectLang.CodeLang = 1 'On change le code langue => la classe génére le select
oSelectLang.WriteSelect
set oSelectLang = nothing
%>
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|