Hej jag står inför ett val, och jag har inte arbetat så mycket med serialisering förut men kan grunderna och är insatt i hur det fungerar ganska bra. [citerat Niclas Pehrsson Medlem:22206 www.pellesoft.se/communicate/forum/view.aspx?msgid=267346&forumid=128&sum=0#267346] Ändring i en klass hanteras ju av ISerializeable men det andra som du pratar om är en annan sak. [citerat Niclas Pehrsson Medlem:22206 www.pellesoft.se/communicate/forum/view.aspx?msgid=267346&forumid=128&sum=0#267363] Jag håller med Oskar..Fördelar och nackdelar med binär serialisering
Vi har ett kontorsprogram som skall kunna användas av flera användare där det mest är läsningar.
En SQL server instans eller tjänster av olika slag är uteslutna p.g.a. en del krav.
Så då ser jag det som att jag har två olika val.
1.
Antingen en databas utan instans som t.ex. Sql Server Compact Edition på en utdelad mapp i nätverket (jag känner till att man bara kan vara uppkopplad med en process mot den i taget men det får vi hantera det är inga problem då programmet alltid skall läsa in all data).
2. Binär serialisering
Varför just binär? jo jag vill inte ändra för mycket på objektmodellen.
Binär nersparning gör det ganska enkelt för mig och gör att jag slipper blanda in en databas i programmet, men det gör det också mer komplicerat om filen blir korrupt, vad gör man då? Jag har kollat en del på ISerializeable och har gjort vissa tester och tycker att det verkar ett smidigt sätt att gå.
Vad hade ni valt och varför utifrån den svaga kravbild jag ger?
Om jag väljer alternativ 1 ska jag då köra med en OR/Mapper som NHibernate när jag skall läsa in allt i minnet och sedan spara ner saker som förändras, eller blir det då bättre att göra det manuellt.
Det handlar kanske om 4-5 klasser som skall sparas ner. Men det kan ju självklart öka senare.
Kan nämnas att det kommer att implemmenteras i .NETSv: Fördelar och nackdelar med binär serialisering
<b>> Vad hade ni valt och varför utifrån den svaga kravbild jag ger?</b>
Jag skulle nog valt alternativ 1, av lite olika anledningar. För det första för att jag har en stark känsla av att det kommer gå åt skogen med all data den dag ni ändrar minsta lilla på en klass.. ;) För data som ska _lagras_ (mer än "i en timme tills nästa batchjobb körs") känns det inte riktigt bra alls
Dessutom, att leta ett fel i någonting som inte går att läsa utan att skriva egna verktyg för är väl lite sådär. Vidare, jag tror att en ORmapper kommer orsaka mindre problem när det gäller att lagra objekt som har relationer med andra objekt, vilket känns som en ganska stark anledning.Sv:Fördelar och nackdelar med binär serialisering
(ISerializeable menas med GetObjectData, samt dess Constructor med SerializationInfo och StreamingContext.
Så det lutar åt databaslösningen.Sv: Fördelar och nackdelar med binär serialisering
<b>> Ändring i en klass hanteras ju av ISerializeable men det andra som du pratar om är en annan sak.</b>
<b>></b>
<b>> (ISerializeable menas med GetObjectData, samt dess Constructor med SerializationInfo och StreamingContext.</b>
Det har jag pejl på ;)Sv: Fördelar och nackdelar med binär serialisering
Serializering lämpar sig mer för direktkommunikation än för persistens..
Ska du ha persistens till fil så är det bättre att bygga en egen serializer som läser o skriver egen XML.
Då har du iaf 100% kontroll om du behöver göra stora ändringar i din objektstruktur.