朱永光谈Windows Phone 7及SQL CE开发实践(含资料下载)

在6月7日,由天翼空间·开发者工厂主办,InfoQ协助策划的第八期专家讲坛活动上,微软MVP,InfoQ中文站.NET首席编辑朱永光( @亿科朱永光)向大家分享了在Windows Phone 7(以下简称WP7)上的数据库访问技术的经验并进行了具体的技术讲解,其中还特别提到了关于SQL CE的最佳实践。

Windows Phone 7数据库访问技术(讲稿下载)

朱永光主要从术语定义、基础技术、数据访问技术分类、具体技术讲解等方面进行了分享。朱永光提到,数据访问技术的分类主要包含以下几种:

  • 以数据源位置区分
    • 本地(XML文件、SQLCE、NoSQL等)
    • 远程(Odata、自定义API)
  • 以存储形式
    • 文本(序列化方式:CSV、XML、JSON)
    • 二进制(SqlCe)
  • 以读取权限分
    • 只读
    • 可读可写

接着朱永光分别对每种的访问技术进行了详细的说明,分别通过访问方式、适用场景、优点以及缺点等几个角度来阐述。SQLCE是WP7.1中增加的功能,是一种本地数据库,主要适用于复杂数据模型的场景,其优点是,对于大量数据性能足够好,可以建立表之间的关系,对于大部分人而言类似于关系数据库,支持LINQ。但缺点是无法使用T-SQL语句。朱永光还分享了关于SQLCE的最佳实践:

  • 使用分页减少返回数量
  • 小批量提交,使用Version列
  • 最好把BLOB数据存储在独立存储中
  • 实现INotifyPropertyChanging,只读的时候设置ObjectTrackingEnabled=false
  • 使用索引列,编译查询
  • 分解操作任务

在问答环节,朱永光回答了一些网友的提问,详细信息如下:

问:随着3G时代到来,数据访问技术遇到了哪些突出问题?Windows Phone对这些问题应对得怎么样?
答:3G时代的到来,数据访问技术最突出的问题应该是:大数据量,大并发。特别是社区类的场景。无论是windos phone 还是 andorid ,都会面临这样的问题。不过这些都是在server端的。NoSql技术,内存数据,分布式数据库架构,SOA等都是较好的解决办法。

问:WP7支持多线程方面怎么样呢?
答:支持多线程,但是进程最多支持32个,分为8个优先等级。WP的BCL也有System.Threading命名空间的,所以可以实现多线程,和普通的.NET多线程开发差不多。不过现在WP还没有TPL等并行函数库。

问:WP应用程序独立存储与Silverlight应用程序独立存储的异同点?数据是怎样进行绑定的?
答:操作基本类似。但是WP上多了一些限制,比如不能访问SiteStore,只能有ApplicationStore;SiteSettings不可用。但是WP有个好处就是,没有限额的概念。当然由于手机存储空间有限,也不是说你可以无限使用独立存储;数据绑定基本Silverlight没有什么两样,也就是XAML的数据版本,不过WPF,Silverlight,WP,Metro UI都基本类似。

问:WP7.5在数据存储方面与7.0有什么改进的地方?
答:最大的改进可能就是增加了本地数据存储,即SQL CE(Compact Edition)。对了,刚刚演讲的时候没有提到。WP中的SqlCe是3.5版本。可以在Visual Studio或SQL Server Management Studio中编辑。甚至你可以在这些工具中先把SDF的数据库结构建立好。对于基础数据,也可以不一定用WP来开发编辑工具。

问:微软手机版.net支持二进制序列化吗?
答:据我所知,似乎不可以。不过你可以尝试创建这样的函数库。而.NET只是一个运行和开发环境,你可以在这之上实现很多自定义的函数库。

问:WP7如何能很快的上手开发啊?NoSQL与传统的数据库最大的优势表现在哪些方面,能举例说明一下吗;WP7如何实现安全问题的预防呢?具体是采取什么方式,安装手机杀毒软件?能像Linux一样自生能抵抗互联网病毒的入侵吗?
答:1)对于一个项目的开发,语言并不是最重要的,关键是解决问题的方法和这种语言所提供的解决方案。如果你有丰富的开发经验,那么上手就很快的。微软的东东都学习起来都很愉快,最好的上手方式是是访问:MSDN(http://msdn.microsoft.com/zh-cn/windowsphone/)和听讲座;
2)NoSQL的意思不是 not SQL,而是 not only SQL。传统的数据库强调数据一致性,事务,通过关系来保证。最大优点就是你一数据模型原本的面目,业务逻辑的真正逻辑来操作数据。另外一大优点就是性能高。更多见:http://www.infoq.com/cn/nosql。 顺便提一下,天翼空间也用到了NoSQL技术的。
3)安全预防?我觉得现在WP担心安全问题还是有点早,毕竟第三方应用程序都在安全沙箱中运行,微软给的api也有限,再说装机量这么低黑客还不感兴趣。当然之前有爆过,刷第三方ROM被内置了扣费软件的。

问:请问什么是平面数据?
答:就是列表,没有和其他数据库有关联,或者有子对象,子数据。类似于Excel中一个Sheet中保存的数据。

问:CSV文件访问既可以本地也可以远程吗?
答:可以访问远程的CSV,就是通过WebClient来获取远程CSV文件的Stream。

关于讲师

朱永光,IT自由人和环境保护者,微软最有价值专家(MVP)和MCSD。他有15年的编程实践经历,擅长微软相关技术和产品,目前主要关注动态语言、函数式语言、并行计算、云计算和RIA。现在他作为共同创始人经营着一家环境保护技术公司,致力于用IT促进环境保护,并把环境保护理念带入IT。个人博客为:http://redmoon.cnblogs.com。

关于专家讲坛

天翼空间开发者社区专家讲坛是天翼空间开发者社区(www.189works.com)2012年针对开发者推出的一项提升专业能力的系列讲座,每周四晚,邀请移动互联网开发领域的权威专家,通过语音频道专题讲座,线上论坛访谈,以及微博、QQ群线上同步直播的形式,为社区的开发者用户提供系统的技术讲座,答疑,以及运营知识方面的培训。

往期内容回顾

关于专家讲坛更多详情,请浏览官方网站。InfoQ也会对后续的活动进行跟踪报道。

关于社区活动的更多详情,欢迎查看InfoQ维护的社区活动日历,也欢迎关注InfoQ官网微博(@InfoQ),获取实时的活动信息!

你可能感兴趣的:(朱永光谈Windows Phone 7及SQL CE开发实践(含资料下载))