目前来说Windows phone 8的开发者 大家都是走战斗在在技术朋友,相信大家在做Windows Phone 8开发的同时也在关注Windows 8,我相信很多开发者一定是在 Windows 8 和 Windows phone 8 上起头并进的。其实Windows Phone8 这次最重要的一点更新就是 Windows Phone runtime 和我们的windows 8 共用NT内核,我们统称的 windows runtime 简称 WinRT 提供11,000多个members支持Windows 8 然而 我们的Windows Phone runtime 简称WinPRT 是WinRT的子集 有2,800多个共享members并且有600多个Windows Phone的特性。(例如:语音,Voip,锁屏管理等等...) 从下图我们可以看到由于共享windows内核所以在API级别同样共享了很多AIP,那么这样多的共享API可以为我们的开发带来怎样的便利呢,后面我会给大家分别介绍。同时 欢迎大家在这里和我沟通交流或者在新浪微博上 @王博_Nick

Windows 8和Windows Phone 8共享Windows内核,这意味着开发人员能够使用常见的编程模型来构建应用程序和游戏。
从开发成本或者是产品规划的角度上看,开发人员可以利用相同的代码/开发语言/开发工具来创建应用程序和游戏 同时应用在Windows8 和Windows Phone 8从根本上加快开发时间。

这里肯定会有同学想到WinPRT究竟有哪些特性如何在开发过程中如何判断一个WinRTAPI或WinPRT的存在呢,并且WinPRT所特有的API有哪些?

这里我给大家一个MSDN的详细列表中都可查到:http://msdn.microsoft.com/en-us/library/windows/apps/jj207212(v=vs.105).aspx#BKMK_Understandingthewinrtdocumentation

从上图中我们可以清楚的看到Windows Phone 8 和 Windows 8 开发过程中可以共用那些部分这里注意的一点是JavaScript+HTML的开发模式在Windows 8 WinRT的环境下是支持API级别调用的但是在WinPRT的环境下是基于 IE10 Control的,顺便这里提一下windows phone 8 IE10 control 对javascript的运行 尤其是对HTML5 的支持提升很大包还括多点触摸的支持。

这里送给大家一张在 TechED 2012 上大家都很喜欢的 Windows Phone API QuickStart Poster (PDF) (当时数量有限没拿到的同学请在这里下载 打印出来也很好看)

以及Windows phone8 新功能的详细介绍:http://msdn.microsoft.com/en-us/library/windows/apps/jj206940(v=vs.105).aspx

其次在实际开发中肯定用到不少系统控件实际上这些控件也是十分相似的在做设计的时候有很多共性

从上面的图中可以看到 windows 8 和 windows phone 8中大部分控件都是相似的,虽然这些控件不是完全基于相同的命名空间下 但是对XAML而言写法和用法都是相同的,所以在设计师进行叶面设计的时候很多控件UE操作都是相同的,当然windows phone 8中也有一些特有的控件 例如:Panorama和Pivot就是因为windows phone的用户使用习惯特有存在的,然而在windows 8中用户更喜欢使用 GridView 和 FlipView。

这里我给出MSDN的详细列表供大家参考 Windows 8 和 Windows Phone 8 中控件的不同点:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj735581(v=vs.105).aspx

上面说了这么多肯定有朋友会问在实际项目中我们怎么做呢?

1. 拆分UI逻辑使用 MVVM

以前做过Silverlight 或者WPF朋友肯定都多多少少听说或者使用过MVVM的 pattern,如果恰好你的Windows8 或者 windows phone 项目正好是使用MVVM开发那么你可以选择 通过share ViewModel的形式相信可以为你的开发省去不少时间。


这里给一个相信运作方法:

http://msdn.microsoft.com/en-us/library/windows/apps/jj721615(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windows/apps/gg521153(v=vs.105).aspx

2. 使用 Portable Class Libraries

相信看到上图的朋友已经发现了 ViewModle和Model都放在了一个Portable/common中这里给大家解释一下Portable Class Libraries的结构

Portable Class Library 是在VS2012中新的一个类库模板基于.NET4.0 该类库作为 silverlight、windows phone、windows 8 以及 Xbox360的子集并且可以运行在以上环境中去,这无疑是可以在不同的平台间共享一些相同业务逻辑,会为开发者们来来很大的便利。

在使用Portable Class Libraries时有几点注意

  • 只支持托管代码开发 C# 或者 VB .NET
  • 不要使用Conditional compilation
  • 不要使用 Windows runtime API
  • 不要使用UI 控件库

参考 : http://msdn.microsoft.com/en-us/library/windows/apps/jj714086(v=vs.105).aspx

3. 使用Link形式共享代码文件

Link的形式在我之前WP7 to WP8的情况下介绍过,这种形式同样适用于 windows phone 8和 windows 8 之间,做法十分简单我这里就不过多介绍了

参考:http://msdn.microsoft.com/en-us/library/windows/apps/jj714082(v=vs.105).aspx

4. 使用Windows Runtime Components

在开发WinRT 或者 WinPRT的应用程序时 少数情况会遇到一些功能没有向我们正在使用的语言开放接口 这时候就需要Windows Runtime Components来帮忙封装 并且可以支持所有开发语言的调用

使用Windows Runtime Components的好处

  • 可以发挥C++的性能优势
  • 可以支持多用语音的调用
  • 支持 Direct3D、Win32 或者Com APIs (这里是部分的)
  • 调用第三方类库

参考:http://msdn.microsoft.com/en-us/library/windows/apps/jj714080(v=vs.105).aspx

5. 共享 XAML UI

这个功能对于页面来说可能用的比较少,封装控件应该还是比较有用的(个人感觉)

感兴趣的同学可以花些时间消化一下:http://channel9.msdn.com/Events/Build/2012/3-043R

参考:http://msdn.microsoft.com/en-us/library/windows/apps/jj714088(v=vs.105).aspx

6. 使用 Conditional compilation 编译命令

最后这点我也在之前的 WP7 to WP8 中介绍过主要是在共享文件的时候在不同项目间区分编译,和Link代码一起使用

namespace ProjectB
{
public class MyClass
{
public void CommonMethodA()
{
// code that is common to Windows Phone 8 and Windows 8
} public int CommonMethodB()
{
int result = 0; // code that is common to Windows Phone 8 and Windows 8 return result;
} public void PlatformSpecificMethod()
{
#if NETFX_CORE
// code for Windows 8
#else
// code for Windows Phone 8
#endif
}
}
}

Windows Phone 8 与 windows 8 开发技术概览的更多相关文章

  1. Windows Phone 8.1 开发技术概览 (Universal APP)

    前一阵真的比较懒 WP8.1 已经出来这么长时间了现在才更新BLOG让大家久等了,今天我先为大家介绍下 WP 8.1的开发框架,什么是微软所推崇的 Universal APP,以及我们要开发 Univ ...

  2. Windows开发技术的历史

    原文地址:http://www.kuqin.com/windows/20090315/40172.html Windows已经有22年的历史,这22年来,微软官方主力推行的编程语言与API有四个分水岭 ...

  3. Windows驱动——读书笔记《Windows驱动开发技术详解》

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  4. ASP.NET Core Windows服务开发技术实战演练

    一.课程介绍 人生苦短,我用.NET Core!大家都知道如果想要程序一直运行在Windows服务器上,最好是把程序写成Windows服务程序:这样程序会随着系统的自动启动而启动,自动关闭而关闭,不需 ...

  5. Windows SharePoint Services 3.0编码开发工具和技巧(Part 1 of 2)

    转:http://blog.csdn.net/mattwin/article/details/2074984 WSSv3 Technical Articles_Windows SharePoint S ...

  6. 在 Windows 上使用 Python 进行 web 开发

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上一篇我们介绍了在Windows 10下进行初学者入门开发Python的指 ...

  7. electron之Windows下使用 html js css 开发桌面应用程序

    1.atom/electron github: https://github.com/atom/electron 中文文档: https://github.com/atom/electron/tree ...

  8. react-native —— 在Windows下搭建React Native Android开发环境

    在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...

  9. 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!

    今年微软Build 2016大会最让开发人员兴奋的消息之一,就是在Windows上可以原生运行Linux bash,对开发人员来说,这是一个喜闻乐见的消息. 1 安装 你必须安装开发者预览版本,才能使 ...

随机推荐

  1. 阿里大鱼短信发送 FOR DT

    //增加了参数$action 来标志发送的是什么短信 注册短信 验证码短信 提示短信等 function send_sms($mobile, $message, $word = 0, $time = ...

  2. stm32之Cortex系统定时器(SysTick)

    转载自:http://www.21ic.com/app/mcu/201811/781135.htm   SysTick时钟,俗称“嘀嗒定时器”,它能按设定的时间产生一次中断.控制工程代码中随处可见形如 ...

  3. Python之PyFrameObject动态执行环境

    Python虚拟机中的执行环境 Python的虚拟机实际上是在模拟操作系统运行可执行文件的过程,首先,我们先来讲一下普通的x86的机器上,可执行文件是以一种什么方式运行的. 图1-1 图1-1所展示的 ...

  4. category常量及对应字符串

  5. kafka消息的可靠性

    本文来自网易云社区 作者:田宏增 Kafka的高可靠性的保障来源于其健壮的副本(replication)策略.通过调节其副本相关参数,可以使得Kafka在性能和可靠性之间运转的游刃有余.Kafka从0 ...

  6. Leetcode25--->Reverse Nodes in k-Group(以k个节点为段,反转单链表)

    题目: 给定一个单链表,一次反转k个节点,最终返回翻转后的链表的头节点:如果链表不足k个,则不变 举例: Given this linked list: 1->2->3->4-> ...

  7. python week08 并发编程之多进程--实践部分

    一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.P ...

  8. python中os和sys模块

    os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境. os 常用方法 os.rem ...

  9. [uiautomator篇][9]遇到问题

    1 (1) 修改apk的存储权限,不要创建文件会提示:文件找不到 (2) 退出应用 mDevice.executeShellCommand("am force-stop com.antutu ...

  10. spring AOP详解一

    AOP是Aspect Oriented Programing的简称,面向切面编程.AOP适合于那些具有横切逻辑的应用:如性能监测,访问控制,事务管理以及日志记录.AOP将这些分散在各个业务逻辑中的代码 ...