【问题标题】:What's the difference between Cloud Optimized ASP.Net vNext and the regular version?云优化的 ASP.Net vNext 和普通版有什么区别?
【发布时间】:2014-10-01 04:41:58
【问题描述】:

我对最近围绕 ASP.Net 平台、单声道和开源的发展感到非常兴奋,我想开始开发也可以在 Linux 服务器上运行的应用程序(我希望主要是用于移动应用程序的 API,但也包括完整的网站) .所以我正忙于安装所有东西、编程和阅读,但作为旁注我一直碰到的一件事是,你可以在 Mac OS X 和 Linux 上运行的 ASP.Net 堆栈具有简化的框架,例如在this MSDN blog .

在 .NET vNext 上(云优化)

....

使用一组较小的框架库

我想知道它的全部含义是什么,特别是对于创建网页或 API 的特定目的。哪些库不可用,哪些可用?

【问题讨论】:

  • 这将与 vNext 的发展和方向及其成熟度有关。它现在只是处于婴儿阶段。随着它成熟到可发布状态,这甚至可能不再是一个问题。甚至在此之前,我想这个问题的任何可能答案都会因开发的活跃状态而在任何给定时间有所不同。
  • 这最终归结为 Mono 支持将被支持?不会在一个永远不支持而另一个可用的库之间划清界限吗?
  • 好吧,云优化!= Mono。云优化和常规之间的核心区别在于,后者需要在机器上安装 .NET Framework 并在 IIS 中运行,而前者需要与它打包并自托管的 .NET Framework 的各个部分。对于那些封装的组件是否使用 Mono 是次要的。不过,据我了解,云优化和常规之间应该没有功能上的区别。同一个应用应该能够以任何一种方式运行。

标签: asp.net asp.net-mvc linux mono asp.net-core


【解决方案1】:

ASP.NET vNext(Web 框架堆栈)基本上与云优化运行时无关,它只是另一个可以运行的运行时。

传统上,.NET CLR 是在机器范围内安装的,更新它很痛苦,因为它基本上会影响每个应用程序,这意味着许多开发人员都被旧的 CLR/.NET 框架所困。

这就是他们引入云优化运行时(或 CoreCLR)的原因,它具有诸如 xcopy 可部署和更轻量级等优点。您使用 NuGet 包仅获取您需要的库,其中甚至包括诸如 System.Console 之类的内容。

因此,最终,像 MVC 或 SignalR 这样的 ASP.NET vNext 框架将在这些运行时上运行(Microsoft 会对它们中的每一个进行测试以确保它们正常工作):

  • 桌面 CLR(多年以来我们都知道的同一个)
  • 单声道
  • 云优化/CoreCLR(新事物,虽然基于他们使用 Silverlight 所做的工作)

云优化运行时仅适用于 Windows,它在 Linux/OSX 上没有多大意义,因为 Mono 已经为您提供了 xcopy-deployability 等大部分好处。唯一的问题是从功能完整性的角度来看,但正如我之前所说,微软将在 Mono 上进行测试以确保它在那里工作得很好。

来源:https://github.com/aspnet/Testing/issues/34http://alxandr.me/2014/06/24/new-blog-vnext-and-some-runting/

11 月 4 日更新: 添加另一个来源,以澄清有关 Linux 上 CoreCLR 的困惑:在 11:45 的最新站立会议 (https://www.youtube.com/watch?v=2oafQVI4Lx4#t=706) 中,Damin Edwards 说:

CoreCLR 在 Windows 上运行。在 Linux 上,您使用 Mono。

11 月 13 日更新: 微软刚刚开源了 .NET Core 并宣布将其移植到 Linux/Mac:http://www.hanselman.com/blog/AnnouncingNET2015NETAsOpenSourceNETOnMacAndLinuxAndVisualStudioCommunity.aspx

【讨论】:

  • 感谢您的回答,看起来很完整。一旦我阅读了更多内容以进行验证,我将立即接受它。所以云这个词可能也有点营销驱动?
  • 云这个词可能仅用于营销原因,是的。没有什么可以限制 CoreCLR 在普通 Windows 机器上运行,而不是在 Azure 上运行。
  • .net 框架博客说,Mono 仅对基于云的变体“启用”:blogs.msdn.com/b/dotnet/archive/2014/05/12/…(向下滚动到比较表)。相当混乱
  • 不过,“Cloud Optimized CoreCLR”一词似乎暗示它针对桌面的优化不如针对云的优化(它的主要关注点不是桌面)。这让人想起“客户端 Java 运行时环境”与“服务器 Java 运行时环境”。您可以将 Sever JRE 用于桌面应用程序,但它不是最优的(例如,因为内存占用和启动时间)。
  • @bitbonk ASP.NET5(以及 CoreCLR,因为这是目前的主要驱动程序)的焦点是服务器环境,这是正确的,所以可能会有一些细微的差异,但我怀疑它们会很明显。 (例如,您仍然可以对您的程序集进行 NGEN 以消除启动时的任何 JIT 延迟)。
猜你喜欢
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 2011-02-25
  • 1970-01-01
相关资源
最近更新 更多