1、两个关键词:“开源”和“跨平台”。需要注意的是实现真正意义开源和跨平台的是.NET Core,而不是.NET Framework。.Net Framework(上图的左上部分)部分早开源了,但只是开放源代码而已,但是,这次将开源协议更改为MIT了,也很有意义。
2、什么是.NET Core?.NET Core与.NET Framework有什么关系?以下是我根据一些文章的一些理解,不一定准确。
- 简单来说,.NET Core就是.NET Framework的核心子集(因此,有个Core标识呀)。如果将一个“.NET实现”分为两个部分:runtime和library。
- runtime方面,.NET Framework和.NET Core拥有相同的runtime(上图的下部分),例如,拥用相同的JIT和GC。但准确的说,应该是.NET Core的runtime(coreclr)是.NET Framework的runtime(clr)的核心子集。(那么,Windows Phone(NT)是不是就是使用.NET Core的?无论是Silverlight app还是C# WinRT app都会使用到coreclr.dll来的。。。)
- library方面,.NET Core的libray是.NET Framework的library的核心子集。 例如,.NET Core不包括WPF和Windows Forms。而且,.NET Core的library部分更小、更独立以及更少的依赖。
- NET Core更小、更独立和模块化。其各个组成部分(libary和runtime)可以通过NuGet package来扩展和更新。
- 另一方面,也可以认为.NET Core是.NET Framework的进化版。因此,可以解释这么一个现象:为什么.NET Framework的最新版本号是4.6,而.NET Core是5。
3、真正意义的开源指是的微软将按照真正意义的开源软件开发方式开发.NET Core。
- 源代码管理直接使用GitHub!!每一次的提交,每一次的BUG FIX大家都可以看到!而不是简单的开放源代码,很久才更新一次源代码,一更新就更新一大堆源代码。
- 与社区的交流互动,这正是开源软件开发的真正意义吧。大家都可以参与进来。
5、.NET与Mono。微软官方支持跨平台,.NET Core与Mono之间会发展成怎样呢?
。。。
参考资料
http://www.hanselman.com/blog/AnnouncingNET2015NETAsOpenSourceNETOnMacAndLinuxAndVisualStudioCommunity.aspx
http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx
http://blogs.msdn.com/b/dotnet/archive/2014/11/12/announcing-net-2015-preview-a-new-era-for-net.aspx#_.NET_Framework_4.6