CLASSE AVEC QUE DES MEMBRES ET DES MÉTHODES STATIQUES POUR GÉRER LES STATISTIQUE

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 1 oct. 2005 à 23:35
tikrimi Messages postés 192 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 9 mars 2007 - 2 oct. 2005 à 00:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34045-classe-avec-que-des-membres-et-des-methodes-statiques-pour-gerer-les-statistiques-d-un-site

tikrimi Messages postés 192 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 9 mars 2007 1
2 oct. 2005 à 00:03
Je vais essayer de répondre point par point.
Les "shared inutiles" sont là pour montrer à quoi ça peut servir. Si tu regardes bien, jamais un objet clsStat n'est instancié, la propriété XmlStatPath n'est affectée qu'une seule fois (au démarrage de l'application), le chemin du fichier xml n'est pas mis en session ou sauvegardé ailleurs... et pourtant... a chaque fois qu'on demande où se trouve ce fichier on le trouve... à méditer ;-)
Je ne crée pas un fichier xml à chaque fois que l'application démarre, je le crée s'il n'existe pas (pour bien faire il faudrait vérifier aussi si le fichier existant et correct en le validant avec une dtd ou un schéma).
Pour la suite, le SQL oui (mais quand on poste une source c'est toujours chiant, c'est pour ça que j'utilise souvent du xml comme source de données), les perfs, la sérialisation oui, mais là on est très loin de la source de coulis, et le but n'etait de faire un appli pour gérer les stats, mais juste de s'amuser un peu à partir de sa source en espérant l'aider un peu.

Bonne nuit à toi,

TiK
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
1 oct. 2005 à 23:35
Pas mal mais ce qui me gene, c'est surtout pour les perf ... :/ et aussi tout ses trucs shared inutile ...

pourquoi tu initialises le chemin dans le global.asax ? la je comprend pas trop. Tu peux directement recuperer le chemin dans ta sub partial

Dim voDataSet As New DataSet
dim XmlStatPath = System.Configuration.ConfigurationSettings.AppSettings("XmlStatPath").ToString()
voDataSet.ReadXml(XmlStatPath)

ca devrait être bon.

et aussi pourquoi tu créer un nouveau fichier à chaque fois que l'application démarre ? si pendant 15min (par défaut je crois) tu n'as plus aucune session active, l'application s'arrete, et à la prochaine requete tu écrases tes stats :/

Donc le startApplication je le ferais dans le addSession. Si il y a un fichier on charge le dataset sinon on créer si il y a erreur, on supprime et on créer un nouveau fichier.

Mais le mieux est quand meme mettre tout ca dans SQL ... et puis pas besoin de dataset :'( tu créer un simple objet :

public class Stat
{
public string IP;
public string browser;
public Date date;
}

A partir de la si tu bosses avec SQL, tu fais une procédure qui prend en paramètre un objet stat et tu rajoute les 3champs dans la base

sinon tu créer un objet qui hérite de collectionBase

[serializable]
public class statCollection : collectionbase
{
public stat Add(string IP, string browser, Date d) // ajout dans l'arraylist interne
}

Ensuite tu n'as plus qu'a serialiser et enregistrer le xml :)

deja niveau perf ca va etre beaucoup plus leger que le dataset ! et tu peux le binder de la meme facon à un datagrid (il me semble)

En esperant que mon commentaire veuille dire quelque chose ,)

Cyril
Rejoignez-nous