Windows10与UWP开发
一、认识Windows10和应用开发
Windows10是面向PC、平板、手机、游戏机、物联网硬件等跨硬件设备的统一操作系统。
- 由Windows Phone与Windows 8演进而来,不再对硬件划分独立操作系统,给微软开发者生态带来新机遇。
二、Windows10新特性
- 支持PC、平板、手机、Xbox One多平台,平台间信息互通
- PC开始菜单改版,磁贴界面支持纵向滚动
- Office等软件深度集成进系统
- 内置Cortana语音助手
- 全新Edge浏览器
- 整合Xbox游戏平台,增强社交能力
- 微软首次提供免费升级政策
- 84寸Surface Hub大屏设备
- HoloLens全息头盔,融合虚拟现实
三、Windows10手机版本发展史
微软移动端系统拥有十几年发展历史,两大转折点:Windows Phone 7、Windows10。
- Windows Phone7诞生于危机之中:面对Android、iOS冲击,Windows Mobile市场份额大幅下滑。
- 系统演进路线: Windows CE(1997) → Pocket PC(2000) → Windows Mobile(2003) → Windows Phone7(2010) → Windows Phone8(2012) → Windows Phone8.1(2014) → Windows10(支持手机+PC,2015)
- 所有Windows Phone手机可升级Windows10
四、Windows10 PC版本发展史
- 1993:Windows NT,支持Intel、AMD以外处理器,和Win3.1/95/98架构不同
- iPad带动触摸操作浪潮,微软推出ARM版Windows RT,Win8与RT都支持触摸;RT不支持传统桌面程序
- Windows RT项目失败,证明Windows用户非常依赖原有操作习惯;这些技术尝试,为Windows10奠定基础
- Windows10融合PC端与移动端
五、Windows10给开发者带来的机遇
- 国内厂商小米、联想等支持Windows10设备
- 国内用户可免费升级Windows10
- Windows10对物联网提供更好支持
六、Windows10技术框架
- Windows10继承Windows 8和Windows Phone的技术体系
- Windows Phone7 → Phone8:内核由Windows CE更换为Windows NT,底层统一Windows运行时框架,Win8与Phone8内核统一
- Windows Phone8 → 8.1:API进一步整合,支持Universal应用共享核心代码,但界面代码分离
- Windows10:通用应用不再区分手机/PC版本;单个安装包可部署到全部Windows10设备
七、Windows运行时(WinRT)
- Windows10通用应用程序,简称 UWP
- WinRT(Windows Runtime):UWP的运行框架
- Win8/8.1、WP8/8.1就已经使用WinRT实现跨平台API共享
- 支持开发语言:C++、C#、VB、JavaScript
- 原生支持X86、ARM硬件架构
- 本质:增强版COM组件API
八、Windows10通用应用平台
- 一套应用,可运行在所有Windows10设备:手机、平板、笔记本、PC、Xbox、HoloLens、Surface Hub
- 全部Windows10设备共用同一个应用商店分发应用
通用应用三大能力
- 自适应UI:根据设备类型自动调整布局、控件
- 自然交互:语音、数字笔、手势、眼球追踪输入
- 云服务能力:推送通知、数据漫游、OneDrive、Azure云服务
九、UWP(Windows10通用应用程序)开发模型
- UWP:通用平台应用,一个安装包适配全部Windows10设备,降低多平台开发成本
- 支持语言:C#、VB、JavaScript、C++;本课主要使用 C#
- 可选开发模型:
C#/XAML、VB/XAML、C++/XAML、JavaScript/HTML5 - 游戏开发:推荐C++ + DirectX框架
UWP(Windows10 通用应用)4种开发模型
这是 UWP(Universal Windows Platform,Windows通用应用平台) 的开发选型介绍:
1. 四类开发模型
- C#/XAML、VB/XAML、C++/XAML
- UI界面:XAML(微软的标记语言,用来描述界面布局、控件)
- 业务后台:C# / VB / C++
- 三者框架模型一致,只是后台编程语言不同。
- JavaScript/HTML5
- UI界面:HTML5
- 业务后台:JavaScript
- 适合web前端开发者,复用网页相关技术。
2. Windows运行时组件(WinRT Component)
Windows10提供Windows运行时组件,实现跨语言代码复用:
可以用其中一种语言写底层代码封装(例如C++写高性能逻辑),打包成WinRT组件,供其他语言(C#/XAML、JS/HTML5)的UWP应用直接调用。 开发者可以选用自己熟悉的语言开发。
3. 性能对比
- XAML系列(C#/VB/C++) > JavaScript/HTML5:XAML原生模型应用性能高于HTML5模型。
- 在Windows10平台上,C#、VB、C++这三种XAML模型,整体运行效率差距不大。
Next: 开发环境和Hello World项目