懒惰是什么?
懒惰指人们刻意回避体力或脑力劳动的行为。
产生原因:懈怠的心态、懒散的作风以及对一事无成的漠视。
懒惰是如何影响Windows Phone开发工作的?
——让资源在我们眼皮底下溜走。
无论大家认为智能手机能够在生活中扮演如何重要的角色,我们必须认清一个现实:这只是部小型设备,包括内存、处理性能以及电池寿命在内的各项参数均十分有限。尽量把能在其它平台上进行的工作与手机分离可以有效延长电池使用时间,而将数据及日常处理工作抽离出来也能帮助我们在多用户及多平台移动解决方案中更加游刃有余。云解决方案正是由此向通用计算、大型扩展规划、高可用性一路高歌猛进,以按需使用的原则赢得了广泛好评。云与移动技术的强强联合成功引发一加一大于二的良好效果。
大家作为一位Windows Phone开发人员,有没有考虑过利用Windows Azure为自己的Windows Phone解决方案平添助力?各位的答案是什么,如果不是“我使用过Amazon或者其它云供应商提供的服务”,那么真是要反思一下自己的工作积极性了。在下面的文章中,我将从多个方面与大家讨论这个话题,希望帮助读者朋友摆脱懒惰的恶习,并考虑利用Azure的云基础设施让自己的Windows Phone应用程序锦上添花:
◆Windows Azure: 点击此处了解关于Windows Azure的更多详情。通过阅读,大家会了解到这套云平台的功能、作用、业务模式以及如何为开发人员提供帮助。温馨提示——学习过程其实相当简单。
◆用好免费资源: 乐于尝试新鲜事物是成功的必要前提,因此无论是哪种资源,只要不需要投入太多资金和精力,我们就不妨试它一试。免费的Azure体验版就是大家不容错过的好东西。另外,各位只要订阅MSDN,就能够第一时间免费使用Azure的强大功能,点击此处了解更多内容。
◆数据: 数据是一切应用程序的核心内容——无论关系型还是非关系型都是如此。家庭成员之间可能希望与彼此共享各自设备上的应用数据,那么作为开发人员,我们就必须要尽量满足这类需求,让信息能够在不同平台之间顺畅传输。出于这种考虑,建议大家采用集中式存储、缓存内保留的处理方式。而Azure正是解决问题的最佳方案,关系型数据交给SQL Azure,非关系型数据则交给Blobs或者Tables。这样一来,两种数据都会拥有极佳的可扩展性及高度可用性。
◆Glance & Go(令人一见而钟情的软件提示): 还记得Windows Phone广告中强调过的“所见即所得”吗?Windows Phone中的信息推送机制无论是目前效果最好的软件营销手段之一,而Glance & Go方案则是这种机制的重要体现。为什么启动应用程序时一定要伴随着简单的活动板块变化?因为在Mango系统中,通过板块活动推送信息的设定能够让开发人员拥有更多操作空间——我们有机会让用户在提示框中看到我们的应用,这无疑会加深他们的印象。Azure可以作为我们Windows Phone应用程序的最佳后端,它的托管服务能够在手机激活时自动以板块、框体或者提示栏的方式向用户宣传我们的应用程序产品。而且我们还能够根据当前用户基础的状况调整后端的资源调配。
◆可扩展性: 你的应用程序可能时效性极强,例如与NFL(即全美橄榄球联盟)比赛有关;或者你的应用在初期下载量激增,却在一个月之内迅速疲软。如果你的Windows Phone应用利用某种后端处理服务及数据,那么你打算如何处理扩展性方面的问题?这种前高后低的境况往往令我们陷入两难的选择:性能大幅下降而失去用户,或者为ISP或硬件支付过高的使用费用。我们的老朋友Azure又出来救急了,它所采用的弹性使用方式能够按需求分配资源并计费,这样我们就不会在这方面浪费投资了。
◆OData(开放数据协议): 别犹豫,接受这套协议吧。我们将在未来很和一段时间内,始终面对以混合型移动平台为主要对象的开发环境。想象一下,我们无需为自己的数据访问层在iOS、Android以及Windows Phone之间的切换而重复投资难道不是件利国利民的大好事吗?加入OData——也就是开放数据协议。以HTTP及Atom/JSon的基本设定为基础,OData是一套独立的数据交换协议平台。正如RSS之于上传数据,OData对数据顺畅交换同样具有重要意义。而且它为很多生态系统提供了代理库,也就是一次部署、全平台受益。真的这么方便,大家可以访问OData的官方网站了解更多细节,我们也在Silverlightshow网站上发布了一系列相关文章。
◆CDN(内容发布网络): 没错,大家可以将自己的应用程序后端托管在本地ISP甚至是自己的台式机上。不过如果各位的应用程序会用到卫星成像、地图、媒体或者其它负载繁重的资源,而且用户又遍布世界各地,那么应用程序很可能会面临极高的响应延迟。原因很单纯,极大的地域跨度令内容交付工作变得很难及时完成。在这种情况下,最好的处理办法自然是让用户能够接入离自己所在地最近的服务器。Azure Content Delivery Network(简称CDN)来了,这是只有云基础设施才具备的独特优势,在世界各地部署了边缘缓存节点。我们的内容会被保存在缓存中,而Azure则利用DNS调整保证用户能够接入到与他们距离最近的服务器。这套机制设置极为简便,而且这项优势也是每位云计算用户都应当充分利用的。点击此处与此处了解更多详情。
◆Azure WP7 工具包: 为了尽量简化Windows Phone开发人员使用Azure的方式,Azure DPE团队在开发工具包及帮助库方面做了大量工作。目前我们已经可以轻松获得针对Windows Phone、iOS及Android系统推出的多款Azure工具包。因此,无论大家打算为哪款移动平台开发应用程序,我们都应该可以轻松使用Azure,因此这些工具包通过概括和简化解决了大部分对于移动开发人员而言晦涩难懂的Azure技术问题。专为WP7开发的Azure工具包(点击此处查看详情)提供了大量精彩模板,能够让我们的应用程序轻松与云端的SQL Azure、Tables、Blobs以及推送通知等功能相对接。下载、创建新项目最后点击F5,一切就是这么方便!
◆ACS, 通知与Nuget: 完整版Azure工具包中是不是包含了太多我们根本用不到的内容?请各位别担心,因为MSFT已经将各功能单独拆分出来,并以Nuget的名头各个推出(点击此处查看详情),如此一来就消除了资源浪费的问题。需要利用来自谷歌/Live/Facebook等平台的关联账户来直接登录我们的应用程序?有一款专门负责在Azure上处理ACS(即访问控制服务)事务的Nuget。它能够非常高效地让用户利用现有账户登录应用,并访问Azure上的各类相关服务。如果打算在应用程序中加入通知推送功能,另有一款Nuget专门为此而生。总之,我们要做的就是提出问题然后找到合适的功能,接下来一切都将迎刃而解。
◆Live API: 打算使用SkyDrive?哈哈,相信没人愿意放弃这白来的25 GB免费云存储空间。很可能那些拥有Live ID的Windows Phone应用程序用户已经开通了SkyDrive服务。如果大家打算增加应用程序的云端存储空间,或者把某些内容交给云平台保存,那么SkyDrive无疑是最方便也最划算的解决方案。MSFT最近刚刚公布了Live API及一款软件开发工具包,它们的出现使应用安全访问用户的SkyDrive成为可能,并让SkyDrive与Live服务套件之间的交互性更上一层楼。点击此处查看更多详情,这里还有另一篇文章,阐述了如何让你的Windows Phone应用程序充分利用SkyDrive软件开发工具包。
◆重复使用: 到这里,大家应该已经对Windows Phone中的通知推送以及MSFT通知推送服务(简称MPNS)比较熟悉了。那么如何为Windows 8系统创建Metro风格的应用程序呢?幸运的是,Windows 8中的通知推送架构与原有风格相当接近,因此大家可以很容易地掌握这套新机制。既然如此,为什么不搞一套统一的后端,让它能够同时服务于Windows Phone与Metro应用程序呢?说到这我不得不敬佩Azure开发团队的效率,他们甚至已经推出了一套专为Windows 8研发的工具包(点击此处查看详情),能够提前解决我们的难题。
还有什么我漏掉的重要内容吗?大家不妨在评论中做出补充。总之,试试Azure吧,它绝对是一款值得信赖的Windows Phone应用程序后端。当然,前提是它要适合大家的具体需求。
原文链接:http://mobile.dzone.com/articles/7-deadly-sins-windows-phone-1