.Net Full framework 和 K runtime 使用的 .Net Core Framework 4.5 的区别?

Posted

技术标签:

【中文标题】.Net Full framework 和 K runtime 使用的 .Net Core Framework 4.5 的区别?【英文标题】:Differences between .Net Full framework and the .Net Core Framework 4.5 used by K runtime? 【发布时间】:2014-08-11 17:18:03 【问题描述】:

我看过介绍 ASP.NET vNext 的视频,并一直在关注最近发布的博客文章,但有关从完整框架中删除的内容的详细信息似乎很少。以下是我认为到目前为止我所知道的:

要小得多(11MB vs >200MB):http://davidzych.com/2014/05/24/getting-started-with-asp-net-vnext/ 强命名不见了:http://jeremydmiller.com/2014/06/09/final-thoughts-on-nuget/ 已转储 System.Web 它包含一个合并的 MVC 和 WebAPI(但我不认为这是框架本身的一部分,而是可以指定的依赖项) 依赖关系完全通过 project.json 管理,在某种程度上,基础

我们是否基本上在寻找一个框架,它基本上只包含完整框架中 mscorlib 中的内容,而所有其他内容都通过包管理提供?如果是这种情况,为什么需要专门针对框架,如此处所述? http://blogs.msdn.com/b/webdev/archive/2014/06/17/dependency-injection-in-asp-net-vnext.aspx

【问题讨论】:

【参考方案1】:

他们在您提供的链接中专门针对NET45 的原因是因为AutoFac 是为.NET 4.5 构建的并且依赖于.NET 4.5。如果没有NET45,代码将无法编译。

我的假设是,一旦 vNext 越来越接近发布 Autofac(以及 StructureMap、Castle Windsor 等等),将发布一个针对云优化框架的版本以消除依赖关系。

【讨论】:

【参考方案2】:

据我了解,.Net Framework 是我们所熟知和喜爱的完整框架,包含我们通常不使用的所有 Windows 实现和大量代码,就像他们在一些视频中解释的 XML 解析器一样。

在 .NET Core 中,他们删除了所有不需要的实现/依赖项,只留下了基本的实现/依赖项。它还支持跨平台(尚未),因此将来可以将其视为唯一的框架:CORE Framework,并在任何设备上运行。他们的february community standup 就他们的目标和目标提供了大量信息和见解。

我认为这是一种过渡,即某些功能仅在完整框架上可用,而在未来人们可能希望看到所有可用于 .NET Core 的功能。

从微软的角度来看,如果他们想发布移动实体框架(EF7 的目标是),他们必须摆脱所有 Windows 实现,EF 及其依赖项(框架)。因此,他们在框架上创建了一个非 Windows 依赖项,这也有助于多个框架安装并消除一些更新框架的问题,因为它们大部分与系统隔离,位于应用程序中。新的问题会出现,例如每个应用程序在一台机器上存在多个相同框架的副本,这就是他们正在研究称为智能共享的东西的原因。

This post 可能会对您有所帮助,并特别为您提供一些见解:

.NET Core 的结构由两个主要组件组成 添加和扩展 .NET Framework 的功能如下:

    运行时:

构建在与 .Net Framework CLR 相同的代码库上。包括 相同的 GC 和 JIT (RyuJIT) 不包括 Application 等功能 域或代码访问安全性。运行时在 NuGet 上交付 (Microsoft.CoreCLR 包)

    基类库:

与 .Net Framework 类库的代码相同,但不同 包含依赖项,因此占用空间更小。在 NuGet 上可用 (System.* 包)

我猜你已经读过微软的Introducing .NET Core。

关于您对指定特定框架的担忧是因为目前,并非所有内容都适用于 Core CLR,因此您必须选择使用哪一个,或者您可以同时针对两者并使用不同的实现。

截至目前,CORE 仅在 Windows 上运行; mono 框架没有实体框架的 SQLLite 提供程序,但它在 Core 上提供,因此您可以使用 InMemory 或 Azure EF 提供程序,并根据应用程序运行的环境进行选择。

正如 Scott Gu 在社区站立会议上所说,他们设想了一个没有单一框架或完整框架的未来,只有 Core,但如果发生的话,这将需要时间。

【讨论】:

【参考方案3】:

除了 David Fowler 对 NDC 演示文稿的评论(我相信)之外,我找不到原始来源,但 K Runtime 使用的 CoreCLR 实际上是 Silverlight 2 使用的 CLR 的转世。它被使用因为它很小并且设计为跨平台。这里有一些额外的信息:https://***.com/a/25720160/113225

【讨论】:

以上是关于.Net Full framework 和 K runtime 使用的 .Net Core Framework 4.5 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net core (Full .Net framework) vs Asp.Net core (.Net Core) 性能

如何安装.net framework 4

net framework怎么安装

Windows Server 2012 卸载.net framework 4.5

Net Framework 4.0 安装必须重启么

如何查看c#的版本.net framework