QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

论道 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:004995

评论

发布
暂无评论
  • 如何在 Windows 中设置应用程序开机启动?

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

    2023-05-24

  • 音乐制作软件 FL Studio21 中文绿色版下载

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

    2023-01-28

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

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

    2021-01-18

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

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

    2023-07-26

  • 工作总结

    个人学习总结

    2020-07-22

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

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

    2021-02-26

  • 第三周学习总结

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

    2020-09-07

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

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

    2022-06-20

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

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

    2021-10-22

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

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

    2023-04-14

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

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

    2021-02-18

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

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

    2021-03-06

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

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

    2022-10-26

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

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

    2021-02-11

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

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

    2021-06-29

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

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

    2020-10-21

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

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

    2023-08-14

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

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

    2021-08-02

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

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

    2022-11-03

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

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

    2021-10-26

发现更多内容

可计算存储是否真的与众不同?

ScaleFlux

压缩数据 计算与存储 固态硬盘

浅谈如何做好知乎内容营销:需要注意哪些细节

石头IT视角

HTTPS 的加密过程及其工作原理

wljslmz

https 三周年连更

体验MMGPT本地部署(上)

IT蜗壳-Tango

三周年连更

AI都会写脚本了,传统的运维工程师会失业吗? | 社区征文

wljslmz

AI 运维工程师 三周年征文

来了!昇腾MindStudio全流程工具链分论坛精彩回顾,助力高效开发和迁移效率提升

Geek_2d6073

2023 开源之夏|和 Milvus & Towhee 一起玩转 AI、享开源、得奖金

Zilliz

Milvus Zilliz 向量数据库 Towhee 开源之下

Redis Operator在中原银行实践落地及能力创新

中原银行

redis 云原生 operator redis operator

总有AI想害'朕' 失业,我们该何去何从| 社区征文

穿过生命散发芬芳

ChatGPT 三周年征文

理解并实现自动导入(Auto Import)功能的原理

Lee Chen

JavaScript

软件测试丨Pytest-运行用例、常用参数、执行pytest、异常处理

测试人

软件测试 自动化测试 测试开发 pytest

澳鹏与 Reka AI 强强联合,构建高质量的多模态 LLM 应用

澳鹏Appen

人工智能 数据标注 生成式AI

2023-05-10:给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表 如果在二叉树中,存在一条一直向下的路径 且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,

福大大架构师每日一题

Go 算法 rust 福大大

Flink中的时间及窗口类型

阿泽🧸

flink 三周年连更

在SDN技术盛行的时代,网络工程师需要不断学习新技术跟上时代的步伐 | 社区征文

wljslmz

sdn 三周年征文

Python自动化办公神器!1行代码实现文件转PDF,支持Word、Excel、PPT、TXT格式

程序员晚枫

Python PDF

[杂谈]大型JSON数据切分(Java Jackson)

alexgaoyh

json elasticsearch Jackson 分割

用LeangooScrum敏捷工具做缺陷管理和迭代规划和迭代执行

顿顿顿

Scrum 敏捷开发 敏捷项目管理 敏捷工具 scrum敏捷工具

麻了,一个操作把MySQL主从复制整崩了

JAVA旭阳

Java MySQL

盘古云课堂加入 PolarDB 开源数据库社区

阿里云数据库开源

polarDB PolarDB-X PolarDB-PG PolarDB for PostgreSQL 阿里云瑶池数据库

腾讯云和ScaleFlux联合推出可计算存储与大容量QLC NAND解决方案

ScaleFlux

腾讯云 数据中心 降本增效 企业级SSD SSD寿命

C++模板和泛型编程详解

小万哥

c++ 程序员 面试 后端 开发

通过自定义域名 + SSL 的方式访问 Amazon MQ for RabbitMQ

亚马逊云科技 (Amazon Web Services)

AntDB数据库体验室上线啦!一站式培训+实操,带您感受“电信级”国产数据库的魅力

亚信AntDB数据库

AntDB AntDB数据库 企业号 5 月 PK 榜

云原生应用交付流程安全规范

穿过生命散发芬芳

安全规范 三周年连更

类似Redmine,但更好的7款项目管理工具

爱吃小舅的鱼

项目管理 项目管理软件 Redmine

从IDC数据库安全报告,看OceanBase安全能力

OceanBase 数据库

数据库 oceanbase

挑战与机遇,全面预算管理的执行计划

智达方通

大数据如何助力营销(1)市场调研

MobTech袤博科技

专访惠众科技|元宇宙应用如何借助3DCAT实时云渲染实现流畅大并发呈现?

3DCAT实时渲染

元宇宙 实时渲染云

中国网约车领域月度观察2023年04月

易观分析

网约车 出行服务

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