richardli79

导航

SmartPhone2003SE数据存储

    Smartphone作为手机型的PDA,既有手机的接打电话和手发短信的功能,最主要的是他还能完成一部分PDA的功能,例如个人信息管理,电子邮件功能,基于无线通讯的网络浏览器以及其他应用功能。
    他采用的是类Windows的操作系统,在界面风格方面与我们熟悉的Windows非常类似,同时在开发上感觉也与在windows上开发差不多,都可以用API而且大多数的API名称都是一样的,这样可以方便我们进行开发,但是作为与PockePC Phone Edition不同的一个Window Mobile操作系统,主要在处理能力上与Pocket PC有不同,微软建议简单的应用与业务可以在Smartphone上实现,对于复杂业务与逻辑处理大数据处理还是采用PocketPC的好。
    Smartphone除了在界面操作上与PockePC不同,缺少了触摸屏不支持SIP,只能通过手机上的几个键与少量的功能键来完成各种操作,而且最主要的是缺少了一个本机使用的数据库系统,在PocketPC上内置了SQL CE可以完成数据库功能,而在Smartphone上没有这个,而且从它内置的.net Compact Framework也可以看出它对数据库的支持很少,根本就没有常见的数据库处理类。
    对于一般的简单应用程序一般不会用到数据库,但是能够本地保存部分业务或者逻辑数据还是不错的。对于本地数据的存储可以采用自定格式文件方式与文本数据保存方式。自定义格式数据对于自主研发的应用程序来说比较适用,由自己制定数据格式还可以保证数据保密性。对于需要通过网络进行交换的数据建议采用XML方式存储,因为在.net主推的一种信息交换格式就是XML,而且ADO.NET提供对标准XML文件的数据操作支持,他有个DataSet,DataSet是个好东西,有了它就可以完成类似于数据库的个中操作。感觉一个DataSet就是一个数据库,它可以包含表,表可以包含列于数据行,表之间可以建立关系,表可以有主键,可以排序,可以创建视图。使用ADO.NET可以方便将XML文件读入,根据读入的XML文件构造出一个DataSet来,然后我们就可以用这个DataSet来做我们想做的事情了。
    使用XML文件存储数据很方便,但是也有不足,就是一个标准格式存储的XML数据文件会很大。如果你将数据象一个数据库那样保存,有表有字段,而且表的数据行数不少,那就要命了,我们做过一个试验,将数据库中一张100,000条记录的数据表使用DataSet构造完成后导出XML文件,最后的XML文件有100MB大小,实际数据使用SQL Server导出文本数据总共才3MB。手机上的存储空间才多大,如果不对XML文件进行减肥,那么根本就没法使用。
    给XML文件减肥的方法第一条就是该名字,改掉表名字,改掉列名字,不要用定义得很好看的名字来给他们去名字,用最简单的字符就行,例如Repair_Info_Table这张表,看着很容易就知道是什么意思,但是要保存的时候就不要这么样了,改掉,改称a,这一个下子在100,000条记录的XML文件就要减少16*2*100,000个字节,把列名该掉,用最简单的别名在取名字。这种方法很有效,当使用新名字后我们的那个100MB的文件变成了10MB。
    第二个方法就是减少冗余数据,把设计不好表重新设计,不需要改动数据库,只要改改DataSet里面的表,重新设计一下关系,导入的时候用用select、Where、order by之类来干。
一开始我们的设计的不好,重新设计以后,可以保证新表的数据行数行在10,000条以内。再倒出来就少多了,变成3MB多一点了。这下就可以放到Smartphone上了。
    上面的办法是被逼无奈,如果他有个数据库就好,自己定义的格式又太麻烦,相当于做个小型数据库,用它的ADO.NET就是为了省事:)

posted on 2005-03-31 15:11  Richard  阅读(665)  评论(0编辑  收藏  举报