社会焦点

从Visual Studio 2017谈起,解析微软技术生态进化之道(2)

字号+ 作者: 来源: 2017-03-28

伴随着新生的Visual Studio 2017一起陆续走到前台的同门兄弟,还包括开源、跨平台、多语言支持的轻量级开发环境Visual Studio Code以及由Xamarin Studio发展而来的Visual Studio for Mac(仍处Preview状态),它们

伴随着新生的Visual Studio 2017一起陆续走到前台的同门兄弟,还包括开源、跨平台、多语言支持的轻量级开发环境Visual Studio Code以及由Xamarin Studio发展而来的Visual Studio for Mac(仍处Preview状态),它们都已是Visual Studio大家庭里的重要成员。

前面文中提到的C#、Type等语言的新版本和新特性,得益于相应语言基础设施的开放性和模块化,也都可以在VSCode和VS for Mac中找到并使用。例如Visual Studio Code中完善的C#支持,是通过一个巧妙的被称为Omnisharp Server的后台Http服务进程实现了对代码结构的实时解析和智能提示,而在Omnisharp背后进行支撑的正是Roslyn。

  移动和云

“移动为先,云为先”是微软的全新战略,因此Visual Studio 2017对这两方向的开发支持都进行了巨大的投入,达到了新的高度。

移动开发方面微软采用了迂回策略,通过C#/Xamarin和Java/Cordova吸引两大阵营开发者,进军Android/iOS应用开发

移动方面,去年微软成功地完成了对Xamarin的收购,终于将Xamarin赖以成名的利用C#编写Android、iOS、Mac等平台原生应用的能力收入囊中,并与微软产品线进行整合——此举受到了.Net社区的广泛欢迎。今天我们看到的Visual Studio 2017已经体现了整合的成果:用户们不必再额外付费购买昂贵的Xamarin商业套件,新版Visual Studio中已经直接纳入了使用C#语言和类库生态编写Android/iOS应用的能力,大幅降低了使用Xamarin技术的门槛。

并入微软官方体系之后,Xamarin的生态也许将逐渐迎来真正意义上的繁荣时期。不过对于中国的广大开发者来说,国内目前Xamarin的声量还比较小,对国内移动互联网生态(如认证、分享、支付等)尚无太多的官方支持和兼容考虑,这可能会成为国内公司使用Xamarin进行移动开发的主要障碍。如果微软和社区在这方面进行积极的合作和推动,解决这样的“水土不服”问题,相信国内的Xamarin成功案例也将开始涌现。

除Xamarin外,微软在移动开发还有另一套基于Apache Cordova的解决方案,以吸引Java和Web技术背景的移动开发者。Visual Studio团队其实多年前就开始构建Visual Studio Tools for Apache Cordova(简称TACO),试图为开发者提供一站式的Cordova开发体验,帮助解决繁杂的安装、依赖梳理、环境配置、调试支持等工具链问题——这正是Visual Studio所擅长的。Visual Studio 2017带来了新版的TACO,在相关体验上再次上了一个新的台阶,还支持最新版本的Ionic2框架,有兴趣的朋友不妨一试。

跨平台.Net Core走向成熟,成为适合云端的应用构建选择

云计算方面,日前微软Azure在公有云领域稳居世界第二,且势头不断攀升,已是微软整体业绩的重要增长引擎。毫无疑问,Visual Studio 2017不遗余力地为开发云端应用程序准备了最新最强的支持。

为云助力的第一要务,是帮助开发者构建适应在云端环境运行的应用程序。.Net Core和Asp.Net Core在此处扮演了重要角色,因为它们具有良好的跨平台支持,并且能够比较轻量地连同整个runtime一起打包进行自包含部署(Self-Contained Deployment)。之前.Net Core/Asp.Net Core曾在Visual Studio 2015中试水,并随着技术思路的调整在VS2015的多次更新中不断变化。终于,Visual Studio 2017正式将蜕变完全的.Net Core和Asp.Net Core项目作为一等公民。之前因为.Net Core生态处于预览状态而担心稳定性和breaking change的朋友们,现在则可以放心大胆地使用了。

.Net Core和Asp.Net Core的历史和关系说起来颇为有趣:多年前Asp.Net团队在微软内部就以开放和进取著称,他们在设计下一代的时称Asp.Net 5的框架时(早期代号为Project K ),雄心勃勃地希望加入自包含部署、即时编译、跨平台运行等特性,并在当时.Net的工具链和运行时尚不能支持相关需求的情况下,竟自底向上地开发出了一套相对独立的生态和工具链(DNX),事实上领先于.Net Core的孵化。Asp.Net 5的预览版发布后,在设计和性能上都取得了相当好的反响,声势上反倒盖过了标准.Net Core Tooling,一度造成了略显尴尬、令人费解的局面。

令人高兴的是,经过了一段相当长的过渡时期后,两个团队逐渐走向了协调和融合,期间Asp.Net 5重命名为了Asp.Net Core,并最终完全基于.Net Core的CLI进行管理和运行。直到最近Visual Studio 2017发布时,DNX工具链的最后标志project.json描述文件也随着.Net Core Tools 1.0的正式交付而退出历史舞台,进化后的csproj/msbuild体系则再次统一项目模型。这一段轶事其实也折射出了微软自我革新的历程,可谓好事多磨,终成善果。

Azure上的PaaS能力不断推陈出新,Visual Studio帮助大幅降低使用门槛

为云助力的另一角度,是需要为Azure上琳琅满目的PaaS特性提供支持和无缝集成,这部分一直由Azure SDK进行支撑。在Visual Studio 2017的Azure套件中,自然包含各种基于PaaS的云端项目模板,为用户采用Azure的特性提供了一站式解决方案,典型的如WebJob和Service Fabric。而对于需要消费PaaS和各种标准API的应用程序,Visual Studio的Connected Service也能够帮助开发者迅速地连接和配置这些平台或服务。此外,Azure SDK所包含的Azure模拟器可以帮助开发者在本机虚拟云端环境,极大地方便了云端应用程序在本地的开发和调试。

针对大数据处理和计算的PaaS能力是当前公有云厂商争夺的重点。Azure近来在此领域内动作频频,一方面不断深化与HortonWorks的合作,高频率地强化和更新HDInsight(基于HDP);另一方面PaaS化程度更高的Azure Data Lake也已结束了预览进入GA状态。Azure Data Lake上的数据分析颇具特色,可使用微软自研的U-SQL语言结合SQL和C#的特点进行混合编程,给大规模数据处理和查询带来了让人耳目一新的方式,受到.Net生态开发者的欢迎。在Visual Studio 2017中,开发者可以很方便地连接和管理云端的大数据资产,并创建相应生态的应用程序,如U-SQL、Storm、Hive、Pig等。

总结移动和云方面,微软可谓兼收并蓄,与时俱进。同时,通过充分利用Visual Studio这样的生产力工具,微软成功地对各种平台和不同层面运行环境下的开发单元进行了良好的抽象,给予了开发者多样化的选择。

  容器化和DevOps

微软同Docker进行深度合作,融入容器生态圈

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章