转载

Roslyn开源第一年:试炼与凯旋

Roslyn 是微软创建的一个.NET编译器平台,提供了开源C#和Visual Basic编译器及丰富的代码分析API,旨在使开发人员可以使用Visual Studio所使用的API构建代码分析工具。该项目 于2014年4月3日开源 。近日,在其一周岁生日来临之际,VB项目团队经理Kasey Uhlenhuth 撰文 回顾了Roslyn的开源之路。

Roslyn开源第一年:试炼与凯旋

据Uhlenhuth介绍,早在2009年重新设计C#和VB编译器的时候,他们就考虑到了开源。但直到2014年,在看到F#,、ASP.NET、TypeScript开源取得成功后,他们才真正迈出了这一步。

开源之后,他们获得了许多来自社区的支持和帮助。社区反馈在C# 6.0的一些设计决策中发挥了重要的作用。比如, 主构造函数 、 null条件操作符语法 和 字符串插值 均受到了社区反馈的影响。而且,社区还推动了许多与Roslyn相关的项目:

  • C# Pad 是一个交互式Shell,允许在浏览器中执行C#;
  • CodeConnect.io 可以实现设计时调用堆栈可视化,包括重构和搜索特性;
  • DuoCode 可以将C# 6.0交叉编译为JavaScript代码;
  • LINQPad.CodeAnalysis 是一个库,可以增强LINQPad的功能,使它更容易与Roslyn搭配使用;
  • Mono/Roslyn 是.NET Framework的跨平台开源实现;
  • OzCode v2.0 使用Roslyn提供令人愉快的调试体验;
  • Scrawl 是一个面向现代Web开发人员的轻量级编辑器;
  • scriptcs 是一个开源项目,允许开发人员将C#当作脚本语言使用,并提供一个命令行C# REPL;
  • Try Roslyn 演示了Roslyn的用法及如何重现一个编译Bug;
  • WebEssentials Markdown编辑器 也基于Roslyn。

期间,他们还采取了一项重大举措,就是 将Roslyn源代码从CodePlex迁移到GitHub 。这不只是代码位置的变化,更重要的是开源模型和工作流程的变化。在迁移之前,他们采用的是一种“有限开源”模型。也就是说,问题跟踪和代码审核系统都是内部的,社区贡献的代码需要他们手动复制粘贴然后合并,而无法直接合并。在迁移之后,他们采用了“完全开源”模型,使用GitHub的问题跟踪和代码审核系统,通过pull请求提交代码,并制定了 代码贡献流程 。这一举措增加了社区的透明度,仅用三分之一的时间就几乎实现了社区参与度的成倍增长:

Roslyn开源第一年:试炼与凯旋

Roslyn的用户数也稳步增加,下图是pull请求数和问题记录数的增长趋势:

Roslyn开源第一年:试炼与凯旋

另外,Uhlenhuth还提供了一些有关项目团队响应率的统计,旨在表明,与开发全新功能相比,他们优先接受代码,如下图所示:

Roslyn开源第一年:试炼与凯旋

从1月份到现在,他们又开源了 Scripting 、 “表达式求值器Expression Evaluators” 、 Visual Studio 语言服务 等平台组件。现在,他们正在简化 F5构建 。将来,他们还有许多细节工作要做,比如,将一些历史问题从CodePlex迁移到GitHub,找出一种在GitHub上标记问题的理想方法,将提交映射到不同产品版本的方法等等。

正文到此结束
Loading...