begin process at 2012 02 14 01:33:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > CRÉATION ET UTILISATION DE CLASSES ASP

CRÉATION ET UTILISATION DE CLASSES ASP


 Information sur la source

Note :
10 / 10 - par 5 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Initié Date de création :14/03/2002 Date de mise à jour :14/03/2002 15:18:32 Vu :12 486

Auteur : RayBan

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 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

Source avec Zip POWER STQ 2002

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) WEB SERVICE SOFTWARE FACTORY - DE L’INSTALLATION AU TEST DE ... par romagny13
Source avec Zip Source avec une capture Source .NET (Dotnet) DIAPORAMA DYNAMIQUE par yous
Source avec Zip Source avec une capture Source .NET (Dotnet) LES CONTROLES DE VALIDATION par yous
Source avec Zip SYSTÈME DE RÉSERVATION EN LIGNE par polivo
Source .NET (Dotnet) ASP.NET - WEB PROJECT INSTALLER TUTORIAL par fabrice69

Commentaires et avis

Commentaire de chakal le 02/04/2002 16:36:56

Arrete rayban fait pas l'con tu va les traumatiser à vie la !!! mdr
ils vont perdre tous leurs neurones d'un coup mouarf

Commentaire de MarxKarl le 18/04/2002 09:50:36

escusez moi,
ma config : NT4 SERVER + SP4 + IIS (OPTION PACK)
plus ce source
resultat :
Erreur de compilation Microsoft VBScript erreur '800a0401'
Fin d'instruction attendue
/test/classe.asp, ligne 10
Public Property Let Name(sArgs) 'Propriété qui définit le nom du select
----------------^
besoin d'aide, comprend pas, merci.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales