• 1
  • 2
2007-01-15, 15:20
  #13
Medlem
Citat:
Ursprungligen postat av Rbkniklas
om du anvnder BinaryFormater classen s blir det ju inte en xml serialisering utan n binr serialisering. fr xml serialisering fr du anvnda System.Xml.Serialization.XmlSerializer classen. men om du bara ska lsa filen i ditt eget program s ska binrserialisering vara bttre

Som jag skrev i frsta inlgget vill jag anvnda serialization som ett _alternativ_ till xml och frgan r d vad det finns fr fr- och nackdelar med att spara binrt VS som xml

Jag har ftt fr mig att det knns lttare med binary formatter.. Slipper parsa massa xml, det som avskrcker mig...
Citera
2007-01-15, 15:27
  #14
Bannlyst
Frdelen med xml serialisering r att det kompitablt med betydligt fler system n binr men om du bara ska kra det inom ditt eget program s borde dett inte vara ngot problem.
Var lnge sen jag krde med xml- serialisering men har fr mig att man var tvungen att serialisera allt p en gng annars s gick allt vad parsing heter t helvete
Citera
2007-01-15, 15:54
  #15
Medlem
xeroc81s avatar
Instllningar i programmet som anvndaren kan ndra och som ska sparas mellan 2 sessioner brukar man serialisera som klartext (xml/ini/registret) medans data som programmet anvnder internt brukar serialisera som binrt*.

*Beror ocks p vad det r som programmet pysslar med, ett ordbehandlingsprogram skulle kunna spara all text som klartext eller (binrt beroende p komplexitet p formatet) medans ett program ssom photoshop som hanterar bilder passar bttre att sparas som binrt.
Citera
2007-01-18, 19:58
  #16
Medlem
Citat:
Ursprungligen postat av xeroc81
Instllningar i programmet som anvndaren kan ndra och som ska sparas mellan 2 sessioner brukar man serialisera som klartext (xml/ini/registret) medans data som programmet anvnder internt brukar serialisera som binrt*.

Ska man spara instllningar i .NET ska man nog ta sig en titt p de nya funktionerna fr just detta i 2.0. Det r vldigt smidigt att anvnda sig av de nya klasserna, och n mycket smidigare om man anvnder Visual Studio d man fr upptypade instllningsklasser. Kontentan av det hela blir att du aldrig behver parsa ngonting, det skter ramverket t dig, och skulle anvndaren ha kukat ur xml-filen som .NET skapat s kan ett defaultvrde anges istllet.

Binra format har egentligen bara de frdelarna att de (oftast) r storleksmssigt mindre. Att binra filer skulle innebra problem p andra system r lite av en myt faktiskt. Det r inte ngra strre problem att lsa en binr fil p ngot system s lnge man r p det klara med vilken byteordning som gller och filens struktur. Det r dremot lttare att klura ut den p egen hand om filen r i klartext, naturligtvis.

Binra filer har ocks ofta den frdelen att de r relativt ltt att skriva snabba parsers, men med den datorkraft som gemene man har idag s spelar det argumentet vldigt liten roll.

Den strsta frdelen som jag ser det r att man lr sig vldigt mycket om hur saker fungerar av att jobba binrt istllet fr i klartext. Resten r marginellt.
Citera
2007-01-18, 21:58
  #17
Medlem
Citat:
Ursprungligen postat av fopixel
Ska man spara instllningar i .NET ska man nog ta sig en titt p de nya funktionerna fr just detta i 2.0. Det r vldigt smidigt att anvnda sig av de nya klasserna, och n mycket smidigare om man anvnder Visual Studio d man fr upptypade instllningsklasser. Kontentan av det hela blir att du aldrig behver parsa ngonting, det skter ramverket t dig, och skulle anvndaren ha kukat ur xml-filen som .NET skapat s kan ett defaultvrde anges istllet.

Binra format har egentligen bara de frdelarna att de (oftast) r storleksmssigt mindre. Att binra filer skulle innebra problem p andra system r lite av en myt faktiskt. Det r inte ngra strre problem att lsa en binr fil p ngot system s lnge man r p det klara med vilken byteordning som gller och filens struktur. Det r dremot lttare att klura ut den p egen hand om filen r i klartext, naturligtvis.

Binra filer har ocks ofta den frdelen att de r relativt ltt att skriva snabba parsers, men med den datorkraft som gemene man har idag s spelar det argumentet vldigt liten roll.

Den strsta frdelen som jag ser det r att man lr sig vldigt mycket om hur saker fungerar av att jobba binrt istllet fr i klartext. Resten r marginellt.

Tack fr fr tipset med xml-funktionerna. Ska klart kollain det.

En annan bra grej med spara binrt r vl att man sparar objekt och d med objektets metoder osv. Man kan allts skapa ett visst tillstnd p hrddisken...
Citera
2007-01-19, 01:32
  #18
Medlem
Citat:
Ursprungligen postat av zman
Tack fr fr tipset med xml-funktionerna. Ska klart kollain det.

En annan bra grej med spara binrt r vl att man sparar objekt och d med objektets metoder osv. Man kan allts skapa ett visst tillstnd p hrddisken...

Det kan du lika grna gra med en XML-struktur. Funktioner serialiseras nog inte, men jag skulle tippa p att metadata fr dem gr det. S ett serialiserat objekt mste med andra ord castas till ett anvndbart objekt vid deserialisering, precis som vid XML-deserialisering.

.NET gr det enkelt att serialisera bde i XML och binrt format. Markera dina klasser med Serializable-attributet fr binr serialisering eller anvnd motsvarande attribut fr XML-serialisering. Google knner till mnga tutorials fr bda teknikerna.

Du kan naturligtvis ocks skriva din egen serializer om du vill ha total kontroll ver ditt filformat. Om all metadata r totalt ondig fr dig s kan du naturligtvis vlja att skippa den, men d r du helt ansvarig fr bde serialisering och deserialisering. Varje gng du ndrar din klass mste du uppdatera respektive funktion. Med tanke p dagens mjligheter till datalagring s r metadatan ett litet pris att betala med tanke p hur mycket man vinner p att lta .NET skta allt jobb t en.

Men det kan vara en kul och nyttig erfarenhet att ha gjort det sjlv ett par gnger ocks, inte att frglmma.
Citera
2007-01-19, 01:37
  #19
Medlem
Citat:
Ursprungligen postat av zman
Man kan allts skapa ett visst tillstnd p hrddisken...

Jag insg just att du kanske var p vg att gra en sak som jag gjorde fr lnge sedan, eller tminstone provade att gra. Det gr INTE att serialisera formulr fr att p s vis spara dess position, storlek, utseende, knappar osv. Anledningen r att Windows Forms r vldigt beroende av s kallade window handles vilka inte gr att spara, de r (ofta) annorlunda fr varje gng du kr din applikation.

Vad jag gjorde istllet fr att spara tillstnd var att ha ett formulr som nr det stngdes gick igenom sina egna och alla sina kontrollers (och deras kontroller osv) properties och sparade ner dessa i en XML-struktur. Sen nr formulret laddades s lstes denna struktur in och alla properties sattes som sig br. Det fungerade faktiskt vldigt vl, men vissa properties var lite shaky eftersom att de br sttas i en viss ordning. Snt r rtt kasst faktiskt.

Oftast behver man dock inte spara exakt hur allt sg ut, det rcker med att bara spara ett par saker. Det gr allt vldigt mycket lttare att hantera.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in