Salut,
Existe-t-il un FrameWork ASP3?
Et bien oui. Qu'est-ce qu'un FW? Et bien la definition de Wikipédia est assez bonne.
Sans plus attendre il est en pièce jointe.
C'est moi qui l'ai fait. Je dois dire que depuis quelques mois, j'utilise beaucoup de classes ASP pour coder. Cela rend beaucoup de service si ce n'est pas trop le bazar. Pourtant, il me manquait ce petit qqch qui pouvait transformer tous ces outils en un framework convenable.
Il est très loin d'être terminé. Il souffre certainement de beaucoup d'imperfections, mais si vous voulez bien m'aider, je crois que nous allons pouvoir l'améliorer et le rendre vraiment utile. Il faudrait y ajouter une classe pour manipuler les dates, lire un web.config, ...
Utile à quoi? Et bien dans un premier temps je dirai qu'il va beaucoup nous aider à interroger proprement notre base de données préférée. Ensuite, il va bien nous aider à débuguer. Et puis j'ose espérer à rendre notre code plus lisible.
Le ZIP contient un certain nombre de fichiers. Il s'agit des classes du FW. Vous pouvez le récupérer et les copier dans un dossier de votre site Web.
Ci-dessous 3 exemples pour illustrer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <%@ language="VBSCRIPT" codepage="1252" %> <!--#include file="fw/cls_Immobilis.asp" --> <% ' Déclaration d'un variable globale à laquelle sera liée le framework Dim Immo ' Appel de la procédure principale Call Main ' Procédure principale pilotant la page Public Sub Main Set Immo = New Immobilis ' Affichage du context Http Immo.Http.ToTable Set Immo = Nothing End Sub %>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <%@ language="VBSCRIPT" codepage="1252" %> <!--#include file="fw/cls_Immobilis.asp" --> <% ' Déclaration d'un variable globale à laquelle sera liée le framework Dim Immo ' Appel de la procédure principale Call Main ' Procédure principale pilotant la page Public Sub Main Set Immo = New Immobilis ' Assignement de la propriété du fournisseur de données au gestionnaire de base de données. ' Ici, il s'agit de SQL. Ce pourrait être Access. ' Immo.BD.Provider = "Driver={Microsoft Access Driver (*.mdb)}; DBQ = " & Server.MapPath("BaseDeDonnees.mdb") & ";" ' Ce pourrait être aussi une variable d'application initialisée dans le "Global.asa" ' Immo.BD.Provider = Application("ConnectionString") Immo.BD.Provider = "Driver={SQL Native Client};Server=127.0.0.1;Database=MaBase;Uid=sa;Pwd=sa;" Call Immo.BD.SqlToTable("SELECT * FROM [USER]", "") Set Immo = Nothing End Sub %>Liste des fonctionnalités:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <%@ language="VBSCRIPT" codepage="1252" %> <!--#include file="fw/cls_Immobilis.asp" --> <% ' Indication que l'on souhaite voir s'afficher toutes les indications de débugage dispersées dans le code Debug.IsDebug = true ' Indication que l'on souhaite voir s'afficher tous les recordsets signalés explicitement Debug.IsDebugTbl = true ' Déclaration d'un variable globale à laquelle sera liée le framework Dim Immo ' Appel de la procédure principale Call Main ' Procédure principale pilotant la page Public Sub Main Dim StrSql Set Immo = New Immobilis ' Assignement de la propriété du fournisseur de données au gestionnaire de base de données. ' Ici, il s'agit de SQL. Ce pourrait être Access. ' Immo.BD.Provider = "Driver={Microsoft Access Driver (*.mdb)}; DBQ = " & Session("BaseDeDonnees") & ";" ' Ce pourrait être aussi une variable d'application initialisée dans le "Global.asa" ' Immo.BD.Provider = Application("ConnectionString") Immo.BD.Provider = "Driver={SQL Native Client};Server=127.0.0.1;Database=MaBase;Uid=sa;Pwd=sa;" %> <form action="" id="frm" method="post" enctype="application/x-www-form-urlencoded"> <input id="txt" name="txt" type="text" value="<%=Immo.Http.ItemByKey("txt") %>" /> <% ' La valeur des champs envoyé par le formulaire est stocké dans Immo.Http ' Creation d'une liste déroulante de pays StrSql = "select country_id, country_desc from country order by country_desc asc" call Immo.BD.SqlToDDListe(StrSql, "", Immo.Http.ItemByKey("country"), "country") ' Creation d'une liste déroulante d'équipes fonctionnelles StrSql = "select team_id, team_desc from team order by team_desc asc" call Immo.BD.SqlToDDListe(StrSql, "", Immo.Http.ItemByKey("team"), "team") %> <input type="submit" name="action" id="action" value="Go" /> </form> <% ' Affichage du resultat uniquement si le formulaire est soumis quelque soit la méthode if Immo.Http.IsPostBack then strsql = "select * from [user] where (User_UserName like '%" & Immo.Http.ItemByKey("txt") & "%' and user_country = " & Immo.Http.ItemByKey("country") & " and user_team = " & Immo.Http.ItemByKey("team") & ")" Call Immo.BD.SqlToTable(strsql, "") End If Set Immo = Nothing End Sub %>La classe de base s'appelle "Immobilis" vous ne devez inclure que celle-ci dans vos pages ASP. Elle contient les liens vers les autres classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 "Class HttpContext"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" ;"Public Property Get Count" ;"Public Property Get Form" ;"Public Property Get QueryString" ;"Public Property Get IsPostBack" ;"Public Property Get ItemByKey(key)" ;"Public Property Get ItemByIndex(i)" ;"Public Property Get KeyByIndex(i)" ;"Public Sub ToTable" ;"Public Sub ToXml(path)" ;"Private Sub GrabServerVariables" ;"Private Sub GrabApplication" ;"Private Sub GrabSession" ;"Private Sub GrabCookies" ;"Private Sub GrabForm" ;"Private Sub GrabQueryString" ;"Private Sub SetArrays" "Class DBFactory"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" ;"Public Property Let Provider(value)" ;"Private Property Get Provider" ;"Private Property Set Connection(value)" ;"Private Property Get Connection" ;"Private Property Set Command(value)" ;"Private Property Get Command" ;"Private Property Let CountRequest(value)" ;"Private Property Get CountRequest" ;"Public Function ExecuteQuery(s)" ;"Public Function GetRst(s)" ;"Public Function GetRows(s)" ;"Public Sub RsToTable(rs, classname)" ;"Public Sub SqlToTable(sql, classname)" ;"Public Sub RsToDDListe(rs, classname, selectedvalue, id)" ;"Public Sub SqlToDDListe(sql, classname, selectedvalue, id)" ;"Public Sub RsToXls(rs, path)" "Class CFile"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" ;"Public Property Set File(value)" ;"Public Property Get File" ;"Public Sub DownLoad(path)" "Class CNumbers"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" ;"Public Function IsDecimal(byval str)" "Class CStrings"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" ;"Public Function ToProperCase(s)" ;"Public Function IsAlpha(c)" ;"Public Sub DisplayAscii" ;"Public Function ActivateHttp(str)" "Class CSecurity"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" ;"Public Property Get Encryption" ;"Public Property Get Authentication" "Class CCollection"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" "Class CDebug"; ;"Private Sub Class_Initialize" ;"Private Sub Class_Terminate" ;"Public Default Property Get DefaultProperty" ;"Public Property Let IsDebug(value)" ;"Public Property Get IsDebug" ;"Public Property Let IsDebugTbl(value)" ;"Public Property Get IsDebugTbl" ;"Public Property Let Color(value)" ;"Public Property Get Color" ;"Public Property Let THColor(value)" ;"Public Property Get THColor" ;"Public Property Let TDColor(value)" ;"Public Property Get TDColor" ;"Public Function DWrite(value)" ;"Public Sub RsToTable(rs)"
Vous pouvez évidement la personnaliser en modifiant le nom: "System" eût été plus approprié.
Il serait aussi interessant de construire les page en faisant des classes comme indiqué ici
Voilà, j'espère avoir bientôt de vos nouvelles.
Cordialement,
Immobilis
Partager