众所周知,最近几年,微软一直在操作系统上进行统一化的尝试。第一次尝试的产品——Windows 8/8.1操作系统完全谈不上成功。请看下图:

我个人认为,这并不意味着操作系统统一化的策略是错误的,只能算是一个小小的失败。将近三年之后,微软的重头产品Windows 10终于横空出世。自7月29发布之后,Windows 10的市场占有率是节节攀升。请看下图:

短短4天,市场占有率已经逼近了Windows 8。哇,这完全是大圣归来的节奏啊!不知道有多少骂了3年娘的Windows 8的用户在这一刻热泪盈眶。笔者三年前买的平板也赶着这股热潮,更新为Windows 10。使用了几天,感受就是绝不会比Windows 8/8.1差!如果按照这个趋势,“3年10亿PC跑Windows10”恐怕也不是妄言。

更加吸引广大码农眼球的,无疑是随之而来的UWP(Universal Windows Platform)。这些年来,微软研发了多种设备,例如平板、手机、Xbox等等,如果每种设备都开发一套操作系统和运行在该系统上的程序。工作量和复杂度可想而知。UWP也因此应运而生。按照微软的设计,我们只要开发一套UWP的App,就可以在平板、手机、PC等设备上运行,无需额外的转换。显而易见,这将大大减少多平台的开发成本。各位码农,是不是很兴奋?

其实,早在Windows 8.1系统更新发布的时候,微软就已经准备类似的尝试了——Windows 8.1 Universal Apps。我做了一个简单的对比,希望能让大家有一个清晰的了解。

 

Windows 8.1 Universal Apps

UWP Apps

支持设备

PC,平板,手机

所有设备

支持Shared Code

支持

支持

需要开发几套程序

两套

一套

是否所有设备具备所有API

做过Windows 8.1 Universal Apps的开发人员可能都有同感,除了逻辑代码可以共用之外,UI展示,部分事件(如:Windows.Phone.UI.Input.HardwareButtons.BackPressed)等,都要写在不同的2套程序里。在某种意义上,这是“部分”Universal,而UWP是真正的Universal。我们可以通过下图去了解一下开发平台统一化的进程。

Component One是一家紧跟技术前沿的专业控件公司。在Windows 8发布之后不久,我们就推出了Windows Runtime控件包。在Windows 8.1 发布不久,我们又推出了Windows Runtime Phone 8.1 控件包。目前,用户可以使用我们的ComponentOne Studio for WinRT XAML 控件包,非常便利地研发属于自己可以运行在PC、平板、手机上的App了。而且,经过验证,用户开发的在Windows 8.1系统上运行的App可以在Windows 10操作系统上运行。

看到这里,也许你会问:既然微软都出了UWP,ComponentOne打算要出一套UWP控件吗?我非常高兴地告诉你:是的!我们已经预计在数月后推出一套Beta版本的UWP控件供用户使用。ComponentOne Studio for UWP 控件中,包含了大家熟悉的Chart,FlexGrid等。

Windows10的革命之路-全新UWP开发平台的更多相关文章

  1. Windows10 UWP开发 - 响应式设计

      Windows10 UWP开发 - 响应式设计 本篇随笔与大家简单讨论一下在开发适配不同分辨率.宽高比的Windows10 Universal App布局时的可行方式与小技巧.经验均从实践中总结, ...

  2. UWP 统一平台开发介绍

    什么是UWP? 很多程序员都有一个梦想:希望自己开发的软件能够轻而易举的在所有平台上运行,而不是把同样的需求,用不同的技术.工具重新开发才能够运行在所有平台上.这就是跨平台,很多软件从业者都在为这个梦 ...

  3. Windows10(uwp)开发中的侧滑

    还是在持续的开发一款Windows10的应用中,除了上篇博客讲讲我在Windows10(uwp)开发中遇到的一些坑,其实还有很多不完善的地方,比如(UIElement.Foreground).(Gra ...

  4. 全新的跨平台app软件开发工具——Lae软件开发平台

    Lae是一款运行于windows的界面开发工具,具有所见即所得.开发跨平台.UI布局自由.机制简单.维护容易等诸多优点,可以开发同时运行在windows.Linux.MacOX.iOS.Android ...

  5. 通过几个Hello World感受.NET Core全新的开发体验

    2016年6月27日,这是一个特殊的日子,微软全新的.NET开发平台.NET Core的RTM版本正式发布.我个人将.NET Core的核心特性归结为三点,它们的首字母组成一个非常好记的简称——COM ...

  6. UWP开发:APP之间的数据交互(以微信为例)

    目录 说明 UWP应用唤醒方式 跟微信APP交互数据 APP之间交互数据的前提 说明 我们经常看到,在手机上不需要退到桌面,APP之间就可以相互切换,并且可以传递数据.比如我在使用知乎APP的时候,需 ...

  7. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  8. UWP开发之控件:用WebView做聊天框

    目录 说明 WebView存在的价值 使用WebView的几个重要技巧 使用WebView做的聊天框 说明 大家都知道,无论是之前的Winform.WPF还是现在的IOS.Android开发中,都存在 ...

  9. Win10 UWP 开发系列:使用SQLite

    在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中.但如果数据多的话,还是需要本地数据库的支持.在UWP开发中 ...

随机推荐

  1. jQuery对话框右上角带关闭×

    jQuery弹出可关闭遮罩层:http://hovertree.com/texiao/layer/1/ 代码如下: <!DOCTYPE html> <html> <hea ...

  2. js动态的把左边列表添加到右边,可删除。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. java函数

    函数的封装没有定规,只要遵循语法,函数如何封装按照需求来做 函数四要素:函数名,输入,加工,输出(返回). 一.函数调用 1.函数名(变量列表); 没有返回值. 2.数据类型 变量名=函数名(变量列表 ...

  4. 关于前期在云服务器上部署TOMCAT服务器的问题

    如果你要将你的项目放在服务器上(针对云服务器),首先你必须要学会前期部署Tomcat的准备, 第一步:安装jdk,配置环境变量 这个比较简单,配置java环境变量最为简单的方法是将java的 (../ ...

  5. jquery 格式化系统时间

    Date.prototype.Format = function (fmt) { //javascript时间日期函数 var o = { "M+": this.getMonth( ...

  6. [moka同学笔记]php 获取时间(今天,昨天,三天内,本周,上周,本月,三年内,半年内,一年内,三年内)

    <?php /** * php 获取时间(今天,昨天,三天内,本周,上周,本月,三年内,半年内,一年内,三年内) * * author:ihelloworld2010@gmail.com * d ...

  7. [Tool] SourceTree操作中遇到错误(Filename too long)的解决方案

    [Tool] SourceTree操作中遇到错误(Filename too long)的解决方案 问题情景 使用SourceTree,可以方便开发人员使用图形化接口的Git指令来管理原始码.但是在Wi ...

  8. 转发:Chrome 控制台console的用法

    大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能大家对co ...

  9. ArcGIS API for Silverlight 使用GeometryService求解线与线的交点

    ///画线 void btn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { Button btn = sender as B ...

  10. Android Touch事件传递机制 二:单纯的(伪生命周期)

    转载于:http://blog.csdn.net/yuanzeyao/article/details/38025165 在前一篇文章中,我主要讲解了Android源码中的Touch事件的传递过程,现在 ...