博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Phone 的数据存储方式总结
阅读量:2506 次
发布时间:2019-05-11

本文共 1488 字,大约阅读时间需要 4 分钟。

讨论范围:介于WindowsPhone8的SDK发布在即,出于文章时效的考虑,需要说明本文只讨论Windows Phone 7 下的数据存储方式,但我想内容同样适用于WindowsPhone8,只是WindowsPhone8会带来新的数据存储方式。

 

 一、存储方式概览

  1. 本地项目内文件:被编译成资源文件(Resource)或内容(Content)。
  2. 独立存储(Isolated Storage)
  3. 本地数据库
  4. Web Service/ WCF
  5. Cloud/ Azure

二、详细介绍

1、本地项目内文件

    可以通过设置文件的生成方式(BuildAction)将文件设置成资源(Resource)被编译到二进制代码里,优点是随时都能用,但是可能导致启动时加载过慢。在代码中,可以用来读取。一般用这几种场合:不考虑程序的启动时间;不用更新资源文件(因为编译进项目了就别指望了);减少程序的依赖项。  

    可以通过设置文件的生成方式(BuildAction)将文件设置成内容(Content)被编译进项目文件,但不在二进制代码里,优点是效率高,能被多个程序包共用。在代码中,可以用来读取。一般用这几种场合:考虑程序的启动时间;需要更新资源文件(因为编译进项目了就别指望了)。

2、独立存储

    如果要存储用户的数据,可以用独立存储,在Silverlight和WindowsPhon里都没有直接存储系统文件的接口,但是可以用独立存储将保存在用户的设备上。可以用键值对的方式(类),也可以用文件的方式(类)

3、本地数据库

SQLCE:自己家的便携数据库格式,(7.1才有的)

SQLITE:第三方的便携数据库格式。

通过本人实际使用的感觉发现对多线程的读写处理都不怎么好,很容易异常,当然也可能我对其特性理解不够深入。

4、Web Service

可能有以下几种格式:

REST,POX,JSON,OData,SOAP。

而存取方式也有以下几种方式:

Http类:可以直接用HttpWebRequest或WebClient类来调用WebService,通过HTTP协议向WebService发送请求,得到xml或json格式的返回数据。

引用WCF服务:WCF其实是一个WebService框架,支持多种协议(包括http,tcp),支持多种格式(soap,xml,atom)

使用OData客户端: 其实也叫WCF数据服务,以前叫ADO.NET数据服务,一个以RSET形式存取现有数据的框架。WCF数据服务提供OData格式的数据,比如WindowsPhone与SharePoint交互时,SharePoint提供WCF数据服务,WCF数据服务处理所有http交互,序列化和其他的任务,意思是说App能直接通过http协议对远程数据执行増删改查,哪怕跨域也行。OData for WindowsPhone客户端可能在codeplex上找到

5、Azure

也可以用Windows Azure来存取数据,但是免费的服务是有限制的,Azure在云服务器上提供持久化的数据存储,操作方式和WebService差不多。

三、各种方式的适用场合

编译成资源文件 将只读数据嵌入二进制程序
编译成内容文件 不用重新编译就能更新数据
独立存储     存取用户信息
http类 用第三方的REST或POX服务存取数据
http类 获取RSS订阅
用代理类的WCF 从SOAP服务存储数据  
WCF 从Silverlight中将现有的类发布成服务
OData   存取Odata数据
Azure 存储大量数据
   

转载地址:http://xolgb.baihongyu.com/

你可能感兴趣的文章
不吹不黑 | 聊聊为什么要用99%精度的数据回测
查看>>
量化策略回测唐安奇通道
查看>>
量化策略回测DualThrust
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>
通知机制 (Notifications)
查看>>
10 Things You Need To Know About Cocoa Auto Layout
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>
iOS 如何放大按钮点击热区
查看>>
ios设备唯一标识获取策略
查看>>
获取推送通知的DeviceToken
查看>>
Could not find a storyboard named 'Main' in bundle NSBundle
查看>>
CocoaPods安装和使用教程
查看>>
Beginning Auto Layout Tutorial
查看>>
block使用小结、在arc中使用block、如何防止循环引用
查看>>