写点什么

论道 WP(二):如何学习 WP 开发?

  • 2012-04-06
  • 本文字数:3098 字

    阅读完需:约 10 分钟

虽然 Windows Phone 还没正式进入中国大陆市场,但关注它的国内开发者已经越来越多了,这个时候摆在面前的一个问题就是,如何学习 Windows Phone 开发?如果你对此感到无从入手,或许这篇文章可以给你一点启发。

新的体验,新的开始

学习 Windows Phone 开发的目的是为了开发 Windows Phone 应用,但什么样的应用才算好的应用呢?毫无疑问,我们需要一些榜样作为参照,我们希望了解一个标准的 Windows Phone 应用应该是怎样的,而这正是学习 Windows Phone 开发的第一步。

一般而言,我们有以下 3 种途径体验 Windows Phone:

  • 买个 Windows Phone 手机亲自体验一下。这是最简单直接的,如果你真的打算加入 Windows Phone 开发阵营,Windows Phone 手机是必须的,买到之后不要急着越狱,先以一个普通用户的身份使用一段时间,并且观察和体验一下内置的应用是怎样设计的。
  • 如果你还在观望,不想现在入手 Windows Phone 手机,那么你可以通过网上的视频间接体验一下,这里推荐一个《解读 Windows Phone 7 Mango》视频(英文),短短 15 分钟涵盖了 Live Tiles、人脉、消息、Office、游戏、多任务、Bing 等多个特性。此外,官方的 windowsphone.com 上也有非常丰富的视频和文字内容。
  • 如果你喜欢看书,这里推荐《Windows Phone 7 Plain & Simple》《Windows Phone 7 For Dummies》,这两本书包含大量截图,并且详细讲述了 Windows Phone 的使用步骤,唯一的不足就是缺少 Windows Phone 7.5 的内容,不过就了解 Windows Phone 的体验来说已经足够了。

安装开发工具 ,写个 Hello World 应用

当你对 Windows Phone 有了一个感性的认识之后,接下来就是下载和安装开发工具了,并且熟悉一下开发工具。这套开发工具是免费的,包含Visual Studio 2010 Express for Windows Phone、Expression Blend 4 for Windows Phone 和Windows Phone 模拟器等,足以应付日常Windows Phone 应用的开发任务了。

安装开发工具之后,按照惯例应该写个Hello World 应用,这个应用不必很复杂,它的目的是为了让你经历一次简单的开发过程,同时验证开发工具的安装和配置没有问题。

值得提醒的是,Windows Phone 模拟器是不能在虚拟机里面运行的,而且它对显卡也有要求,需要“使用 WDDM 1.1 驱动程序的支持 DirectX 10 或更高版本的图形卡”,否则,Windows Phone 模拟器的表现会有点不正常,比如看不到一些动画效果、浅色主题渲染问题以及IE 浏览器和WebBrowser 控件无法显示网页内容等。

找个实际的需求开发一下,边做边学

有了前面的准备,接下来就可以正式学习Windows Phone 开发了。如果你想系统地学习,可以找一些书来看,这里推荐Charles Petzold 的《Programming Windows Phone 7》,这本书免费提供 PDF 版,并且附带完整的代码示例,喜欢阅读经典电子书的同学绝对不能错过。如果你倾向于中文内容,也没有问题,因为这本书已经由国内的Windows Phone 开发者林永坚、姜泳涛和李鹏翻译并出版了,书名是《Windows Phone 7 程序设计》

想要更好的把知识学到手,你需要通过一个实际的应用把它们串联起来,这里推荐Allen Lee 的《WP7 有约》,这个系列文章通过一个实际的应用详细展现一个完整的开发过程以及在这个过程中的所思所想,具有一定的借鉴价值。

实际上,你不必把Windows Phone 的知识塞满脑子才能开发,只要你有C#的基础,对Windows Phone 的基本概念有所了解,就可以开始了。你可以挑选一个常见的需求,比如很多人都做过的微博客户端,或者你自己想要的功能,然后着手分析和设计,接着进行实现。在这个过程中,你会遇到各种各样的问题,各种不懂和各种郁闷,但你不应感到失落,因为这些困难为你提供了学习的目标和方向,你的知识和经验正是从解决每一个这样的困难积累起来的,而所有这些困难串联起来最终成就了你要开发的应用以及你的成就感。

无论你选择什么需求进行开发,有一点必须切记,那就是你必须对它们有兴趣。这点很重要,因为在你做出决定之后的一段时间里你都要和它们打交道,所以最好是你有机会用到的,这样就能建立一个有效的反馈循环,帮助自己深入了解这些需求。当然,如果你能接触到潜在的用户就更好了,你可以通过与他们的交流拓宽你对这些需求乃至整个应用的视野。

还有一点值得提醒的,开始的时候不必太过担心你的设计和实现不好,因为随着时间的推移,你会发现需求产生变化,当初设想的某些需求消失了或者合并到其他需求里,以及一些新的需求产生了等等,这些都可能对设计和实现带来冲击。这对于你来说至少有两个好处,第一,它让你有机会重新审视原先设计和实现的不足,这些经验教训应该记录下来,第二,它让你深刻体会到需求变更对整个过程有哪些影响。

不管怎样,尽早开始!

学用第三方库

随着开发过程的推移,你很快就会发现标准的控件无法满足你的需要,这个时候就需要求助于第三方控件库了。

Silverlight for Windows Phone Toolkit 是最常用的第三方库之一,它包含大量常用的控件,比如 WrapPannel、ContextMenu 等,同时也包含了大量不受欢迎的bug ,比如Allen Lee 在《WP7 有约(二):课后作业》最后一节提到的从新的页面返回LongListSelector 控件所在页面时出现的异状。这些开源的第三方库可以极大地丰富你的开发工具包,但在使用之前你需要有个心理准备,万一出了问题,你有可能需要自己阅读和调试代码,找出并修复问题。这是一个好的学习机会,你除了可以学习如何使用这些第三方库,还可以学习它们是如何设计和实现出来的,不过,如果项目比较紧就另当别论了。

Coding4Fun Windows Phone Toolkit 是另一个最常用的第三方库,它也包含大量常用控件,比如 RoundButton、Message Prompt 等,当然也存在问题,比如 Allen Lee 曾经在 Expression Blend 里使用它的某个版本时碰到的 RoundButton 模板异状。这个时候,你可以到官网那里反应问题,你需要尽可能把问题描述清楚,最好能够提供期望效果和实际效果的截图,帮助开发人员更好地你的问题。实际上,你在测试自己开发的应用,也应该详细地描述并存档,以便你或者你的搭档将来定位错误的时候不会无从入手,而且将来添加新的功能时也可以利用这些信息进行回归测试。

关键在于,你应该从现在开始一点一点地积累使用经验以及遇到问题时的应对措施,你可以把这些知识集中起来,比如 Alexis 的《Windows Phone 实用开发技巧合集》,它们将会在你日后开发应用的时候给予非常可观的回报。

分享和交流

当想法仅存在于你的脑子里时,它是无序的;当你把它写下来时,面前的文字马上就会化身成一面镜子,清楚地映出你的想法。事实上,在你写下它的过程中,你的大脑会非常努力地进行整理,你甚至会察觉有些想法正在发生变化,这对于理解你的想法非常有帮助。写下来之后,拿出给别人看看,你会得到别人的反馈,无论是正面反馈还是负面反馈,都能拓宽你的视野。

前面曾经说过,你不必在开始的时候担心你的设计和实现不够好,没有人能够把将来所有情况都考虑进来,某些经历的确实会导致归纳过程产生偏颇,这个时候你需要的不是独自苦思,而是拿着你的想法去找别人,从交流的碰撞中寻求更好的突破。如果你能在交流中暂时放下对某些想法的固着,你可能会发现更好的想法,而不是仅仅对原来想法的小修小补。

曾经有个老师说:“一个知识,你听懂了不算真的懂,你能把别人讲懂了才算真的懂。”我相信这是分享和交流的另一个好处,也正是许多人愿意在博客里分享心得的主要原因。

最后,我们把上面的内容总结成一条学习之路:


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-04-06 00:005147

评论

发布
暂无评论
  • 音乐制作软件 FL Studio21 中文绿色版下载

    因为对音乐有一些了解,所以周边有不少朋友会问我很多关于音乐的问题,其中比较多是学习音乐到底用哪款软件比较好。每次遇到这样的问题,我都会告诉他们,就是我一直在用的音乐制作软件FL Studio。音乐制作软件FL Studio,也就是众所熟知的水果软件, 被业内

    2023-01-28

  • 知识拓展 2|八个问题,解答你学习中遇到的疑惑

    今天这节课主要是为你解疑答惑。我收集了一些同学在学习库乐队过程中遇到的问题,我会针对这些问题进行回答。

    2021-02-18

  • 如何在 Windows 中设置应用程序开机启动?

    每次开机后需要手动运行某些应用程序吗?如果是这样,那您肯定会非常喜欢本文所介绍的方法。事实上,在Windows中将应用程序设置为开机启动非常简单,并且只需要几个简单步骤即可完成。

    2023-05-24

  • 结束语|让音乐陪伴你的生活

    库乐队这门课只是寻找一个新的视角,让平时喜爱音乐但又无从接近的你,有了一个可以迈进音乐大门的契机。

    2021-03-06

  • 16 款好用的白板笔记软件推荐,干货整理!

    说起适合记笔记的白板软件,可能很多人会第一时间想到微软推出的OneNote,或是在iPad上家喻户晓的Goodnotes/Notability,其实除了这3款,在用于记笔记的用途上,还有众多白板笔记软件可供选择——

    2023-07-26

  • 用户故事 1|不止学会了库乐队,还拓展了舒适边界

    对于库乐队,一定要自己多摸索,多尝试。再音乐小白的人,听多了音乐也一定有属于自己的小灵感,因为音乐没有标准化的模版。

    2021-02-11

  • 专注写作:Ulysses for Mac 中文版

    更加专业愉悦的进行写作,Ulysses for Mac 中文版是您的好选择,非常好用的一款markdown编辑器,专为写作者而设计,支持多种格式的文本编辑,包括标准的 Markdown 和富文本格式等。

    2023-04-14

  • 精致女孩的护牙小心机,藏在这瓶冰泉漱口水里

    这年头,很多女孩对自身形象的要求都很高,大家平时总会学习一些化妆、发型、穿搭的技巧。这三方面的内容想必各位精致女孩已经很熟悉,我也就不赘述了。今天我来跟大家聊聊关于精致女孩的护牙小心机。

    2021-06-29

  • “程”风破浪的开发者 | 元宇宙就是“虚晃一枪”?

    说起元宇宙,相比大家多多少少都有所耳闻,甚至有人专门去了解和学习的,2021年被看作是元宇宙元年,直到现在元宇宙话题依然不断,因为元宇宙在过去的一年里太火了。不管是在国内还是国外,元宇宙呈现出火的要“自燃”的态势,而且与元宇宙相关的沾边的都被带

    2022-10-26

  • 工作总结

    个人学习总结

    2020-07-22

  • 多种多样的语音连麦方式

    语音连麦,视频通话这种基础功能大家都已经非常熟悉了,应用场景也十分广泛,例如连麦直播、游戏开黑、在线合唱、视频相亲等。

    2021-02-26

  • 接口管理工具 YApi 怎么用?颜值高、易管理、超好用

    众多接口管理工具如雨后春笋搬冒出。让人欣慰的是,有许多优秀作品来自国内,包含YApi和rap。看着中文的官网,熟悉的汉语,不禁让人暗爽。当然这也就带来另一个弊端,因为使用基数少,所以参考资料少。我们想学习使用方法,只能依赖官方文档,也算是福祸相倚

    2023-08-14

  • 五分钟搞懂 MySQL 主从复制原理,附带学习经验

    Point-to-Point,点对点通信模型。PTP是基于队列(Queue)的,一个队列可以有多个生产者,和多个消费者。消息服务器按照收到消息的先后顺序,将消息放到队列中。队列中的每一条消息,只能由一个消费者进行消费,消费之后就会从队列中移除。

    2021-08-02

  • 开篇词|听了那么多首歌,不如来动手“玩”音乐

    库乐队,会让你从一个单纯的音乐的聆听者,变成音乐的参与者,最终成为音乐的创造者。

    2021-01-18

  • 装了我这 10 个 IDEA 神级插件后,同事也开始情不自禁的嘚瑟了

    昨天,有读者私信发我一篇文章,说里面提到的 Intellij IDEA 插件真心不错,基本上可以一站式开发了,希望能分享给更多的小伙伴,我在本地装了体验了一下,觉得确实值得推荐,希望小伙伴们有时间也可以尝试一下。

    2022-11-03

  • 课前准备|动手实践才是最好的学习方式

    手把手带你搭建好Kubernetes的学习环境

    2022-06-20

  • 开篇词|手机拍照这件小事

    拍照没有答案,更没有对错,一切取决于你想告诉别人的是什么。

    2020-10-21

  • android 开发入门与实战网盘,大佬分享开发经验

    所以,今天,我将献上一份《Android知识图谱》,以自身的经验 & 所见所闻,旨在告诉大家,学习Android,实际上需要学习什么内容,希望你们会喜欢。

    2021-10-22

  • 一线互联网架构师筑基必备技能之 Java 篇,字节跳动 Java 研发面试题社招

    通过本文内容的学习,你将循序渐进的学习到Spring Boot微框架的设计理念和原理,并对框架重点功能和模块进行逐一详解;其次,你将会学习到如何基于Spring Boot微框架构建一套完整的微服务体系;最后总结Spring Boot相关内容,以温故知新。

    2021-10-26

  • 第三周学习总结

    进度落后了一大截,一直不知道原来3个月之后就会收回,不是永久可以回看的。设计模式以前看过,就一直没怎么搞懂,现在感觉还是书找错了,听老师讲完,并看了一部分推荐的书后,感觉入门难度少了很多。现在赶快补课。

    2020-09-07

发现更多内容

SAP UI5 数据绑定中的工厂函数

汪子熙

SAP Fiori SAP UI5 ui5 11月月更

【愚公系列】2022年11月 微信小程序-app.json配置属性之networkTimeout

愚公搬代码

11月月更

Vue基础学习(五)

Studying_swz

Vue 11月月更

汽车产业“芯事”何解?

易观分析

汽车芯片

Zebec Chain有望成为公链赛道新兴生力军,地平线计划持续进击

西柚子

Python进阶(二十五)Python读写文件

No Silver Bullet

Python 文件读写 11月月更

Go-MySQL-Driver,让Go语言拥抱MySQL

闫同学

Go MySQL 11月月更

2022-11-11:设计一个最大栈数据结构,既支持栈操作,又支持查找栈中最大元素。 实现 MaxStack 类: MaxStack() 初始化栈对象 void push(int x) 将元素 x 压

福大大架构师每日一题

Java 算法 福大大

部署和体验Helm(2.16.1版本)

程序员欣宸

Kubernetes Helm 11月月更

【LeetCode】分割数组Java题解

Albert

算法 LeetCode 11月月更

Java Web(五)Web

浅辄

tomcat javaWeb 11月月更

初探Apollo远程服务配置中心

闫同学

阿波罗 11月月更 apllo 远程配置中心

类继承

Maybe_fl

运维进阶训练营 -W03H

b1a2e1u1u

运维

探知数字化研发1-前言篇

薛飞

数字化 软件研发

深入Redis数据结构和底层原理

闫同学

redis 缓存 11月月更

聚焦银行APP用户体验,易观千帆GX指数即将独家首发

易观分析

易观

算法题学习---链表中环的入口结点

桑榆

算法题 11月月更

定了,2022双11 技术进化开启新未来

阿里技术

双11

涨姿势了,这 4 个场景可用 CSS 完全取代 JS ~

掘金安东尼

前端 11月月更

Vivado安装和使用

芯动大师

Verilog FPGA系统 vivado 11月月更

CSS的学习笔记(五)

lxmoe

CSS 前端 学习笔记 11月月更

麒麟信安携手 openEuler 支撑国家电网首批数字换流站试点项目安全高效运行

openEuler

1.6k Star!可以优雅的使用Git了。。。

Jackpop

opensd开源啦 !这套自动化部署OpenStack工具你值得拥有

openEuler

开源 操作系统 openEuler OpenStack

Zebec Chain有望成为公链赛道新兴生力军,地平线计划持续进击

小哈区块

Java实现List中集合的元素进行排序

共饮一杯无

Java List 11月月更

Vue基础学习(四)

Studying_swz

Vue 11月月更

Python进阶(二十六)多线程实现同步的四种方式

No Silver Bullet

Python 多线程 11月月更

一款超好用的Json编辑工具

Jackpop

计算机网络:随机访问介质访问控制之令牌传递协议

timerring

令牌桶 11月月更

论道WP(二):如何学习WP开发?_移动_allenlooplee_InfoQ精选文章