SERIALIZATION : UNE METHODE POUR STOCKER DES DONNÉES
AlexDotNet
Messages postés6Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 4 mars 2006
-
12 févr. 2006 à 14:46
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011
-
12 avril 2007 à 14:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 12 avril 2007 à 14:35
"tu peux tout sérialiser dans un seul fichier"
oui lol merci j'ai deja faitde la serialization pas mal de fois sur des collection des dictionnary ect ...
"il suffit de convertir correctement tes photos dans les objets et ensuite de sérializer le tout."
ca n'a pas de sens proprement dit car c'est le framework qui via l'interface iserializable et iserializaton serialize ce qu'il veux
donc je repose la question ^^
quand veux serializé une image faut le faire a la mimine en crééant des objet qui contienne tte les info avec implementation des interface que j'ai cité au dessus (comme fait dans la source que j'ai cité) ou est ce qu'il le fait tout seul
"je l'ai fait pour un prog de dessins."
URL ? ^^
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 11 avril 2007 à 20:00
tu peux tout sérialiser dans un seul fichier, il suffit de convertir correctement tes photos dans les objets et ensuite de sérializer le tout. je l'ai fait pour un prog de dessins.
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 11 avril 2007 à 18:22
le code est a nettoyé frachement pour la serialization ^^
ca fait un peu barbare, c'est pas tout a fait comme c qu'il faut "entammer" la serialzation.
ca marche certe mais c'est pas trop la methode a utiliser je dirais
je vais essayé de t'en retrouvé un propre qui permet en plus de spécialiser la serialization :
http://www.csharpfr.com/codes/SERIALISATION-XML-DICTIONARY_40912.aspx (le vb.net etant exactement pareil que le C# et le niveau etant simple pas d'excuse de comprehension a la lecture)
cela dit je voudrais savoir si t'as deja essayé de serializer des objet de type image (system.drawig.image) pour savoir si a un moyen de forcer a serialiser les données "brut" de l'image pour vraiment integré l'image au fichier afin d epas se trimballé avec n+1 fichier (n image + le fichier serialiser)
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 4 mars 2006 à 19:53
ah ok
AlexDotNet
Messages postés6Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 4 mars 2006 4 mars 2006 à 19:48
Je dis orienté objet car dans mon programme que je développe en ce moment, j'utilise la programmation objet... j'ai completement modifié ce code.. celui présent sur code-source me permet de partager la méthode.. l'intégration efficasse de la serialization dans les projets ne peut se limitter à ce bout de code.
Alex.
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 4 mars 2006 à 09:59
Désoler mais sérializer un objet c'est typique de la prog objet, et serializer en xml n'est pas dispo en compact framework :(
ce que je vois dans ton code n'est pas du tout du code orienté objet, j'ai poster un truc sur le forum, look :
http://www.vbfrance.com/forum.v2.aspx?ID=678466
AlexDotNet
Messages postés6Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 4 mars 2006 4 mars 2006 à 00:46
<serializable>Public NOM_DE_TON_OBJET as TYPE_DE_OBJET
end Class
tu rajoute la mention : <serializable> devant la classe de ton objet à serializer. Pour y voir plus clair avec la serialization, je te conseil de faire de la programmation DotNet en orienté Objet ! C'est bien plus clair ! Ca te permet de visualiser ton code clairement et surtout, de d'investir dans ton code ! Tout ce qui est Timers, Objets Systeme, ou ce genre d'outils, Winsock etc, il est conseillé de faire cela en Objet... Ca te permet deja de travailler sur le code et de ne pas faire des allés et retours Graphique/Code et de deux, ca te permet aussi de creer un code que tu connais ! Un code sain = Peu d'erreurs... Ecoute, avant, je fesais pas mal d'erreur en VB.. Apres avoir pris l'habitude du language Objet, je peux faire 100 lignes de codes en 30 minutes sans fautes... La Serialization est un bon moyen d'apprendre la programmaton orienté Objet : Tu peux acceder aux ressources systeme en créant des objets déclarés dans le code et les serializer... C Vachement pratique.. et apres, tu peux apprendre à serializer une Class entière.. SURTOUT, oriente toi vers la serialization XML ! XML c'est l'avenir ! je suis Beta testeur officiel chez Microsoft.. Windows Vista et la BDR c'est FINI ! Maintenant, c'est un fichier de configuration qui se trouve dans le dossier de l'application... Il est en XML ! Deplus, nous avons recus récement une Beta de BlackComb ( Pas avant 2011) du systeme d'exploitation apres windows Vista... Il n'y a que du XML ... Je sais que je sors du sujet mais regarde Msn Messenger, l'exportation des contacts se fait au Format XML ... L'une des meilleurs facon d'avoir un programme qui peut migrer TRES FACILEMENT est de programmer selon la charte de Microsoft... Si tu vas flaner sur leur site, tu trouveras une charte qui donne tout les code pour faire un code qui équivaut au codes de Microsoft... La serialization en BIN est utile mais unqiuement si tu veux craquer les parties de jeux ^^ Enfaite, beaucoup de jeux sauvegardent les parametres ou parties dans des fichiers Bin ... Le XML est plus professionnel... Deplus, il te permettra d'alier un site web avec les parametres d'une application (ASP.Net). Le XML est donc le seul à retenir. j'ai exposé dans mon code le BIN car il est simple ! Mais le XML l'est aussi cependant, il faut connaire la facon dont s'organise un arbre XML ... Et je n'avais pas le temps de l'expliquer.. Connaitre un arbre te permet de le modifier sans ReSerializer... Cependant, un .Bin Serialisé, si tu édite le fichier, tu sauvegarde, tu annule la modif et tu réédite le fichier, le .Bin n'est plus valable.. C'est notement la protection du fichier Key de chez Kaspersky pour éviter les fraudes...
En conclusion, pour revenir à la serialization, c'est une Méthode MICROSOFT. Arreter les .ini .. Seializer en utilisant le plus possible la programmation objet pour éviter les erreurs... Enfin, il n'y a pas de XML meilleur que .Bin. Les deux ont des utilisations différentes... Le meilleur moyen de programmer vite est de faire une étude de programme avant de commencer à entrer le code.. prenez une feuille, ecrivez vos variables, et reflechissez à la cohérence.. apres, tout va bien..
Serialiéation = Sauvegarde Rapide, Protegée, Qui est au Normes Microsoft !
Voila ce qu'il peut y avoir à dire à propos de la serialization. Ah, une chose... CREEZ DES MODULES D'AUTOMATISATION DE LA SERIALISATION... Ca ira bien plus Facilement... SOULAGEZ LE CODE DANS LA FORM ! Un programme Rapide est un programme bien codé !
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 3 mars 2006 à 21:03
Salut, tu aurais pu stocké tes infos dans une arraylist en utilisant également du overrides et overridable.
Bref moi je bosse sur la sérialization et je me demande si tu sais comment intégrer la serialization dan sun projet utilisant le compact framework ? car la sérialization est bien dispo mais je ne trouve pas comment intégrer l'en-tête "<serializable()>" au début de mes objets qui devront l'être.
AlexDotNet
Messages postés6Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 4 mars 2006 20 févr. 2006 à 15:16
oui, je sais bien...
j'ai modifié mon code pour l'utilisation dans mon logiciel...
j'en ai fait un module.
Avec Try, Catch, Finally, End Catch.
Merci de cette remarque récurente. Je vais modifier le code du site bientot.
Senynium X
Messages postés49Date d'inscriptionvendredi 22 octobre 2004StatutMembreDernière intervention12 juin 2008 20 févr. 2006 à 11:20
Salut,
tu as juste voulu rallonger ton code avec le bloc "Fin : " ? Parce qu'il n'a vraiment aucune utilité. Tu aurais tout aussi bien pu copier à l'endroit ou tu l'appel (1 ligne pour une ligne, je ne vois pas l'ajout ...). En plus comme tout le monde te l'a ditr avant moi, c'est pas top cette manière de faire. Utilise les "TRY CATCH FINALLY" beaucoup plus adaprtés à la gestion des erreurs
Bonne prog
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200825 14 févr. 2006 à 11:03
surtout qu'il y en a beaucoup ici, qui entre 14h et 18h sont au boulot ...
Et certains collègues d'outre atlantique ne sont même pas levés à cette heure-là.
Tu pouvais mettre le label 'BlocError' après le label 'Fin'. Ca fonctionne aussi, et çà t'épargne un Goto.
Et n'oublie pas de passer le chemin de ton binaire en paramètres. En dur dans le code, c'est pas top. Si tu veux utiliser deux fois la sérialisation, tu es alors obligé de taper deux fois ton code ...
Optitech
Messages postés134Date d'inscriptionsamedi 19 octobre 2002StatutMembreDernière intervention 3 janvier 2009 14 févr. 2006 à 10:56
Salut !
Ta source est intéressente ! Je débute en .Net donc je peut pas trops dire les points qui sont bon ou les points qui sont mauvais. Mais je suis tout a fait d'accord avec FPARIS sur les GOTO il faut oublier les GOTO, surtout quand on fiat du .Net mias avec les autre langage c'est pareil il faut l'oublier !
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 13 févr. 2006 à 07:56
Écoute oui je crois que t'es le roi des ...
Laisse donc le temps voyons c'est pas après quelqeus heures que tu vas nécesairement avoir des commentaires tu sais...
cs_fparis
Messages postés16Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 8 mars 2006 12 févr. 2006 à 22:04
L'idee est tres bonne !!!
Par contre, les GOTO faut oublier, en .net tu peux t'en sortir tres facilement avec des try catch
AlexDotNet
Messages postés6Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 4 mars 2006 12 févr. 2006 à 18:18
c'est sympas de déposer des commentaires ...
Soit personne ne fait de .Net ou alors je suis le roi des ...
C'est vachement sympa, merci ...
AlexDotNet
Messages postés6Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 4 mars 2006 12 févr. 2006 à 14:46
Mirki de déposer vos commetaires aussi constructif seront ils je l'espère.
12 avril 2007 à 14:35
oui lol merci j'ai deja faitde la serialization pas mal de fois sur des collection des dictionnary ect ...
"il suffit de convertir correctement tes photos dans les objets et ensuite de sérializer le tout."
ca n'a pas de sens proprement dit car c'est le framework qui via l'interface iserializable et iserializaton serialize ce qu'il veux
donc je repose la question ^^
quand veux serializé une image faut le faire a la mimine en crééant des objet qui contienne tte les info avec implementation des interface que j'ai cité au dessus (comme fait dans la source que j'ai cité) ou est ce qu'il le fait tout seul
"je l'ai fait pour un prog de dessins."
URL ? ^^
11 avril 2007 à 20:00
11 avril 2007 à 18:22
ca fait un peu barbare, c'est pas tout a fait comme c qu'il faut "entammer" la serialzation.
ca marche certe mais c'est pas trop la methode a utiliser je dirais
je vais essayé de t'en retrouvé un propre qui permet en plus de spécialiser la serialization :
http://www.csharpfr.com/codes/SERIALISATION-XML-DICTIONARY_40912.aspx
(le vb.net etant exactement pareil que le C# et le niveau etant simple pas d'excuse de comprehension a la lecture)
cela dit je voudrais savoir si t'as deja essayé de serializer des objet de type image (system.drawig.image) pour savoir si a un moyen de forcer a serialiser les données "brut" de l'image pour vraiment integré l'image au fichier afin d epas se trimballé avec n+1 fichier (n image + le fichier serialiser)
4 mars 2006 à 19:53
4 mars 2006 à 19:48
Alex.
4 mars 2006 à 09:59
ce que je vois dans ton code n'est pas du tout du code orienté objet, j'ai poster un truc sur le forum, look :
http://www.vbfrance.com/forum.v2.aspx?ID=678466
4 mars 2006 à 00:46
end Class
tu rajoute la mention : <serializable> devant la classe de ton objet à serializer. Pour y voir plus clair avec la serialization, je te conseil de faire de la programmation DotNet en orienté Objet ! C'est bien plus clair ! Ca te permet de visualiser ton code clairement et surtout, de d'investir dans ton code ! Tout ce qui est Timers, Objets Systeme, ou ce genre d'outils, Winsock etc, il est conseillé de faire cela en Objet... Ca te permet deja de travailler sur le code et de ne pas faire des allés et retours Graphique/Code et de deux, ca te permet aussi de creer un code que tu connais ! Un code sain = Peu d'erreurs... Ecoute, avant, je fesais pas mal d'erreur en VB.. Apres avoir pris l'habitude du language Objet, je peux faire 100 lignes de codes en 30 minutes sans fautes... La Serialization est un bon moyen d'apprendre la programmaton orienté Objet : Tu peux acceder aux ressources systeme en créant des objets déclarés dans le code et les serializer... C Vachement pratique.. et apres, tu peux apprendre à serializer une Class entière.. SURTOUT, oriente toi vers la serialization XML ! XML c'est l'avenir ! je suis Beta testeur officiel chez Microsoft.. Windows Vista et la BDR c'est FINI ! Maintenant, c'est un fichier de configuration qui se trouve dans le dossier de l'application... Il est en XML ! Deplus, nous avons recus récement une Beta de BlackComb ( Pas avant 2011) du systeme d'exploitation apres windows Vista... Il n'y a que du XML ... Je sais que je sors du sujet mais regarde Msn Messenger, l'exportation des contacts se fait au Format XML ... L'une des meilleurs facon d'avoir un programme qui peut migrer TRES FACILEMENT est de programmer selon la charte de Microsoft... Si tu vas flaner sur leur site, tu trouveras une charte qui donne tout les code pour faire un code qui équivaut au codes de Microsoft... La serialization en BIN est utile mais unqiuement si tu veux craquer les parties de jeux ^^ Enfaite, beaucoup de jeux sauvegardent les parametres ou parties dans des fichiers Bin ... Le XML est plus professionnel... Deplus, il te permettra d'alier un site web avec les parametres d'une application (ASP.Net). Le XML est donc le seul à retenir. j'ai exposé dans mon code le BIN car il est simple ! Mais le XML l'est aussi cependant, il faut connaire la facon dont s'organise un arbre XML ... Et je n'avais pas le temps de l'expliquer.. Connaitre un arbre te permet de le modifier sans ReSerializer... Cependant, un .Bin Serialisé, si tu édite le fichier, tu sauvegarde, tu annule la modif et tu réédite le fichier, le .Bin n'est plus valable.. C'est notement la protection du fichier Key de chez Kaspersky pour éviter les fraudes...
En conclusion, pour revenir à la serialization, c'est une Méthode MICROSOFT. Arreter les .ini .. Seializer en utilisant le plus possible la programmation objet pour éviter les erreurs... Enfin, il n'y a pas de XML meilleur que .Bin. Les deux ont des utilisations différentes... Le meilleur moyen de programmer vite est de faire une étude de programme avant de commencer à entrer le code.. prenez une feuille, ecrivez vos variables, et reflechissez à la cohérence.. apres, tout va bien..
Serialiéation = Sauvegarde Rapide, Protegée, Qui est au Normes Microsoft !
Voila ce qu'il peut y avoir à dire à propos de la serialization. Ah, une chose... CREEZ DES MODULES D'AUTOMATISATION DE LA SERIALISATION... Ca ira bien plus Facilement... SOULAGEZ LE CODE DANS LA FORM ! Un programme Rapide est un programme bien codé !
3 mars 2006 à 21:03
Bref moi je bosse sur la sérialization et je me demande si tu sais comment intégrer la serialization dan sun projet utilisant le compact framework ? car la sérialization est bien dispo mais je ne trouve pas comment intégrer l'en-tête "<serializable()>" au début de mes objets qui devront l'être.
20 févr. 2006 à 15:16
j'ai modifié mon code pour l'utilisation dans mon logiciel...
j'en ai fait un module.
Avec Try, Catch, Finally, End Catch.
Merci de cette remarque récurente. Je vais modifier le code du site bientot.
20 févr. 2006 à 11:20
tu as juste voulu rallonger ton code avec le bloc "Fin : " ? Parce qu'il n'a vraiment aucune utilité. Tu aurais tout aussi bien pu copier à l'endroit ou tu l'appel (1 ligne pour une ligne, je ne vois pas l'ajout ...). En plus comme tout le monde te l'a ditr avant moi, c'est pas top cette manière de faire. Utilise les "TRY CATCH FINALLY" beaucoup plus adaprtés à la gestion des erreurs
Bonne prog
14 févr. 2006 à 11:03
Et certains collègues d'outre atlantique ne sont même pas levés à cette heure-là.
Tu pouvais mettre le label 'BlocError' après le label 'Fin'. Ca fonctionne aussi, et çà t'épargne un Goto.
Et n'oublie pas de passer le chemin de ton binaire en paramètres. En dur dans le code, c'est pas top. Si tu veux utiliser deux fois la sérialisation, tu es alors obligé de taper deux fois ton code ...
14 févr. 2006 à 10:56
Ta source est intéressente ! Je débute en .Net donc je peut pas trops dire les points qui sont bon ou les points qui sont mauvais. Mais je suis tout a fait d'accord avec FPARIS sur les GOTO il faut oublier les GOTO, surtout quand on fiat du .Net mias avec les autre langage c'est pareil il faut l'oublier !
13 févr. 2006 à 07:56
Laisse donc le temps voyons c'est pas après quelqeus heures que tu vas nécesairement avoir des commentaires tu sais...
12 févr. 2006 à 22:04
Par contre, les GOTO faut oublier, en .net tu peux t'en sortir tres facilement avec des try catch
12 févr. 2006 à 18:18
Soit personne ne fait de .Net ou alors je suis le roi des ...
C'est vachement sympa, merci ...
12 févr. 2006 à 14:46