XML Serialization
Τις τελευταίες μέρες ασχολήθηκα με ένα μικρό project οπου θα προσφέρει έναν τηλεφωνικό κατάλογο μαζί με κάποιες στοιχειώδες υπηρεσίες (οπως πχ επεξεργασία, διαγραφή κλπ), που θα αποθήκευε όμως τις επαφές σε ένα XML αρχείο.Μπορώντας εύκολα να μεταφερθεί και να διαβαστεί.Όλη η διαδικασία του να μετατρέψεις μια κλάση σε ένα XML αρχείο λέγεται XMl Serialization.
Ο κύριος σκοπός του XML serialization στο .ΝΕΤ Framework ειναι να ενεργοποιήσει την επικοινωνία XMl αρχείων και ρευμάτων σε common language runtime αντικείμενα και το αντίστροφο.Αυτή η διαδικασία επιτρέπει την μετατροπή XMl αρχείων σε μια μορφή που είναι ευκολότερο να επεξεργαστούν χρησιμοποιώντας συμβατικές γλώσσες προγραμματισμού.Στην συγγεκριμένη εφαρμογή φάνηκε ιδιαίτερα χρήσιμο κατά την φόρτωση των αποθηκευμένων επαφών καθώς και την αποθήκευση τους.Έτσι, απλά μεταφέροντας το contacts.xml αρχείο στον κατάλογο που εκτελείται το πρόγραμμα θα μπορείτε να φορτώσετε τις επαφές καθώς και να τις επεξεργαστείτε.
Όταν ξεκινήσει η εφαρμογή θα δείτε αυτό το παράθυρο
Για να φορτώσετε ήδη υπάρχουσες επαφές πατήστε το κουμπί Load
Άν δέν βρεί το contacts.xml αρχείο θα σας γκρινιάξει λίγο :P
Για να αποθηκεύσετε μία επαφή απλά βάλτε τα στοιχεία της στα αντίστοιχα πεδία και πατήστε Store.Για να αλλάξετε κάτι σε μία ήδη υπάρχουσα επαφή, απλά γράψτε στο αντίστοιχο πεδίο την αλλαγή, επιλέξτε την στο listbox και πατήστε Edit.Για να κάνετε τις επαφές ένα ωραίο XMl πατήστε Save :)
Ο κώδικας περιέχει σχόλια όπου χρειάζεται οπότε μην διστάσετε να του ρίξετε μια ματιά ;)
/*Πέρα απο τα σημεία του Serialize/Deserialize αξίζει να δείτε τις λειτουργίες του listbox το οποίο μου φάνηκε αρκετά χρήσιμο,
όπως και το οτι η κλάση PhoneRecord υλοποιεί το IComparable<PhoneRecord> interface ωστε να μπορεί να γίνει το σορτάρισμα στην λιστα ;)*/