开放源代码和微软开发者工具

[原文发表地址] Open Source and Microsoft Developer Tools

[原文发表时间] 3/20/2014

在整个微软,我们看到过去的几年里我们和开源社区的接触越来越多,它在开源软件项目里充当着消费者、生产者、参与者的角色。. 特别是在我们开发者工具方面,我们与开源的开发者社区有着广泛的合作。

随着这种合作的增多,我们也在继续评估和改进我们自己内部的政策和做法,进一步的简化我们和开源社区的工作方式。我们正在不断的寻找各种方法来鼓励和使得我们的工程师们使用、生产和参与到开源社区中来。

围绕着我们的工具和平台的开源系统在其发展的过程中扮演着关键的作用,而且我也非常高兴的看到开源系统在最近几年的成长。为了继续促进,并且认可这个社区正在做的伟大的工作,我们正在更新我们微软的MVP准则,认可开源社区的工作和其他形式的社区参与的工作一样重要。我很高兴看到过去的几年中,我们与开源社区合作完成的许多工作,同时也期待着在我们面前的其他机会。在这篇博客中,我想跟大家分享一个关于我们最近跟开源社区合作方式的更新,和一些接下来工作的想法。

Visual Studio 2013 TFS2013 中的开源工程

Visual Studio 2013 是建立在很多伟大的开源软件上的。事实上,很多的开发者都很惊讶地听到在Visual Studio和Team Foundation Server有多少OSS。Scott Hanselman在他的一些演讲中分享了下边的这个幻灯片,总结了各种Visual Studio中的产品所使用的开源项目。

其中的一些项目是由在微软的一些个人或者团队开始做的,而现在是作为开源来进行开发的。一些是我们作为参与者, 参与到一些成功的开源项目。另外的其他项目是在开源社区所做的一些非常有用的工作基础上,我们在Visual Studio里面丰富它们的功能。

我们不能发布一个没有这些项目的Visual Studio,我想和Scott一起感谢为这些 项目付出努力,为Visual Studio 2013 和TFS2013 提供支持的 每一个人。

下边的这些例子更加突出一些在Visual Studio中开源的味道:

LibGit2

Visual Studio和TFS现在支持本地Git资源控制,而且Visual Studio开发者们正在通过Git使用分布式版本控制来管理Visual Studio中多种多样的通过Git使用分布式版本控制多种开发活动。

我们对Git的支持是建立在libgit2项目上的,GitHub和在Git社区中的其他项目也在使用libgit2。在我们版本控制团队中的几名微软工程师正在积极推动这一项目的实施,帮助支持使它能够跨平台,可连接,支持用C语言编写的Git库,以及对windows库提供一流支持。我们还在积极促进libgit2sharp项目,它能够提供.Net封装的libgit2库。这让任何.Net 开发者很容易的快速集成Git。

在Visual Studio集成中建立上边的两个库是我们能够在Visual Studio中提供对Git的大力支持,同时能够给开源社区做出贡献,还能对开源库提供额外的测试和验证。

Visual Studio 工具 - Node.js

最近我们发布了一个支持Node.js的Visual Studio的预览版本。这个项目支持在VS中针对开源的Node.js平台的编辑,项目管理,分析和调试。

这个为Visual Studio项目的Node.js工具是基于CodePlex开发的,同时从行业伙伴们做出了主要的贡献,这其中包含NPM管理UI和编辑并继续功能的支持。该项目也是建立在一般的开源Node.js平台上的,并且支持调试功能,它的调试功能是基于开源的V8引擎调试协议的

说到Node.js我们也有一个开源的Windows Azure的Node.js SDK. 我们已经与微软开放技术合作,我们的开源子公司正致力于Node.js的核心部分,保证它能在Windows和Windows Azure上工作的很好。

ASP.NET Web 堆栈

两年前,我们在CodePlex上开放了ASP.Net web 堆栈的代码,并且已经将它转移到微软开放技术。从那时起,这个项目已经受惠于社区中的许多的开发人员。这些ASP.NET 技术继续成为在Visual Studio中使用最频繁的项目类型的基础。

ASP.NET 开发者系统也越来越多的采用开源技术作为现代ASP.NET web开发平台中的核心部分。现在,我们将许多这样子的工程作为一部分默认模板引入到Visual Studio中,包括JSON.NET, OWIN, jQuery, ModernizrBootstrap

TypeScript

我们很早就决定我们想要TypeScript成为一个开源语言和编译器。经过18个月的在CodePlex上的开发使我们能够很快的在即将到来的TypeScrtpt1.0看到对语言和工具的改进。

我们同样还看到了一个很棒的关于TypeScript的开源社区的建立,包括了建立系统集成和在Eclipse中对IDE的支持,WebStorm等等。在TypeScript开源社区中一个特别有意思的工程是DefinitelyTyped, 它是一个TypeScript库的精选集,包含了超过300主流的JavaScript库,来自于350多人的超过4000多份贡献,并在Visual Studio update2 中,我们已经添加了几个功能来方便查找这些基于这个非常棒的开源工程的 库类。。

期望

这些工程只是一个我们正在我们的开发工具中使用开源代码的示例。这些突出的例子表明一个趋势,同时也是我非常期待的,开源工程不仅在开发工具中,同时在其他平台和其他微软的应用中都在加速发展。我很高兴的看到在过去的几年中开发者在和开源社区的合作中得到的益处,我同样期待我们在未来的合作。

Namaste!