Salut les gars Je crée un serveur de socket très simple qui permet à ses clients d'enregistrer son propre état d'objet basé sur les clés en l'envoyant sur le réseau. J'utilise un protocole très simple codant l'objet sérialisé à la chaîne base64 et sera envoyé dans le cadre de mon format xml personnalisé. Je voulais savoir si la sérialisation sera toujours la même si l'application cliente fonctionne sur Windows 32 bits et 64 bits et utilise .net Framework? cela sera-t-il également le cas si toutes les applications clientes sont créées en utilisant C++ mais fonctionnent sur des plateformes différentes?Sérialisation d'objets sur différentes plates-formes
Répondre
La sérialisation entre CLR 32 bits et 64 bits ne devrait pas poser de problème, mais si vous souhaitez pouvoir sérialiser sur des plates-formes non-NET, vous ne devez pas utiliser la sérialisation binaire par défaut. Personnellement, je ne l'utilise que de toute façon, car il peut être difficile à gérer en termes de versioning, etc.
Il y a beaucoup d'autres options de sérialisation disponibles:
- sérialisation XML (soit le ou intégré roulés à la main)
- Thrift
- YAML
- JSON Protocol Buffers
- (Je déclare un intérêt: J'ai écrit l'un des ports de buffers Protocole à C#)
Tous ces éléments fonctionneront probablement mieux sur plusieurs plates-formes. Certains sont lisibles par l'homme, ce qui peut parfois être utile. (Les tampons de protocole ne sont pas lisibles par un humain, mais il est facile de vider une version texte d'un message de tampon de protocole.)
Certains construisent efficacement leur propre modèle d'objet via un schéma séparé, tandis que d'autres vont faire face (à un plus ou moins degré) avec votre modèle d'objet existant.
- 1. Sérialisation d'exceptions sur WCF
- 2. Livre sur la sérialisation .Net?
- 3. Question sur la sérialisation XML
- 4. Q sur sérialisation Python/désérialisation
- 5. jquery: selectbox avec différentes sorties sur différentes sélections
- 6. Même code faisant deux choses différentes sur deux applications différentes?
- 7. Diriger différentes adresses IP vers des pages différentes sur IIS7
- 8. css différentes tailles de police sur les familles différentes
- 9. sérialisation classe dérivée personnalisée
- 10. variable sur différentes pages jsp
- 11. Différentes propriétés liées sur ComboBox
- 12. SQL somme() sur différentes périodes?
- 13. Trouver l'âge sur différentes planètes
- 14. Restlet sur Android - Problèmes de sérialisation
- 15. Ignorer la sérialisation binaire sur une propriété
- 16. Problème de sérialisation avec Enums sur Android
- 17. Sérialisation XML .Net basée sur un XSD?
- 18. sérialisation conditionnelle sur chaque élément d'une liste
- 19. Sérialisation XML et LINQ
- 20. Est-ce que l'utilisation de compilateurs de versions différentes de JDK sur le même fichier source rompt la (dé) sérialisation?
- 21. C++ Boost sérialisation sérialisation templated classes dérivées
- 22. Sérialisation d'événements
- 23. sérialisation XML en utilisant boost :: sérialisation
- 24. sérialisation .NET types génériques
- 25. WCF sérialisation
- 26. Affichage d'images différentes sur des pages différentes sur un site WordPress
- 27. Sérialisation en C# sans sérialisation d'une liste lorsqu'il y a un DataTable sur le côté?
- 28. Sérialisation Javascript
- 29. Sérialisation ANTLR
- 30. sérialisation objet
+1 pour YAML et Thrift – onof
En fait, je voulais désérialiser des objets créés sur des applications non.net depuis que j'ai fourni un moyen sur mon format xml personnalisé pour me donner quelques informations de base sur l'objet encodé comme la version et son type. Pouvez-vous me dire une meilleure façon de le faire? – powerbox