回顾build 2016:你好,这是微软迄今最好的Windows 开发平台
按:本文作者陈计节,ThoughtWorks 高级咨询师。多年的跨平台 .NET 开发者,全栈工程师,技术布道师。擅长互联网应用程序的设计、开发和运维等工作。
在最近的开发者大会(Build 2016)上,微软面向开发者分享了一系列更新。对于一名开发者来说,整个三天的内容,可以说是惊喜连连,令人激动不已。可贵的是,微软的开发者大会现在一再强调的是“任何平台”、“免费”这些满怀社区精神的特性。在了解完开发者大会的内容之后,我最直接的反应就是,
Windows 平台将会成为比以往任何时候都更好的开发者的平台
,同时 Windows 和 Office 等平台还有大量新兴的、珍贵的机会出现。
如果看一遍视频时间太久的话,那本文可以帮你了解其中特别值得关注的方面,请尽情分享这份开发者的盛宴吧。
| Windows 里内置的 Ubuntu
Windows 10 年度更新中将会推送一个重要功能,即 Windows subsystem for Linux,它使得我们能够直接在 Windows 10 上运行用户态 Linux 程序。互联网企业多用 Linux 系列作为服务器操作系统,但我们开发人员日常的开发和工作环境却常常是 Windows。我们不得不一次次从“操作系统兼容性”的深坑里收拾好心情继续上路。实际上,Windows 将内置的是一个 Ubuntu 系统的核心部分,有了它内置在 Windows 中,开发工作一下子“跨过山和大海”了,不用切换环境就直接在 Windows 里完成开发工作
Windows subsystem for Linux 的原理是通过在操作系统直接实现 Linux 系统调用来工作的,并不是虚拟机,所以启动飞快,性能也有保障。这样一来,Windows 就变成了一个结合体:既拥有 Windows 原本的使用体验,又拥有了工程师所需的 Linux 环境和工具。这基本上意味着在 Windows 上直接完成整个开发工作——不再像以前一样在 Windows 上开发,再跑到 Linux 上跑测试;或者忍受 Linux 糟糕的 GUI 和网页字体的开发体验了。
一边开着 Vim 撸 Python,一边还能不时瞟一眼 b 站的神吐槽,是不是有点小激动?
| Xamarin 与移动开发 DevOps
Build 大会第二天, 红衣教主 Scott 宣布Xamarin 将集成进 Visual Studio,并提供免费版。Xamarin 是先进的跨平台移动应用开发工具,能够使用统一的编程模型开发 iOS、Android 和 Windows UWP 应用程序。此前它一直是收费的,还挺贵的——二月刚被微软收购,在本次 Build 大会上,即宣布会集成进 Visual Studio,包括免费的社区版本。
Visual Studio 2015 中已经支持了基于 Apache Cordova 开发 Hybrid 移动应用。但这两年,经过了著名的 Facebook 将 HTML5 应用程序向原生应用的改写这样的不成功案例之后,社区越来越对 Hybrid 应用程序的兼容性、性能和安全性等方面存在一些疑虑,所以Hybrid 应用方案往往只在一些局部会适当加以运用。
Xamarin 则是完全不同的工具, 它是已被大量案例证明是可行的原生移动应用开发方式。 运用 Xamarin 能够开发直接调用设备 API 的原生应用程序,它还提供了完整的界面设计器(包括故事板),并且这次还将带来运行在 Windows 上的 iOS 模拟器,这样就能做到完全就不用 Mac 就能开发 iOS 应用了。目前 Xamarin 在国内还没有受到大量的关注和运用,但随着其集成进免费的 Visual Studio 社区版,Xamarin 一定会成为移动开发的重要工具。
另外,Xamarin 线上还提供了云测试服务,其中包含上千种机型的测试环境可用于运行自动化测试。而且这套线上服务将会与免费的 Visual Studio Online 服务集成,那样整个移动开发的 DevOps 也就齐活儿了。
| 应用程序新方向:.NET Core 和 UWP 应用程序平台
.NET Core 要火,相信我。 因为 .NET Core 是个新兴事物,它是微软新开发出来的新项目,它从一开始就是开源、跨平台的,它完全是基于社区协同开发的,代码就托管在 Github 上。具体来说,它是一个轻量级、模块化、向面云的新平台;与以往完整的 .NET 运行时不能直接兼容;直接使用最新版本的 C# 语言和工具链;汲取了完整的 .NET 运行上一些有名框架的重要特性,剔除了那些过时的、过度抽象的、与特定操作系统和软件绑定的特性。可以说, .NET Core是一个“脱胎换骨,重新做人”的新事物 。
社区中支持 .NET Core 的各种第三方工具也在快速地增长,已经有支持它的 Docker 镜像和 Yeoman生成器等工具,我们可以直接使用 Sublime Text 这样的编辑器来开发 .NET Core 应用程序,而且JetBrains 已经在为它开发跨平台IDE 了。
.NET Core 应用程序的结构与 Node.js 等典型的轻量级应用很类似,都是运行时+应用程序+第三方程序包 的形式,它的运行时只有 10 M 大小。本次 Build 2016 大会期间,微软在展示各种 Web 应用的 Demo 时都已经默认采用 .NET Core 了。
在 Windows 平台上,微软展示了他们持续打造“通用应用平台”(UWP)的动作,比如将提供从 Win32 应用程序向 UWP 应用的转换工具。开发 Windows 应用一直以来都有五花八门的技术,但现在 Windows 平台的终端除了 PC,其他类型的设备也多了起来。于是微软开始推介这样一个新的概念,希望开发者能够“一次开发,到处运行”,兼容性的部分交给 Windows 来解决。同样,微软现在公开展示的应用程序也尽量地改为了 UWP 应用程序,连上面提到的 Ubuntu 子系统中的 Bash 终端都以 UWP 应用程序的形式提供。
.NET Core 这个没有历史包袱的新平台,加上 C# 这样优秀的编程语言,想不火都难;而 UWP 作为微软主推的应用程序模型,对于面向 Windows 用户的应用程序来说,是一个明确的方向。
| Office 和 Edge 浏览器插件开发中的新机会
我已经很长一段时间没有关注 Office 开发了,但这次 Build 2016 中分享的关于跨平台的 Office 插件开发的消息还是令我耳目一新。总体来说,我认为 Office 插件是一个潜力无限,市场广阔的方向 。
以往我们可以使用 VBA 和 Interop 等技术来开展 Office 相关的开发,但那些开发工作对开发人员的门槛较高,编程语言运行时方面的限制更让这些定制化应用很难跨平台。于是过去我们往往只在一些企业内部的需求中会考虑一些定制的 Office 开发。新的 Office 插件平台现在允许开发人员使用熟悉的 Web 开发技术来实现、并提供了跨平台的开发、调试与发布能力——就像开发一个浏览器插件一样简单!另外,新的 Office 插件所跨的平台不光包括各种操作系统,还包括在线的 Office 365 和 iPad 等非桌面环境。
Office 在全球有十几亿安装量,其深度用户大多都是各类企业用户,对信息打磨、数据处理的需求十分丰富,而 Office 这套新的插件平台直接将所有 Office 用户与开发者分享。对开发者而言,这其中的机会将是不可斗量的。
上面提到浏览器插件,其实以往开发 IE 的插件并不是一件简单的事,倒是 Chrome 浏览器的插件开发令人轻松了不少。是的,Office 的插件开发就像开发一个 Chrome 插件那样简单;还不止如此,Edge 浏览器最近也添加了对插件的支持,而 Edge 插件的开发机制不光与 Chrome 插件的开发一样简单,甚至大量 API 都能与 Chrome 浏览器 API兼容。Edge 作为 Windows 10 操作系统中的默认浏览器,其用户量也会稳步上升,因此它必然也是一个不可小觑的平台。
除了上面的各个方面,微软还分享了一些其他工具和服务,例如用于构建智能对话机器人的 Bot 框架和智能识别的 Cognitive 服务等。这些工具切实地解决了很多难题, 提高了开发人员的效率。另外,我们看到微软在运用新的思路来打造已有平台、持续改善其产品的同时,也在努力降低开发应用程序的难度,同时给开发者创造了更多机会。
微软在其 Visual Studio 网站上展示的服务思路是 “为任何开发者的任何应用程序打造的工具” ,从本次开发者大会分享的内容来看,着实诚意满满,各位开发者不应该错过!