.NET 核心开源 已翻译 100%

oschina 投递于 2014/11/13 07:22 (共 14 段, 翻译完成于 11-16)
阅读 9432
收藏 63
4
加载中

对于.NET来说,今天是个大日子! 我们很高兴宣布.NET核心将要开源,包括运行时环境和框架类库。

这是我们为开源努力的自然结果,我们已经开源了主要的编译器(C#,VB、F#),还有ASP.NET:

我们通过将范围扩展到.NET运行时环境和核心框架,使(微软开源进程)进入下一个阶段。

daxiang
daxiang
翻译于 2014/11/13 08:16
2

什么是 .Net 核心?

.Net 核心是一个模块化的开发栈。该开发栈包含 .Net 平台的所有特性。这些特性已经被用在 ASPNET Core 5 和 NET Native。下面会详细介绍什么是 .Net 核心以及它和 NET Framework 的关系。

为什么我们要开源 .Net 核心?

我们开源 .Net 核心有下面两个原因:

  1. 为跨平台的 .Net 奠定基础

  2. 建立一个强大的生态系统

下面让我们来关注更多细节。

i好人大叔am
i好人大叔am
翻译于 2014/11/13 13:01
1

为跨平台 .Net 奠定基础

作为一个 .Net 开发者,你以后可以在 Linux、 MacOS、 iOs 和 Android 上构建或者运行你的程序,而不仅仅是 Windows。

这有一个挑战就是,windows已经有一套代码实现,同时 Mono 也有一套代码实现。Mono 社区事实上被强迫重新实现了一次 .Net,因为没有开源的代码实现。当然该代码实现可以通过 Rotor 来让变得可用。但是没有我们的开源授权,让这件事变得不可能。客户已经提出了很多的问题,但是这些问题很难去修复,因为双方都不可以看到对方的代码。这也导致了很多重复的工作,而且实际上这些工作不是针对特定于平台而导致的。immutable collections就是一个很明显的例子。

建立一个扩平台的技术栈的最好方法,就是通过合作的方式去建立唯一的技术栈。同时最好的合作方式就是去把它开源。

i好人大叔am
i好人大叔am
翻译于 2014/11/13 13:29
2

建立并利用一个强大的生态系统

我的团队使用NuGet(.NET平台下一个开源项目)实现更敏捷的开发周期已近两年了。 为了让客户提供反馈,我们早期进行了发布,现在我们已取得了巨大的成功。

如果你仔细思考会发现: 开源本质上是敏捷开发模式。 每一个改动都需要立刻发布,并且(在理论上)可用。 我团队里的很多成员是Twitter和Stack Overflow会员,他们热衷于客户讨论。 不止一次,我希望我能够给客户介绍内部文档,并向他们解释我们的系统是如何实现的。 或者只是简单地介绍一个问题是如何被解决的。

对于我们来说,开源架构也意味着我们可以实时与客户进行交流。 当然,并不是每一个客户都想我们紧密互动。 但是确实有一些人使得架构变得更好,因为他们提供了早期、稳定的反馈。

我把这比作驾驶一辆汽车: 频繁的小幅度的调整方向盘比大幅度的调整更有效,且风险更低。

daxiang
daxiang
翻译于 2014/11/14 08:33
1

选择利用 GitHub

我们决定在 Github 上存放 .Net 核心的代码,因为据 Phil Haack 说在 Githut 上发布代码,可以帮助提高效果:

这当然是开玩笑。

作为一个原则,我们不想告诉社区我们在哪里。相反,我们应该去到社区它本身就存在的地方。根据其他的一些项目反馈来看,Github是 .Net 的最主要社区。

i好人大叔am
i好人大叔am
翻译于 2014/11/13 13:39
1

不相信?我原来也怀疑所以我做了个小实验。我将自己的一个开源项目从CodePlex上移到了GitHub上。在CodePlex上两年了我只有一个pull request,而移到GitHub上五天后我的pull request就达到了三个,而且发现了另外两个贡献者。这是三个月前了,总共从那时起我已经获得了16个pull request,许多都有实质性的进展。(顺便说一句:最开始的那一个被加进了很多单元测试,很酷有木有?)尽管这个还不算是严格意义上的案例,但确实能让我们听到更多客户的需求。

所以为了加入社区,我们决定将 .NET Core 发布在GitHub上,一个月前,在GitHub上已经能看到我们的成果了(our samples available on GitHub)。

James_飏
James_飏
翻译于 2014/11/14 09:50
2

开源的开发经历

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

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

一个人的中台
一个人的中台
翻译于 2014/11/14 21:31
1

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

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

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

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

一个人的中台
一个人的中台
翻译于 2014/11/14 22:00
1

我们初步计划使用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上问题的流程。

daxiang
daxiang
翻译于 2014/11/15 09:20
1

我们接受贡献

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

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

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

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

开源中国七里香
开源中国七里香
翻译于 2014/11/16 08:09
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(44)

东方星痕
东方星痕

引用来自“卖姑娘的小火柴”的评论

这么说,正主来了,mono怎么办

引用来自“JeffreyWu”的评论

有了官方的jdk, openjdk怎么办?
还有JRoket呢
简单代码
简单代码

引用来自“开源中国匿名会员”的评论

其实 codeplex, sourceforce 都挺好的, 但是没有 git, bitbucket 做得好。

引用来自“开源中国真理部部长”的评论

SourceForge?

引用来自“开源中国匿名会员”的评论

感谢校长斧正
好像是部长。。。
CheckStyle
CheckStyle

引用来自“卖姑娘的小火柴”的评论

这么说,正主来了,mono怎么办

引用来自“简单代码”的评论

微软和那个公司一起维护mono,这样微软可以省一笔钱了,可是部分mono版本收费啊?

引用来自“李飞麟”的评论

mono是开源的,不收费。收费的是基于mono的Xamarin。这就类似于linux不收费,但是redhat linux收费一样。

引用来自“eechen”的评论

不想花钱用Redhat,还可以用CentOS,Debian,Ubuntu Server,选择很多嘛. 等.NET完美跨平台后,新的.NET项目就可以全部迁移到Linux平台,就不用购买Windows Server授权了,这对.NET开发者是好事,但却不符合微软的利益.而且微软的.NET跨平台还只是在说说而已的阶段,现在还没有提供任何在Linux部署微软官方.NET环境的资料(Mono是第三方的产品,随时有可能被微软一脚踹开).

引用来自“李飞麟”的评论

难道你不知道微软的重心已经转移到了Azure上了?说句不好听的话,.NET跨平台对微软的一个赢利点就是Azure。这上面跑的可不只有windows。你自己意淫的东西有多少是真实的?

引用来自“航航”的评论

这才是以发展的眼光看问题的人

引用来自“CheckStyle”的评论

豪赌Azure是微软的Plan B. 到时候基本放弃消费类市场,尤其是个人移动市场后,微软可以安心卖虚拟机了

引用来自“JeffreyWu”的评论

Satya Nadella: Mobile First, Cloud First Press Briefing。 Cloud First就是Azure云了,还有Mobile First, 好戏才刚刚开始

引用来自“CheckStyle”的评论

微软里面的人还纠结呢...

引用来自“JeffreyWu”的评论

这有什么好纠结的,爆点料呗
当然有人纠结了,你以为微软各个大部门是铁板一块么?
大王叫我来卖萌
大王叫我来卖萌

引用来自“卖姑娘的小火柴”的评论

这么说,正主来了,mono怎么办

引用来自“简单代码”的评论

微软和那个公司一起维护mono,这样微软可以省一笔钱了,可是部分mono版本收费啊?

引用来自“李飞麟”的评论

mono是开源的,不收费。收费的是基于mono的Xamarin。这就类似于linux不收费,但是redhat linux收费一样。

引用来自“eechen”的评论

不想花钱用Redhat,还可以用CentOS,Debian,Ubuntu Server,选择很多嘛. 等.NET完美跨平台后,新的.NET项目就可以全部迁移到Linux平台,就不用购买Windows Server授权了,这对.NET开发者是好事,但却不符合微软的利益.而且微软的.NET跨平台还只是在说说而已的阶段,现在还没有提供任何在Linux部署微软官方.NET环境的资料(Mono是第三方的产品,随时有可能被微软一脚踹开).

引用来自“李飞麟”的评论

难道你不知道微软的重心已经转移到了Azure上了?说句不好听的话,.NET跨平台对微软的一个赢利点就是Azure。这上面跑的可不只有windows。你自己意淫的东西有多少是真实的?

引用来自“航航”的评论

这才是以发展的眼光看问题的人

引用来自“CheckStyle”的评论

豪赌Azure是微软的Plan B. 到时候基本放弃消费类市场,尤其是个人移动市场后,微软可以安心卖虚拟机了

引用来自“JeffreyWu”的评论

Satya Nadella: Mobile First, Cloud First Press Briefing。 Cloud First就是Azure云了,还有Mobile First, 好戏才刚刚开始

引用来自“CheckStyle”的评论

微软里面的人还纠结呢...
这有什么好纠结的,爆点料呗
CheckStyle
CheckStyle

引用来自“卖姑娘的小火柴”的评论

这么说,正主来了,mono怎么办

引用来自“简单代码”的评论

微软和那个公司一起维护mono,这样微软可以省一笔钱了,可是部分mono版本收费啊?

引用来自“李飞麟”的评论

mono是开源的,不收费。收费的是基于mono的Xamarin。这就类似于linux不收费,但是redhat linux收费一样。

引用来自“eechen”的评论

不想花钱用Redhat,还可以用CentOS,Debian,Ubuntu Server,选择很多嘛. 等.NET完美跨平台后,新的.NET项目就可以全部迁移到Linux平台,就不用购买Windows Server授权了,这对.NET开发者是好事,但却不符合微软的利益.而且微软的.NET跨平台还只是在说说而已的阶段,现在还没有提供任何在Linux部署微软官方.NET环境的资料(Mono是第三方的产品,随时有可能被微软一脚踹开).

引用来自“李飞麟”的评论

难道你不知道微软的重心已经转移到了Azure上了?说句不好听的话,.NET跨平台对微软的一个赢利点就是Azure。这上面跑的可不只有windows。你自己意淫的东西有多少是真实的?

引用来自“航航”的评论

这才是以发展的眼光看问题的人

引用来自“CheckStyle”的评论

豪赌Azure是微软的Plan B. 到时候基本放弃消费类市场,尤其是个人移动市场后,微软可以安心卖虚拟机了

引用来自“JeffreyWu”的评论

Satya Nadella: Mobile First, Cloud First Press Briefing。 Cloud First就是Azure云了,还有Mobile First, 好戏才刚刚开始
微软里面的人还纠结呢...
智能小松鼠
智能小松鼠
终于开放了
大王叫我来卖萌
大王叫我来卖萌

引用来自“卖姑娘的小火柴”的评论

这么说,正主来了,mono怎么办

引用来自“简单代码”的评论

微软和那个公司一起维护mono,这样微软可以省一笔钱了,可是部分mono版本收费啊?

引用来自“李飞麟”的评论

mono是开源的,不收费。收费的是基于mono的Xamarin。这就类似于linux不收费,但是redhat linux收费一样。

引用来自“eechen”的评论

不想花钱用Redhat,还可以用CentOS,Debian,Ubuntu Server,选择很多嘛. 等.NET完美跨平台后,新的.NET项目就可以全部迁移到Linux平台,就不用购买Windows Server授权了,这对.NET开发者是好事,但却不符合微软的利益.而且微软的.NET跨平台还只是在说说而已的阶段,现在还没有提供任何在Linux部署微软官方.NET环境的资料(Mono是第三方的产品,随时有可能被微软一脚踹开).

引用来自“李飞麟”的评论

难道你不知道微软的重心已经转移到了Azure上了?说句不好听的话,.NET跨平台对微软的一个赢利点就是Azure。这上面跑的可不只有windows。你自己意淫的东西有多少是真实的?

引用来自“航航”的评论

这才是以发展的眼光看问题的人

引用来自“CheckStyle”的评论

豪赌Azure是微软的Plan B. 到时候基本放弃消费类市场,尤其是个人移动市场后,微软可以安心卖虚拟机了
同时.NET Micro Framework之父Colin Miller也高调回归,在11月11日发布一篇以ComingHome为标题的新博文,文中声称,微软发布新的计划,将加大对.NET Micro Framework的投入力度,着力在智能设备和物联网领域进行深度开发。正因为如此,所以经过两年的离开后,重新归队领导.NETMicro Framework下一步的开发。 知道这意味着什么吗?物联网! 未来物联网的开发平台,无非集中在三个层面:云,移动入口,端。 好戏才刚要开始!
大王叫我来卖萌
大王叫我来卖萌

引用来自“卖姑娘的小火柴”的评论

这么说,正主来了,mono怎么办

引用来自“简单代码”的评论

微软和那个公司一起维护mono,这样微软可以省一笔钱了,可是部分mono版本收费啊?

引用来自“李飞麟”的评论

mono是开源的,不收费。收费的是基于mono的Xamarin。这就类似于linux不收费,但是redhat linux收费一样。

引用来自“eechen”的评论

不想花钱用Redhat,还可以用CentOS,Debian,Ubuntu Server,选择很多嘛. 等.NET完美跨平台后,新的.NET项目就可以全部迁移到Linux平台,就不用购买Windows Server授权了,这对.NET开发者是好事,但却不符合微软的利益.而且微软的.NET跨平台还只是在说说而已的阶段,现在还没有提供任何在Linux部署微软官方.NET环境的资料(Mono是第三方的产品,随时有可能被微软一脚踹开).

引用来自“李飞麟”的评论

难道你不知道微软的重心已经转移到了Azure上了?说句不好听的话,.NET跨平台对微软的一个赢利点就是Azure。这上面跑的可不只有windows。你自己意淫的东西有多少是真实的?

引用来自“航航”的评论

这才是以发展的眼光看问题的人

引用来自“CheckStyle”的评论

豪赌Azure是微软的Plan B. 到时候基本放弃消费类市场,尤其是个人移动市场后,微软可以安心卖虚拟机了
Satya Nadella: Mobile First, Cloud First Press Briefing。 Cloud First就是Azure云了,还有Mobile First, 好戏才刚刚开始
大王叫我来卖萌
大王叫我来卖萌

引用来自“jetsonlee”的评论

看了一下代码库,怎么就只有几个xml的库?System下面的东西没找到啊!lambda 的也没看到。
微软计划在2015年Build大会之前完成整个.NET核心库的开源. 正在逐步的走向全面开源。
人生能绕几个圈
人生能绕几个圈

引用来自“卖姑娘的小火柴”的评论

这么说,正主来了,mono怎么办

引用来自“Bery”的评论

号外,微软是要干死MONO,然后再停止开源计划。

引用来自“JeffreyWu”的评论

见不得别人好
微软一直都是最善良的公司
返回顶部
顶部