Windows Phone 8.1 开发技术概览 (Universal APP)
前一阵真的比较懒 WP8.1 已经出来这么长时间了现在才更新BLOG让大家久等了,今天我先为大家介绍下 WP 8.1的开发框架,什么是微软所推崇的 Universal APP,以及我们要开发 Universal APP的时候要注意哪些内容。
如果是您是一个刚刚接触 WP开发的朋友可以先看下我之前的文章了解一下故事背景:Windows Phone 8 与 windows 8 开发技术概览
首先给大家完善一个概念 - 那就是 Windows Phone 8.1 和 Windows Phone 8.0 的区别
1. WP8.0 的开发架构是基于 silverlight runtime 运行时
2. WP 8.1 的开发架构有两种 silverlight runtime / Windwos XMAL ( 等同于Windows 8.1 ) 运行时
今后我所说的 Universal APP 是基于 Windows XAML 运行时的 包括以后我会详细介绍 WP8.1 的新 feature 也会基于 Windows XMAL 这套框架下的内容进行主要介绍。

上面这张图是我们最新的 Windows & Windows Phone 8.1 的开发平台架构图在这里我们可以非常清楚的看到,蓝色部分是 universal 的 其中包括的 WinJS 、C#、VB、C++ 只有 silverlight 是Windows Phone所独有的,所以说如果我们想开发一个 Universal APP 可以基于一个 Windows 8.0 /8.1的开发架构下进行扩展到 WP 8.1 上来,这个过程是非常方便的。
另外之前我也为大家介绍过在WP8.0中如何共享代码,在 8.1 universal app 中我们可以分享更多的代码并且非常的方便, 这个common的内容提升是一个相当大的飞跃(从8.0 共享 27% 提升到了 8.1 共享 77%)所以我们在开发的过程中可以非常方面的share代码,并且在VS2013中可以使用universal 的应用模板进行代码分享。

接着我跟大家介绍一下 Windows Store Universal APP 在VS2013中升级 Update 2 安装WP 8.1 的开发环境后,我们会看到 Universal Apps 的模板(同样在 WinIS 和 C++ 中都有universal模板)


这里是universal APP 的项目结构,在一个SLN里面自动的创建了 WIN8.1 和 WP8.1 的应用project 并且 还有一个 Shared project,做过WP8.0开发的同学肯定注意到了这个Shared project 中有一个 app.xaml 和 app.xaml.cs 文件 这就意味着,WP的生命周期和 Win 8.1 一致了,小伙伴们不用在处理墓碑化啦。(Silverlight 架构下还是有墓碑话的),并且我们在Share project 中的文件会自动分享到 Win8.1 和 WP8.1中去 并且,在WP8.1 和Win 8.1 中有可以定义平台所特有的内容。
并且universal APP 也支持 Windows Runtime Components

另外在 Windows xaml 框架下我们可以我们提供了很多基础控件的 universal ,换句话说就是相同的控件运行在不同的平台上的效果不样,例如: Hub ,AppBar/CommandBar,Date/Time Pickers and List Pickers,ListView,Multi-select; containers, swipe selection,Flyouts,Media。
当然还有完全相同的,可以更容易的 share 代码。


这里肯定有朋友想问我 按我以前开发的 8.0 silverlight 应用怎么办?可不可以升级到8.1呢? 答案当然是肯定的! 可以升级到8.1,但是要有一些问题要注意,我也在这里给大家介绍一下。
首先在WP silverlight 8.1 我们可以从 8.0 的应用直接升级上来,非常的方便,这里要注意的是有一些功能目前只有在 silverlight 框架下可以使用, 在 Windows Xaml 中暂时没有的:
也就是说如果你的应用在8.0中使用了一下功能,并且你想在8.1中继续使用,那么你一定是用 silverlight 这套框架。

但是这里我有一个特别注意的地方: 如果你的WP silverlight 8.0 应用升级到8.1 用到了一下两个功能那么你就要斟酌一下,更新的方法了。
Background Audio 不在支持,在8.1中需要您从写成 background task
Continuous background execution agent 也不再支持, 同样也需要使用 background task 代替
实现方法请参考 Windows 8.1 应用开发后台任务概述(Windows XAML)

所以说我们在选择升级或者全新开发一个WP8.1 应用的时候有几种选择。

1. 如果我们只是想做一个WP 8.1 的APP 那么任何一个开发框架都适合。
2. 如果我们已有一个 Windows 应用商店的应用,那么我们选择 Windows Xaml 框架开发可以最大的复用已有代码。
3. 如果我们的应用要使用 锁屏,lense,或者VOIP 这类功能那么我们只能选择 WP silverlight 的开发框架。
4. 如果是一个音乐应用并且要使用后台播放那么,只能使用 8.0的WP silverlight 框架或者 WP 8.1 Windows XAML 框架。
5. 如果是一个现有的 WP Silverlight 项目我们可以选择升级到 Silverlight 8.1 或者 重构到 WP 8.1 Windows XAML 框架。
今天我先给大家接招这么多内容,后面我会继续给大家介绍 WP8.1 的新feature 敬请大家期待!
欢迎大家在这里和我沟通交流或者在新浪微博上 @王博_Nick
Windows Phone 8.1 开发技术概览 (Universal APP)的更多相关文章
- 关于APP,原生和H5开发技术的争论 APP开发技术选型判断依据
关于APP,原生和H5开发技术的争论 App的开发技术,目前流行的两种方式,原生和Html5.原生分了安卓平台和ios平台(还有小众的黑莓.死去的塞班就不说了),H5就是Html5. 目前争论不休的问 ...
- Windows Phone 8 与 windows 8 开发技术概览
目前来说Windows phone 8的开发者 大家都是走战斗在在技术朋友,相信大家在做Windows Phone 8开发的同时也在关注Windows 8,我相信很多开发者一定是在 Windows 8 ...
- 跨平台 webapp 开发技术之 Hybrid App
前所知的 APP 开发模式有三种: 基于操作系统运行的 APP -> Native App,侧重于原生开发,用户体验好,需要安装才会升级 基于浏览器运行的 APP -> Web App,侧 ...
- BizTalk 开发系列(三十九) BizTalk Server 2009技术概览
BizTalk Server 2009已经发布一段时间了,之前Beta版发布的时候也写过一篇文章<BizTalk Server 2009 Beta初体验>, 当时比较了2006 R2与20 ...
- Web前端开发大系概览 (前端开发技术栈)
前言 互联网建立50多年了,网站开发技术日新月异,但web前端始终离不开浏览器,最终还是HTML+JavaScript+CSS这3个核心,围绕这3个核心而开发出来大量技术框架/解决方案. 我从2000 ...
- Windows开发技术的历史
原文地址:http://www.kuqin.com/windows/20090315/40172.html Windows已经有22年的历史,这22年来,微软官方主力推行的编程语言与API有四个分水岭 ...
- Windows驱动——读书笔记《Windows驱动开发技术详解》
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- ASP.NET Core Windows服务开发技术实战演练
一.课程介绍 人生苦短,我用.NET Core!大家都知道如果想要程序一直运行在Windows服务器上,最好是把程序写成Windows服务程序:这样程序会随着系统的自动启动而启动,自动关闭而关闭,不需 ...
- [技术博客] 利用Vagrant+virtualbox在windows下进行linux开发
目录 加速box安装的方法 root账户登录 换源教程 安装rvm 访问rails server RubyMine连接虚拟机上的解释器 作者:庄廓然 在windows下进行linux开发:利用Vagr ...
随机推荐
- softmax分类器+cross entropy损失函数的求导
softmax是logisitic regression在多酚类问题上的推广,\(W=[w_1,w_2,...,w_c]\)为各个类的权重因子,\(b\)为各类的门槛值.不要想象成超平面,否则很难理解 ...
- 线段树初步&&lazy标记
线段树 一.概述: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点. 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a, ...
- css总集
1 font-style normal 正常显示 italic 斜体 百分比 字体大小 font-size 像素 字体大小 font-family 字体名称 设置字体名称 letter-spacing ...
- Docker-2:network containers
docker run -d -P --name web training/webapp python app.py # -name means give the to-be-run container ...
- window常用命令
netstat -ano|findstr "端口号" :查看指定端口信息[netstat -ano|findstr "端口号" ] ,然后看下PID号 ...
- Memcached Memcached.ClientLibrary.SockIOPool”的类型初始值设定项引发异常
又一次遭遇"xxx类型初始值设定项引发异常" 下了个c#实现的轻量级IoC开源项目,可是在本地使用时发现一运行就捕捉到"类型初始值设定项引发异常"的异常信息,调 ...
- 《CODE》读后笔记——第14~20章
14.反馈与触发器 振荡器不需要人的干涉即可自主且不断地实现断开和闭合.所有计算机都靠某种振荡器来使其他部件同步工作. 当两个开关都断开时,电路有两个稳定状态,这样的一个电路称为触发器.触发器具有记忆 ...
- 【转载】PHP 开发者该知道的 5 个 Composer 小技巧
Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...
- java安装教程
1.安装中,jdk和jre的安装在不同的目录中 2.环境变量的配置 选择系统变量中 新建以下3个环境变量: JAVA_HOME jdk安装路径 CLASSPATH .;%JAVA_HOME%\li ...
- k-sum问题
给定一个数组,里面的是任意整数,可能有重复,再给定一个目标T,从数组中找出所有和为T的K个数,要求结果中没有重复. Note: Elements in a quadruplet (a,b,c,d) m ...