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

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

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

【问题讨论】:

    标签: asp.net .net asp.net-core


    【解决方案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 的功能如下:

      1. 运行时:

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

      1. 基类库:

      与 .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://stackoverflow.com/a/25720160/113225

        【讨论】:

          猜你喜欢
          • 2021-11-17
          • 2016-10-07
          • 2017-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多