C#持久化的选择

要把内存里对象的信息保存出来,就是持久化了,大概体会如下:

0,直接写文本出来,这样其实最好,但按格式读写、解析很麻烦,先放弃了。

1,然后的反应,就是把对象串行化后,保存到硬盘。这样最简单,有API直接支持,但缺点也不少。一个是二进制保存,查看内容不易;二是与类的版本相关,类的定义变了,老版本串行化出来的东西就不好读了;以上这两个倒也不是致命的,最要命的是对象的深拷贝支持很烂(也许是我还不会用吧),不得不放弃。

2,接着想,干脆上RDBMS吧。C#的In-Memory数据库选择不多,不象Java百花齐放的样子。不过最后找到微软出的Sql Server Compact Edition,只有2M大,还可以吧。但问题是,在VS 2005下,不能去管理Sql Server Compact Edition 3.5版的数据库,建不了表我用它干嘛呢?想来,RDBMS还有个缺点,就是对象关系保存麻烦,一对多、多对多烦死了。而且以后可能还有部署的问题。所以还是放弃了。

3,再翻翻兵器库,还好,还有XML呢。对我现在的应用来说,XML是最合适的。一是以文本方式保存,有一定的可读性;二是格式读写都很方便;三是对象关系保存简单些。当然,XML也有它的问题,不过对我现在的应用,应该是最合适的了。

Advertisements
此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s