RichardLander译者
弯月
当第一次考虑在GitHub上共享.NETCore时,我们觉得开源是一个富有吸引力且令人兴奋的想法。同时,我们很多人都不太了解GitHub,只知道这是一个很大的平台,至于如何利用这个平台,我们都有很多疑问。“如果第一天就有人在我们的运行时上建立分叉,该怎么办?是不是说我们的项目就完了?”我们知道应该虚心学习开发人员建立的模式,并了解他们对我们的期望。话虽如此,我们还是建立了项目和组织,而且项目的发展速度超出了我们的预期。截止到目前,我们已经度过了数个春秋,而且已经拥有了多个版本,而其他的都已成为历史。这是一段有趣的旅程,我们将与各方工作人员一起分享。
此次,我们将通过谈话的形式,与以下几位.NET工程师一起分享他们尝试GitHub以及建立.NET开源项目的经历。
ClaireNovotny:.NET基金会执行董事,.NET团队的PM
DanMoseley:.NET库团队的项目经理
ImmoLandswerth:.NET团队的项目经理
KevinPilch:ASP.NETCore、EntityFramework和Winforms的工程经理
MattMitchell:.NET工程师
StephenToub:.NET工程师
Q:为什么开源对.NET项目如此重要?Immo:现代开发技术栈需要跨平台。在操作系统和架构不断变化的大环境中,开源是最具可持续性的、构建一个拥有广泛支持的技术栈的方式。我们可以通过开源与消费者实时互动,而这从很多方面改变了我们计划、构建和迭代.NET的方式。最后,人们都希望开发技术栈这类的基础技术能够在开源许可下开放。
Claire:开源之后,任何人都可以查看和调试用于构建应用程序的运行时,甚至为之做贡献。以前有些问题对他们来说很重要,但不会被优先考虑,而如今他们可以自行解决这些难题了。开源之后,.NET项目已不再由微软一家提供。
Kevin:我认为开源对.NET很重要,原因如下:
开源语言和运行时的实现很常见,所以如果不开源的话,倒显得我们格格不入。
.NET涉及的范围很广,尽管我们尽了最大的努力来编写文档,但还不如让人们来亲眼看一看这些实现,甚至动手调试。
我们可以通过开源,与个人和其他公司展开合作,这种合作比在闭源系统上进行的一次性协议更直接。
Stephen:原因有很多,但最让我心动的是任何人都可以找到对他们很重要的东西,并加以改进。在.NETCore出现之前,任何改进请求都要与其他请求一起经过整理和分类后,才会到达合适的微软工作人员手中,然后再安排开发人员处理改进要求,可能需要经过几年的时间才能发布出来。如今,如果有人发现希望修复的问题,他们只需提出PR,然后经过审查、迭代、合并,通过每晚的构建,第二天就可以上线了。这是一个完全不同的世界。
Dan:开源是实现跨平台的最佳方式,尤其在面向Linux时,开源是最自然的做法。
Matt:我认为,微软必须通过某种方式表现对开源软件社区的投入,这一点很重要。我们采用了开源软件的开发方式,并将开源作为产品的一部分发布出去。如今,开源软件是整个软件生态系统的重要组成部分。微软的参与和回馈也非常重要。
Dan:由于有更多的人