OVH Cloud OVH Cloud

Serialisation / Deserialisation kézaco

9 réponses
Avatar
elecoest
Bon je ne savais pas trop ce que c'=E9tait, mon niveau d'anglais est
bien faible, j'ai par contre trouver une d=E9finition simple. C'est un
principe simple en fait :/ : "La s=E9rialisation est le processus de
conversion de l'=E9tat d'un objet en une forme enregistrable ou
transportable (XML/SOAP/Binaire). Le compl=E9ment de la s=E9rialisation
est la d=E9s=E9rialisation, qui convertit un flux en objet. Ensemble, ces
processus facilitent le stockage et le transfert des donn=E9es."
Les Services Web sont, entre autres, fond=E9s sur ce processus de
s=E9rialisation / d=E9s=E9rialisation.

Voil=E0. En esp=E9rant que cette d=E9finition puisse =E9claircir les
esprits comme elle l'a fait pour moi.

--
Emmanuel

9 réponses

Avatar
Maax°\(51\)°
Salut

Surtout que là dans la 10, ca va enfin me permettre de sérialiser mes objets
(je code pas mal en POO, et j'en avais marre de me taper la
sérialisation/désérialisation à la main, en enregistrant dans un fichier
texte XML chacun des membres de mes classes).

Là la fonction Sérialise() te le fait d'elle meme et tu peux sérialiser en
XML ou en binaire.
Seul bémol : les tableaux d'objet dynamiques non typés (c'est à dire où on
n'a pas explicitement dit de quel type d'objet il s'agissait) ne sont pas
sérialisés correctement. ST contacté à ce sujet et le bug est enregistré
chez eux.

Désérialise() fait l'inverse et te restaure ton objet a partir de son code
sérialisé.

Nota : ca peut être très pratique pour faire de l'objet distribué entre deux
applis distantes...
une piste que je suis en train d'explorer (m'évitera de fournir un fichier
XML à parser/interprété) pour un contrôleur de presse à distance.

@+
Maax°(51)°

a écrit dans le message de news:

Bon je ne savais pas trop ce que c'était, mon niveau d'anglais est
bien faible, j'ai par contre trouver une définition simple. C'est un
principe simple en fait :/ : "La sérialisation est le processus de
conversion de l'état d'un objet en une forme enregistrable ou
transportable (XML/SOAP/Binaire). Le complément de la sérialisation
est la désérialisation, qui convertit un flux en objet. Ensemble, ces
processus facilitent le stockage et le transfert des données."
Les Services Web sont, entre autres, fondés sur ce processus de
sérialisation / désérialisation.

Voilà. En espérant que cette définition puisse éclaircir les
esprits comme elle l'a fait pour moi.

--
Emmanuel
Avatar
Emmanuel Lecoester
"Maax°(51)°" a écrit dans le message de
news:43db6a38$0$20148$
Salut

Surtout que là dans la 10, ca va enfin me permettre de sérialiser mes


objets
(je code pas mal en POO, et j'en avais marre de me taper la
sérialisation/désérialisation à la main, en enregistrant dans un fichier
texte XML chacun des membres de mes classes).

Là la fonction Sérialise() te le fait d'elle meme et tu peux sérialiser en
XML ou en binaire.



la fomat Soap est géré aussi ?
Avatar
Maax°\(51\)°
Salut,

Ehhhh non... :( le XML généré est un XML brut de pomme
et le binaire est made in PC SOFT.

a moins d'encapsuler soit meme SOAP dans le XML et de le désencapsuler au
moment de la désérialisation...
(avec les fonctions SOAP ?)

@+
Maax°(51)°

"Emmanuel Lecoester" a écrit dans le message de
news: 43dbc7d5$0$353$

"Maax°(51)°" a écrit dans le message de
news:43db6a38$0$20148$
Salut

Surtout que là dans la 10, ca va enfin me permettre de sérialiser mes


objets
(je code pas mal en POO, et j'en avais marre de me taper la
sérialisation/désérialisation à la main, en enregistrant dans un fichier
texte XML chacun des membres de mes classes).

Là la fonction Sérialise() te le fait d'elle meme et tu peux sérialiser
en
XML ou en binaire.



la fomat Soap est géré aussi ?




Avatar
Emmanuel Lecoester
"Maax°(51)°" a écrit dans le message de
news:43dbca1b$0$29189$
Salut,

Ehhhh non... :( le XML généré est un XML brut de pomme



normal

et le binaire est made in PC SOFT.



Donc interprétable que par des outils PC Soft ?

a moins d'encapsuler soit meme SOAP dans le XML et de le désencapsuler au
moment de la désérialisation...
(avec les fonctions SOAP ?)



Je demandais çà car j'ai vu que les solutions Microsoft permettent ces trois
formats avec en ordre de rapidité : binaire / XML / SOAP et et terme de
complétude binaire / SOAP / XML
Avatar
Maax°\(51\)°
Salut,

Pour ce qui est du binaire, oui (enfin, je ne me vois pas écrire un parseur
pour le binaire).
Par contre, il est vrai que pour se mettre à niveau par rapport à MS, SOAP
aurait pu être un format de sortie...

J'envoie au ST, ca coûte rien et en priant très fort ils vont peut être le
rajouter...

@+
Maax°(51)°

"Emmanuel Lecoester" a écrit dans le message de
news: 43dbcc86$0$536$
"Maax°(51)°" a écrit dans le message de
news:43dbca1b$0$29189$
Salut,

Ehhhh non... :( le XML généré est un XML brut de pomme



normal

et le binaire est made in PC SOFT.



Donc interprétable que par des outils PC Soft ?

a moins d'encapsuler soit meme SOAP dans le XML et de le désencapsuler au
moment de la désérialisation...
(avec les fonctions SOAP ?)



Je demandais çà car j'ai vu que les solutions Microsoft permettent ces
trois
formats avec en ordre de rapidité : binaire / XML / SOAP et et terme de
complétude binaire / SOAP / XML




Avatar
Michel
> Par contre, il est vrai que pour se mettre à niveau par rapport à MS, SOAP
aurait pu être un format de sortie...

J'envoie au ST, ca coûte rien et en priant très fort ils vont peut être le
rajouter...




Je pense que ce genre de souhait est voué à l'echec, ou on prend en
compte complètement une technologie et on va jusqu'au bout ou mieux vaut
ne rien faire.

J'ai galéré plus que raisonnable sur SOAP dans la version 8 de WIndev
(il y a eu d'autres versions depuis je crois) avec des bouts qui
marchent d'autres pas, des normes respectées d'autres non.
j'ai été obligé de mettre en place des solutions hybrides, (inmaintenables)
Laisser croire que du XML c'est du texte avec des balises est une arnaque.
très vite tu te heurtes aux espaces de nommage, au support de l'UTF8 (le
vrai pas le code 00 ajouté à chaque caractère pour faire 2 octets.

Professionnellement tu fais ça une fois, 2 fois, .. à la troisème tu as
intérêt à hésiter sinon tu mets la clef sous la porte.

Michel
Avatar
Maax°\(51\)°
Salut,

Les déboires du SOAP/XML en 8 ont quand même eu des réponses et des
corrections.
Je viens de découvrir qu'en 10, les espaces de nommages sont parfaitement
supportés
(enfin, parfaitement jusqu'a maintenant) : XMLNameSpace...

Pour ce qui est de la conversion UTF8, la fonction XMLConstruitChaine() ne
m'a jamais fait défaut depuis la 9 (Ah si peut être une fois ou je me suis
retrouvé avec un caractère parasite en entête du fichier, d'ailleurs
toujours pas corrigé en 10)...

Mais il est vrai que si une autre solution est en place et fonctionne (bien
qu'inmaintenable), ca vaut peut être pas le coup de changer.

@+
Maax°(51)°

"Michel" a écrit dans le message de news:
dri3rs$4i1$
Par contre, il est vrai que pour se mettre à niveau par rapport à MS,
SOAP aurait pu être un format de sortie...

J'envoie au ST, ca coûte rien et en priant très fort ils vont peut être
le rajouter...




Je pense que ce genre de souhait est voué à l'echec, ou on prend en compte
complètement une technologie et on va jusqu'au bout ou mieux vaut ne rien
faire.

J'ai galéré plus que raisonnable sur SOAP dans la version 8 de WIndev (il
y a eu d'autres versions depuis je crois) avec des bouts qui marchent
d'autres pas, des normes respectées d'autres non.
j'ai été obligé de mettre en place des solutions hybrides,
(inmaintenables)
Laisser croire que du XML c'est du texte avec des balises est une arnaque.
très vite tu te heurtes aux espaces de nommage, au support de l'UTF8 (le
vrai pas le code 00 ajouté à chaque caractère pour faire 2 octets.

Professionnellement tu fais ça une fois, 2 fois, .. à la troisème tu as
intérêt à hésiter sinon tu mets la clef sous la porte.

Michel


Avatar
Michel
Maax°(51)° a écrit :
Salut,

Les déboires du SOAP/XML en 8 ont quand même eu des réponses et des
corrections.
Je viens de découvrir qu'en 10, les espaces de nommages sont parfaitement
supportés
(enfin, parfaitement jusqu'a maintenant) : XMLNameSpace...



On peut donc maintenant utiliser des fichiers XML de la forme :

<text:p text:style-name="P19">DEVIS</text:p>

sans voir disparaitre les préfixes lors de l'utilisation des fonctions
de manipulation XML

C'est une bonne nouvelle.

Pour ce qui est de la conversion UTF8, la fonction XMLConstruitChaine() ne
m'a jamais fait défaut depuis la 9 (Ah si peut être une fois ou je me suis
retrouvé avec un caractère parasite en entête du fichier, d'ailleurs
toujours pas corrigé en 10)...



Sauf que je n'ai jamais eu de correction sur cette fonction inutilisable
en 8, ni d'ailleurs pour aucun des Pb de cet ordre signalés avec projets
joints au ST.

et que je suis par exemple obligé de gérer l'affichage d'une chaine
retournée par SOAPDonneRésultat
avec des routines de décodage du genre.

str = Remplace(machaine,"é","é")

Michel
Avatar
Maax°\(51\)°
Salut,

Il y a pourtant des fonctions de conversions :

UT8VersChaine()
AnsiVersUnicode() avec tout un tas de format d'encodage (pas tout essayé non
plus !)...

@+
Maax°(51)°

"Michel" a écrit dans le message de news:
dri9fu$lk7$
Maax°(51)° a écrit :
Salut,

Les déboires du SOAP/XML en 8 ont quand même eu des réponses et des
corrections.
Je viens de découvrir qu'en 10, les espaces de nommages sont parfaitement
supportés
(enfin, parfaitement jusqu'a maintenant) : XMLNameSpace...



On peut donc maintenant utiliser des fichiers XML de la forme :

<text:p text:style-name="P19">DEVIS</text:p>

sans voir disparaitre les préfixes lors de l'utilisation des fonctions de
manipulation XML

C'est une bonne nouvelle.

Pour ce qui est de la conversion UTF8, la fonction XMLConstruitChaine()
ne m'a jamais fait défaut depuis la 9 (Ah si peut être une fois ou je me
suis retrouvé avec un caractère parasite en entête du fichier, d'ailleurs
toujours pas corrigé en 10)...



Sauf que je n'ai jamais eu de correction sur cette fonction inutilisable
en 8, ni d'ailleurs pour aucun des Pb de cet ordre signalés avec projets
joints au ST.

et que je suis par exemple obligé de gérer l'affichage d'une chaine
retournée par SOAPDonneRésultat
avec des routines de décodage du genre.

str = Remplace(machaine,"é","é")

Michel