zoukankan      html  css  js  c++  java
  • Windows Phone编程回顾

    前言

    已有一年多没有碰WP相关的开发了. 近期经常看博客园的文章, 发现开发WP应用的同学很多, 其中博问频道关于"WPF", "C#", "WP8"相关的问题比较多, 其中很多问题我之前也遇到过, 所以这里写一篇回顾文档, 希望我的经验能给大家带来一些帮助.

    我最早的WP手机是Mozart, 这部水货机给我带来了无尽的乐趣, 还有苦恼. Metro的界面设计和交互方式, 非常符合我对现代应用体验的期待, 但应用商店中app的质量数量之少, 质量之差, 让人感觉WP的前景不妙. 我的WP开发学习就是从这时开始, 先后根据自己的需求, 捣鼓出好几款软件并提交到了应用商店. 尽管已经一年多未更新, 大多数应用仍有很多忠实用户, 并收到众多网友给我的中肯建议, 还有应用更新的请求.

    写这篇文档, 一方面是回顾下之前的开发经验, 还有就是及时充电, 跟进WP SDK的进度, 为自己/网友继续带来一些新鲜气息.

    一些作品

    手指画画

    "手指画画"是我开发的第一款应用, 前后更新了好几版, 最新版本是5.0, 最后更新时间是2013年7月. 这个也是我自己最满意的作品, 但后来业余时间太少, 中间还有一个6.0版本, 压了一年, 直到现在也没有提交发布. 网友热情让我感动, 作为一款免费软件, 我加上了捐赠链接, 竟然收到了接近100元人民币! 很让人意外, 加这个链接时, 我曾自嘲到, 这个按钮如果有人点真是见鬼了.

    下载地址: http://www.windowsphone.com/zh-cn/store/app/手指画画/7e0f3d2f-890a-4818-bbbd-6ee57689325e

    蜂鸟浏览器

    这个也我花费好几个周末时间. WP7时代的默认浏览器, 尽管操作体验优秀, 但功能少的可怜, 用起来也不够顺手. 我就有想法搞一个浏览器, 也就有了这个作品.

    下载地址: http://www.windowsphone.com/zh-cn/store/app/蜂鸟浏览器/1ca4292a-36a1-4e1b-98ff-d1899003fee0

    其他

    另外, 我练手的软件都提到了市场, 有兴趣可以查阅此链接: http://www.windowsphone.com/zh-CN/store/publishers?publisherId=%e5%86%af%e5%a8%81%e9%a3%8e&amp

    经验

    下面回到正题. WP开发, 入门门槛其实很低. 主要是C#语言学习, .net framework熟悉, 下载WP SDK和Visual Studio Express, APP设计和开发.

    C#语言快速入门

    C#语言本身语法优雅, 按照MSDN教程, 几小时入门应该没什么问题. 作为WP的开发语言, 丰富的语言特性也令人兴奋. 所以

    经验一

    了解.net framework内容

    阅读.NET Framework 的路线图 了解.net framework中包含那些内容, 只需要大概浏览一遍,知道那些功能是这个框架提供的, 以便用时过来详细参考. WP的SDK中提供了这篇文章的一个子集.

    阅读开发 Windows Phone 8 的应用 熟悉WP应用的生命周期和常见功能实现, 同时下载SDK.

    APP设计

    不建议仅抱着学习的态度进行WP开发, 一定要给自己设定一个APP目标, 界面/功能/交互, 最好打个草稿, 在纸上画出界面和交互流程图, 然后对照Microsoft 设计原则 看下界面是否符合WP系统的风格, 然后针对性优化.

    界面/交互/功能整体需求完成后, 就可以根据上面的链接内开始开发了.

    界面布局

    WP的界面通过XAML定义, XAML和HTML其实很类似, 但语法其实更简单, 了解Grid, StackPanel, TextBox, TextBlock, Button这几个标签后, 基本界面就可以完成了. 编写界面几点建议.

    经验二

    1. 多用自适应布局, 高度/宽度自适应, 方便做多分辨率设配;
    2. 多用资源, 比如字体颜色背景等, 不要写具体的值, 而是用资源代替, 参考Windows Phone 主题资源 这样你的界面可以自动适应各个主题;
    3. 将样式整理为资源文件导入, 类似开发网页的css文件, 一次定义, 多次复用, 切勿拷贝;
    4. 所有文本通过文本资源使用, 方便实现本地化;
    5. 所有界面数据显示使用绑定, 不要在代码中直接给元素设置显示内容. 比如显示一个文本, 不要用TextBlock1.Text="xxx";, 而是在xaml中使用<TextBlock Text="{Binding Xxx}"></TextBlock>, 关于绑定, 参考数据绑定概述 (XAML);

    设计模式

    采用"MVVM"方式开发, 理由自己开发中可以体会到, 只要app复杂度稍微提升, "View Model"和"Model"划分很难避免. 所以一开始选择"MVVM"方式开发可以节省不少重构工作.

    "MVVM"尽管有很多框架, 但开始并不建议使用, 自己了解并应用就行了.

    经验三

    • Model尽量实现"INotifyPropertyChanged"接口, 如方便尽量让类可以序列化, 以便持久存储;
    • View Model中定义集合或列表数据, 都使用ObservableCollection类, 如有必要可以继承自此类. 绑定显示时, 修改数据就可以自动更新界面;
    • 只要是列表类的数据显示, 都使用ListBox, 通过定义模板和模板选择, 实现界面自定义.

    绑定, 绑定!

    最后重点强调, 多用数据绑定.

    结束

    时间不多, 今天先到这里.

  • 相关阅读:
    TreeMap<K,V>类
    2020-3-7学习地图
    Thread类
    Redis-Windows中注册Redis后台守护进程
    Redsi-(error) NOAUTH Authentication required.
    2020-3-6学习地图
    Collection<E>接口
    Map<K,V>接口
    Set接口
    List类
  • 原文地址:https://www.cnblogs.com/jpss/p/3931558.html
Copyright © 2011-2022 走看看