当前位置: 首页 > 知识库问答 >
问题:

什么是“.NET Core”?

郭永怡
2023-03-14

最近,在一个官方的.NETFramework博客上宣布.NETCore将开源。

讽刺的是,作者提到什么是.NETCore将在下一篇文章中解释。另一篇公告中提到了更多细节。

从提供的图表中:

至于文章本身,我会假设.NET核心(除了开源等显而易见的事情外)是对整个.NET的模块化重新实现。一、 框架组件根据需要加载,就像现在加载NuGet包一样。现在是ASP。NET 5是已经实现的模块之一。我对.NET核心的理解正确吗?也许我错过了什么?

我最近发现了一篇文章,我觉得它既短又好。它涵盖了.NET标准、.NET核心和.NET框架及其关系。我强烈推荐它。

共有3个答案

宓跃
2023-03-14

我最近发现了一篇文章,我觉得它既短又好。它涵盖了.NET标准、NET核心和.NET框架以及它们之间的关系。我强烈推荐它。不幸的是,我没有时间去适应并把它放在这里。

原文回答内容如下:

因此,根据有关该主题的最新官方条目,我认为以下是一些关键点:

. NET Core本质上是. NET Framework的一个分支,其实现也围绕保理问题进行了优化。

我们认为。NET Core并不特定于. NET Native或ASP. NET 5-BCL和运行时是通用的,设计为模块化。因此,它构成了所有未来的基础。NET垂直领域。

NET本机和ASP。NET 5只是新框架配置测试“主题”,部分原因可能是它们非常不同:

看,它们甚至需要单独的低水平,但BCL的主要部分仍然很常见:

我们认为。NET Core并不特定于. NET Native或ASP. NET 5-BCL和运行时是通用的,设计为模块化。因此,它构成了所有未来的基础。NET垂直领域。

一、 例如,顶部的洋红色矩形将大量添加新的应用程序模型,但底部仍将很常见。

NuGet部署:

与.NET Framework不同,.NET核心平台将作为一组NuGet包交付。我们选择了NuGet,因为大部分图书馆生态系统已经在那里了。

与当前框架的关系:

对于Visual Studio 2015,我们的目标是确保。NET Core是. NET Framework的纯子集。换句话说,不会有任何功能差距。Visual Studio 2015发布后,我们的期望是。NET Core将比版本更快。NET Framework。这意味着在某些时间点,某个功能只能在. NET Core基于平台。

总结:

。NET Core平台是一个新的。NET堆栈,针对NuGet上的开源开发和敏捷交付进行了优化。我们正在与Mono社区合作,使其在Windows、Linux和Mac上表现出色,Microsoft将在所有三个平台上支持它。

我们保留了。NET Framework为企业级开发带来的价值。我们将提供。NET Core发行版,代表我们一起测试和支持的一组NuGet包。Visual Studio仍然是您的一站式开发。使用作为发行版一部分的NuGet包不需要Internet连接。

基本上,这可以被认为是一个。NET 4.6具有更改的分发模型,同时,它正在成为开源的过程。

傅浩漫
2023-03-14

它是.NET Framework的子集,从Compact Framework edition开始。它发展到Silverlight、Windows Store和Windows Phone。它专注于保持部署规模较小,适合快速下载和存储能力有限的设备。它更容易在非Windows平台上实现,当然这也是它被选为开源版本的原因。省略了CLR和基类库的“困难”和“昂贵”部分。

否则,当您针对这样一个框架版本时,总是很容易识别出来,因为会丢失很多好东西。您将使用一组独特的引用程序集,这些程序集只公开运行时支持的内容。它存储在计算机上的C:\Program Files(x86)\Reference Assembly\Microsoft\Framework\中。NETCore目录。

更新:在. NET Core 2.0发布后,我看到了一些具有代表性的数字,它们提供了一个不错的见解。在过去的两年里,他们一直在努力将框架API反向移植到. NET Core。. NET Core 1.0最初支持13,000个API。. NET Core 2.0添加了20,000个API,使总数达到32,000个,并允许移植大约70%的现有NuGet包。有一组API与Windows过于紧密地结合在一起,无法轻松移植到Linux和MacOS。在最近发布的Windows兼容性包中,它又添加了20,000个API。

松锐藻
2023-03-14

在.NET博客上宣布.NET 2015预览版:一个.NET的新时代:

NET核心有两个主要组件。它包括一个小型运行时,它是从与.NET Framework CLR相同的代码库构建的。NET核心运行时包括相同的GC和JIT(RyuJIT),但不包括应用程序域或代码访问安全性等功能。运行时是通过NuGet交付的,作为[ASP.NET Core]包的一部分。

NET内核还包括基类库。这些库在很大程度上与.NET Framework类库的代码相同,但经过分解(删除依赖项),使我们能够提供较小的库集。这些库作为系统提供。*NuGet.org上的NuGet包。

以及:

[ASP.NET Core]是第一个采用.NET Core的工作负载。[ASP.NET Core]在.NET Framework和.NET Core上运行。[ASP.NET Core]的一个关键价值是它可以在同一台机器上的多个版本的[NET Core]上运行。网站A和网站B可以在同一台机器上的两个不同版本的.NET Core上运行,也可以使用相同的版本。

简而言之:首先是Microsoft。NET Framework,它由执行应用程序和库代码的运行时和几乎完全文档化的标准类库组成。

运行时是公共语言运行时,它实现了公共语言基础结构,与即时编译器一起运行CIL(以前的MSIL)字节码。

鉴于其历史和用途,微软的.NET规范和实现都是以Windows和IIS为中心的“fat”。有一些变体的库、名称空间和类型更少,但它们中很少有对web或桌面开发有用的,或者从法律角度来看很难移植。

因此,为了提供一个非Microsoft版本的. NET,它可以在非Windows机器上运行,必须开发一个替代方案。不仅要为此移植运行时,还要移植整个框架类库才能被广泛采用。最重要的是,为了完全独立于Microsoft,需要一个最常用语言的编译器。

Mono是为数不多的运行时实现之一,如果不是唯一的替代实现的话,它运行在除Windows之外的各种操作系统上,从.NET 4.5开始,几乎所有的命名空间都来自框架类库,以及VB和C编译器。

输入。NET Core:运行时的开源实现和最小基类库。所有附加功能都通过NuGet包交付,将特定的运行时、框架库和第三方包与应用程序本身一起部署。

ASP。NET Core是MVC和WebAPI的新版本,与瘦HTTP服务器抽象捆绑在一起,运行在.NET Core运行时上,也运行在.NET Framework上。

 类似资料:
  • 问题内容: 什么是selenium? 当您打开Selenium的官方页面时,您首先读到的是“什么是Selenium?”中的“ Selenium automates browser”。部分。“selenium的哪个部分适合我?”部分 下面提供了Selenium WebDriver和Selenium IDE之间的选择。由此,我推断出Selenium是一组工具,并且该集合包括IDE,WebDriver

  • 硒是什么? 当你打开Selenium的官方页面,首先看到的是“什么是Selenium”中的“Selenium自动浏览器”。节。“硒的哪一部分对我合适?”下面提供了Selenium WebDriver和Selenium IDE之间的选择。由此,我推断Selenium是一个工具集合,该集合包括IDE、WebDriver API(语言绑定)、网格、Selenium独立服务器、浏览器驱动程序。一个人必须下

  • 本文向大家介绍什么是事务?什么是锁?相关面试题,主要包含被问及什么是事务?什么是锁?时的应答技巧和注意事项,需要的朋友参考一下 答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔

  • 我在这里读到 写入共享引用类型<代码> 理解<代码> 在另一个地方,我阅读了以下代码: 结构人中的a是什么 名称的含义是什么: 如果想避免使用

  • 我几天前听说了Docker的事,想过去看看。 但事实上,我不知道这个“容器”的用途是什么? 什么是容器? 它能取代一个专门用于开发的虚拟机吗? 简单地说,在公司中使用Docker的目的是什么?主要的优势?

  • 本文向大家介绍什么是batch normalization,原理是什么?相关面试题,主要包含被问及什么是batch normalization,原理是什么?时的应答技巧和注意事项,需要的朋友参考一下 Batch Normalization就是在训练过程,每一层输入加一个标准化处理。 深度神经网络之所以复杂有一个原因就是由于在训练的过程中上一层参数的更新使得每一层的输入一直在改变。所以有个办法就是去

  • 本文向大家介绍什么是pytest?其优点是什么?,包括了什么是pytest?其优点是什么?的使用技巧和注意事项,需要的朋友参考一下 Pytest是python中的测试框架。要安装pytest,我们需要使用命令pip install pytest。安装后,我们可以通过pytest –version命令验证是否已安装python 。pytest的版本应该是已知的。 Pytest可用于创建和执行测试用例

  • 本文向大家介绍什么是主键?什么是外键?相关面试题,主要包含被问及什么是主键?什么是外键?时的应答技巧和注意事项,需要的朋友参考一下 主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。