最近在一个官方的。net框架博客中宣布。net Core将会开源。
具有讽刺意味的是,作者提到。net Core是什么将在下一篇文章中解释。更多细节将在另一篇公告中提及。
从提供的图表:
和文章文本本身,我认为。net Core(除了像开源这样明显的东西)是完整的。net的模块化重新实现。也就是说,框架组件是根据需要加载的,就像现在加载NuGet包一样。现在是ASP。NET 5是其中一个已经实现的模块。我对。net Core的理解正确吗?也许我遗漏了什么?
我发现了一篇最近的文章,我觉得既短又好。它涵盖了。net标准、。net核心和。net框架以及它们之间的关系。我强烈推荐它。
微软认识到未来的网络开源模式,并决定向其他操作系统开放。net Core是Mac和Linux的。net框架。它是一个“轻量级的”. net框架,因此缺少一些特性/库。
在Windows上,我仍然会运行。net Framework和Visual Studio 2015. net Core对开源世界更友好,如Node.js, npm, Yeoman, Docker等。
你可以用Visual Studio Code + . net Core在Mac或Linux上开发成熟的网站和RESTful api,这在以前是不可能的。所以,如果你喜欢Mac或Ubuntu,并且你是一个。net开发者,那么就去设置它吧。
对于Mono和。net Core, Mono是作为Linux的。net框架开发的,现在被微软(Xamarin公司)收购,并用于移动开发。最终,微软可能会合并/迁移Mono到。net Core。我现在不会担心Mono。
它是. net框架的一个子集,从紧凑框架版本开始。它发展到Silverlight、Windows Store和Windows Phone。它专注于保持部署规模小,适合快速下载和存储能力有限的设备。而且它更容易在非windows平台上运行,当然这也是它被选为开源版本的原因。CLR和基类库中“困难”和“昂贵”的部分被省略了。
否则,当您的目标是这样的框架版本时,总是很容易识别,因为将会缺少许多好东西。您将使用一组不同的引用程序集,这些程序集只公开运行时支持的内容。它存储在您机器上的C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\。NETCore目录。
Update: after the .NET Core 2.0 release I've seen some representative numbers that gives a decent insight. They have been hard at work back-porting framework APIs to .NET Core over the past two years. .NET Core 1.0 originally supported 13,000 APIs. .NET Core 2.0 added 20,000 APIs, bringing the total to 32,000 and allowing about 70% of existing NuGet packages to be ported. There are a set of APIs that are too heavily wedded to Windows to be easy to port to Linux and MacOS. Covered by the recently released Windows Compatibility Pack, it adds another 20,000 APIs.
我发现了一篇最近的文章,我觉得既短又好。它涵盖了。net标准、。net核心和。net框架以及它们之间的关系。我强烈推荐它。不幸的是,我没有时间去适应并把它放在这里。
原文回答内容如下:
因此,根据有关这一主题的最新官方词条,以下是我认为的一些关键点:
.NET Core本质上是.NET Framework的一个分支
实现也围绕保理关注点进行了优化。
我们认为。net Core既不针对。net Native也不针对。net Core
ASP。NET 5 - BCL和运行时是通用的和设计的
模块化。因此,它构成了未来所有。net的基础
垂直的线。
所以。net Native和ASP。NET 5只是一个测试新框架配置的“主题”,部分原因可能是因为它们非常不同:
看,它们甚至需要单独的底层,但BCL的一个主要部分仍然是常见的:
我们认为。net Core既不针对。net Native也不针对。net Core
ASP。NET 5 - BCL和运行时是通用的和设计的
模块化。因此,它构成了未来所有。net的基础
垂直的线。
例如,顶部的洋红色矩形将大量添加新的应用程序模型,但基础将保持通用。
NuGet部署:
相对于。net框架,.NET核心平台将是
作为一组NuGet包交付。我们决定使用NuGet是因为
这就是大多数图书馆生态系统所处的位置。
与当前框架的关系:
对于Visual Studio 2015,我们的目标是确保.NET Core是一个
纯。net框架的子集。换句话说,不会有
任何特征缺口。在Visual Studio 2015发布之后
. net Core的版本比. net Framework更快。这
意味着在某个时间点,某个特性只会出现
在基于。net Core的平台上可用。
简介:
The .NET Core platform is a new .NET stack that is optimized for open
source development and agile delivery on NuGet. We’re working with the
Mono community to make it great on Windows, Linux and Mac, and
Microsoft will support it on all three platforms.
We’re retaining the values that the .NET Framework brings to
enterprise class development. We’ll offer .NET Core distributions that
represent a set of NuGet packages that we tested and support together.
Visual Studio remains your one- stop-shop for development. Consuming
NuGet packages that are part of a distribution doesn’t require an
Internet connection.
基本上,我们可以把它看作是一个。net 4.6版本,但它的发布模型有所改变,同时,它也正处于开源的过程中。