如果你过去是Java开发者转到WP7平台上需要注意哪些呢 ? Java和Windows Phone 7平台在开发上有很多相似的地方,主要是Java和.Net Framework的主要开发语言均为托管方式。在语法上Java程序员可以很容易的理解C#,但Zune123仍然给Java程序员一些需要学习的注意点:
1. 语言特性:
C#虽然和Java有很多相似之处,但微软不可能100%的完全模仿,C#比较特别的就是属性,相对于OOP和Model的编写属性显得更符合项目的维护,同时在代码调用时可以省去方法后面的()输入。具体的细节建议大家查看下C#和Java编程思想了解细节差异。
using关键字,除了类似Java的import来导入一个package,当然在.Net Framework中叫命名空间外,using还可以自动释放某块代码分配的内存,比如常用的I/O操作上,在使用IsolatedStorageFile方面会经常用到。
2. XML解析
对于Java开发者可能目前流行使用的是DOM或SAX,当然一般的Java Web Services提供的是JSON数据交换方式,在WP7平台上开发者一般使用XmlReader来读取XML文件,在XML解析方面使用了Linq to Xml,比如我们看见的XDocument、XElement这点和DOM还是很像的。
3. 文件I/O
大部分的API均有对应,比如Java的InputStream可以对应C#中的StreamReader,但WP7使用了Silverlight中的隔离文件访问,类似iPhone的应用一样每个应用运行在自己的空间中,在沙盒方式下每个程序之间无法相互访问对方的资源。
4. 网络通讯
在网络通讯方面,WP7 Mango开始支持Socket,但微软从.Net Framwork 3.0开始使用Web Services方式主要是WCF,WP7的Socket使用了异步回调方式,并没有提供端口绑定支持,作为客户端比较合适。在Http通讯提供了轻量级的WebClient和支持http header报文、post、get的HttpWebRequest类。同时微软还提供了Push Notification的数据推送,通过微软Live云服务器实现数据的中转处理。
5. 数据库支持
在数据库方面WP7提供了本地的SQL CE数据库,文件后缀为sdf,支持SQL语句这点和桌面上的MS SQL Server的mdf很像,相对于Oracle、MySQL或SQLite而言,Windows Phone 7的数据库更OOP些,在表结构和字段均类似属性的设计方式。
6. 界面UI
在界面方面,传统的J2SE主要使用SWT,到了WP7上,微软提供了Silverlight库的主要控件,同时借助Microsoft Expression Blend可以很好的设计出复杂的界面。
7. 开发模式
这里WP7使用的是MVVM的方式,Model View和ViewModel,引入了Silverlight的数据绑定这个概念,对于UI和逻辑层的互通、更新Data Binding概念十分重要,这点必须熟练掌握。
8. 音频视频
这里WP7并没有使用Silverlight中的库,而是靠微软的XBox的XNA开发框架,这里必须了解的是XNA作为游戏开发框架需要实现主消息循环,在使用media播放音乐、处理麦克风等必须考虑。
Zune123还是推荐大家,在充分了解C#语言之后看下Silverlight或WPF的内容之后,可以充分掌握对WP7开发。
在vi下还是不能删除内容啊??我是用root用户啊,根本就不能删除里面的内容。
我用a+delete无法删除。 在vi下还是不能删除内容啊??那就用x,先按一下esc,再按x。
使用vi编辑器编辑文件时,经常会由于非正常退出而产生一个swp文件,以后每次进入时都会提示,非常麻烦。现将网上搜集的解决方法陈列于此:
swp文件产生原因分为:1.当你用多个程序编辑同一个文件时。
2.非常规退出时。
通常最后的少量改动无法恢复. Vim会在你连续4秒不键入内容时跟磁盘同步一次, 或者是连续键入了200个字符之后. 这可以通过´updatetime´和´updatecount´两
个选项来控制. 所以系统如果在有所改动之后但Vim还没有同步时发生了宕机, 那这一部分内容就无法恢复了。
第一种情况的话,为了避免同一个文件产生两个不同的版本(vim中的原话),还是建议选择readonly为好。
第二种情况的话,你可以用vim -r filename恢复,然后再把swp文件删除(rm .filename.swp)。
进一步学习: swap-filej 关于交换文件的位置和命名
:preservej 手工刷新交换文件
:swapnamej 查看原文件及其交换文件的名字
´updatecount´ 连续击键多少次后做一次同步
´updatetime´ 多长时间之后做一次同步
´swapsync´ 同步交换文件时是否同时做一次磁盘同步
´directory´ 列出存放交换文件的目录
´maxmem´ 尚未写入交换文件的内容所受的内存限制
´maxmemtot´ 同上, 但是针对所有文件