设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

.NET核心开源

2014-11-17 12:29| 发布者: joejoe0332| 查看: 2397| 评论: 0|原作者: daxiang, i好人大叔am, noonoo, 开源中国七里香, YiHunter, James_飏, 几点人|来自: oschina

摘要: 对于.NET来说,今天是个大日子! 我们很高兴宣布.NET核心将要开源,包括运行时环境和框架类库。这是我们为开源努力的自然结果,我们已经开源了主要的编译器(C#,VB、F#),还有ASP.NET:…… ...


开源的开发经历

  我的团队也开源过,比如MEF项目,但平心而论,那个并没取得多少收获。我们认为基本的原因是缺少社区的参与。当我们只开放了源码后,并没有努力为之建立一个社区。我深深感到,建立一个社区才是开源项目成功的关键所在。而建立一个社区的关键是开发的过程也要开源地进行。


  为不辜负期望,我们同样也会透明我们的开发计划是什么,我们要克服的有那些挑战,以及哪些范围还未完成。我来解释一下这些。


  第一步是要停止code bombs,就像之前MEF中投的那些一样。代码炸弹本质上是不定期的公开更新的源代码,它们是系统项目组内部正在完成的代码。由于各种原因,这样做是有问题的。举个例子,公布的时间延迟,大家很难看到同一份代码,这样就很难进行公开的讨论。另一个大问题是历史版本丢失,自动同步让我们同步一致代码,但感觉像reinventing Git.


  所以为防止代码炸弹,我们建立我们的开发环境在公开的GitHub 仓库,它是一个领先的系统。这意味着所有的代码修改会立即表现出来。但我们不会:

  • Code reviews.  我们希望所有的代码审查过程全公开,通过 GitHub’s pull request model.

  • 设计文档及讨论,我们同样共享设计时的备注、规格以及实现的文档。我们一定会讲清楚我们将用什么格式。至少让你可以记下基本文档,就像 Mad’s C# design notes的一样。另一个想法是,我们给我们的设计讨论会录音,然后共享到 Channel 9。我们一定会讲清楚,我们会以什么样的节奏去,怎么实现它。


  我们初步计划使用GitHub问题清单功能来跟踪bug。 巧妙的是我们也提供了其它途径,如 UserVoice论坛,微软Connect网站和我们内部的团队协作服务器(Team Foundation Server)。 它们的介绍如下:

  • User Voice论坛。 在潜在昂贵项目排名方面,UserVoice有优秀的投票系统。 因此,对于更大特性和根本创新,UserVoice是搜集反馈的最佳选择。

  • 微软Connect网站。 Connect网站主要用户是企业用户和产品支持人员。 我们将有可能继续使用这个网站用于产品支持,但是不推荐你使用(它来提交bug),除非是提交.NET核心的bug。

  • 内部团队协作服务器。 我们不再使用TF Version Control工具来管理.NET核心,但是仍然管理大块的DevDiv模块。 为了能够跨平台的协作工作,我们会继续允许团队通过TFS提交bug。 我们正在考虑如何公开那些bug。 一个方法是创建一个自动镜像系统。


  在UserVoice和Connect网站上,当我们的团队成员在GitHub上提交了相应的问题后,你可以看到一个关闭UserVoice/Connect上问题的流程。


我们接受贡献

  是的,我们接受贡献!不过,与任何开源项目一样,我们不会盲目的接受所有的贡献。我们所收到的所有pull请求都会按照下面的标准进行评判:

  • 路线图(Roadmap)。所有项目都专注在某些领域。为了保持重心和发展势头,大部分工作向项目路线图看齐是很重要的。

  • 质量(Quality。我们要为输送高质量代码负责。因此,外部人员必须满足与微软员工相同的质量标准。包括正确的设计、架构、足够的测试覆盖率和遵守编码风格。

  我们相信通过为外部开发者提供足够的环境,在开源界的开发将会成功。例如,你可以看到我们的代码审查并且阅读内部是如何设计的相关文档。我们将会公布路线图。


  贡献者最好提早与我们沟通你的想法。这样的话,我们就可以给你提供一些帮助,比如提供文档或者是针对你的方案进行讨论。我们也会把我们希望大家做的工作发布在GitHub的issues列表上,供大家进行选择。


  通常,所有的社区贡献都要通过GitHub的 pull request 模型来完成,也就是说,你首先要fork我们的项目,并在你的分支上进行开发,最后通过pull request将代码提交到主干上。 对代码检视也同样是使用这一模型。


  在我们合入你的贡献之前,你还需要签署一份 Contributor License Agreement (CLA)协定。我们目前正在把这个工作工具化,最后的效果可能和Azure CLA过程类似。


构造并运行你自己的分支

  要玩玩我们的程序或实验你自己做的更改,你需要构建并运行你自己的库版本。我们想要做的尽可能的简单,所以看这里:

  • 克隆我们得仓库(git clone https://github.com/dotnet/corefx)

  • 调用build.cmd

  只需要Visual Studio 2013用来构建(不用“Dev14”)。将会构建所有得库并运行单元测试。

  过去我们我们做的一个更改是强命名,以防止你草率的删除已存项目的二进制文件。通过提供强命名二进制文件的新方法我们已经解决了这个隐忧,我们把新方法叫做开源签名。你可以在我们的开发者指南中找到更多信息。


.NET基金会

  .NET核心项目是由.NET基金会来进行管理。他将成为推动.NET核心栈不断向前的关键力量。我们还会与Xamarin/Mono项目的Miguel de Icaza进行紧密的合作,来创建一个共享的代码基线,使其发展为一个跨平台实现的.NET核心栈。


  今天,只有部分代码库可以在GitHub上访问到:


  我们会以下几个领域持续发力:

  • 更多的代码库. 目前开源的部分,可以理解为整个项目的首付款。我们的目标是在2015年开源整个.NET核心栈。

  • 构建和运行在非Windows平台. 我们现在只提供了在Windows上进行构建和运行的能力。我们正计划与Mono社区一起组件一个公开的工作组来完成此项工作。

  • .NET 核心运行时环境 (CoreCLR). 我们正在拟定运行时环境的开源计划。请保持关注。


总结

  .NET核心栈将在GitHub上完全开放源代码。我们已经对其中的一些库做了一些必须要进行的工程性更改,并在核心框架代码仓库中包含了它们。从现在到生成2015 构建期间,你将看到我们在开放源代码方面所做的工作。欢迎下载源代码!


  请多多使用.NET基金会的论坛,让我们知道你们所想!


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部