2010-09-25 6 views
1

Salut tout le monde. Je crée une application de catalogue dans laquelle les utilisateurs ajoutent/téléchargent des informations sur les voitures. Cela pourrait entraîner des centaines, voire des milliers, de voitures et de leurs données (marque, modèle, année, image, etc ...). Voyant WP7 pas de base de données, j'utilise XML. Ma question est, serait-il efficace de stocker chaque objet dans une liste, puis sérialiser toute la liste? Lorsque l'utilisateur charge l'application, la liste entière est désérialisée et chaque objet est instancié. Existe-t-il une meilleure façon de le faire? Merci. Ps - J'ai rencontré DataContractSerializer, mais je ne sais pas si je devrais l'utiliser car il semble être lié à WCF (et je n'utilise pas WCF dans mon application).Sérialisation XML - Efficace?

+0

Vous voudrez peut-être vérifier ma question: http://stackoverflow.com/questions/3790728/performance-tests-of-serializations-used-by-wcf-bindings – Ben

+2

DCS peut être utilisé avec ** ou sans ** WCF tout à fait heureusement. Mais la vraie question est: qu'est-ce qui compte comme efficace * assez *? Avez-vous essayé la chose la plus simple en premier, pour voir si c'est un problème? Oh, et protobuf-net fonctionne sur wp7 :) –

+0

merci pour votre aide. Je n'ai pas essayé de le faire sur une grande échelle, mais je pensais que l'instanciation de chaque objet au lancement devrait être évitée. Je regarderai plus dans DataContracts aussi bien que je pensais qu'ils étaient spécifiques à WCF. – Brap

Répondre

1

Juste le faire et voir. À moins que tous les aspects de ceci soient totalement nouveaux pour vous, cela devrait prendre moins de temps pour prototyper et tester quelque chose comme ça qu'il faudrait pour en discuter sur SO - d'autant plus que le résultat final de la discussion sera probablement révélateur vous de prototyper et de tester. Si c'est trop lent, alors vous pouvez chercher des alternatives - en utilisant un autre type de sérialisation, en désérialisant partiellement les objets au démarrage pour faire fonctionner l'UI et en continuant la désérialisation en arrière-plan, ou autre chose.

+0

merci pour replyig. Je vais travailler sur la sérialisation demain, mais j'espérais que quelqu'un pourrait avoir quelques recommandations d'expérience sur WP7. Une chose, comment désérialiser partiellement les objets s'ils sont stockés dans une liste? Y a-t-il un moyen de le limiter? – Brap

+0

Il y a beaucoup de façons différentes. Le plus grossier et le plus simple est de décomposer vos données en un petit morceau et un gros morceau, de désérialiser le petit morceau, d'initialiser l'interface utilisateur, puis de désérialiser le gros morceau sur une bande de roulement de fond. Vous pouvez également implémenter une sous-classe 'XmlReader' qui analyse le flux d'entrée et déclenche un événement contenant le code XML du dernier enregistrement analysé chaque fois qu'il analyse un enregistrement complet. Ou ... eh bien, ici j'essaie de résoudre un problème sans même savoir qu'il existe. –