2

如您所知,Microsoft 收购了 Xamarin,并且现在负责 Mono 的持续开发。此外,他们将在 11 月发布 .NET 5,这是 .NET Framework 的跨平台继任者。他们说 ASP.NET Core 将是唯一的 ASP.NET 框架,并且他们正在放弃对 Web 窗体的支持。

当这种情况发生时,Mono 框架是否也会放弃 Web 表单,还是会继续开发?

4

2 回答 2

3

当这种情况发生时,Mono 框架是否也会放弃 Web 表单,还是会继续开发?

简短的回答是肯定的,他们也会放弃 Web 表单。您应该考虑弃用 Web 表单——无论是在 .NET 5 还是即将推出的 Mono 运行时版本方面。您将继续能够在传统版本的 Mono 和 .NET Framework 上运行 Web 窗体(至少在您现在能够做到的范围内),但这种支持不会被带到未来的版本中。


为了更好地理解这一点,了解 .NET 5、CoreBCL、CoreCLR 和 Mono 之间的关系很有用。这变得有点模糊,因为 CoreCLR 现在可以跨多个平台工作,因此与以前由 Mono 处理的大部分领域重叠。

在高层次上,.NET 5 将利用新统一的 .NET Core 基类库(或.NET Core BCL)。该 BCL 将取代以前由各种 .NET 实现(包括 Mono)处理的许多类库。然而,在大小优先于性能的环境中,例如移动和 WebAssembly,Mono 将继续用作 .NET 5 的运行时。相比之下,更快(但更大)的 CoreCLR 将(继续)用于其他环境,例如桌面和 Web 服务器应用程序。.NET Core BCL 将在这些运行时之上运行。

换句话说,在 .NET 5 中,不会像今天那样为 Mono 提供单独的类库。一切都将使用相同的基类库。而且,除此之外,您还将拥有其他类库,例如 ASP.NET、WPF、Xamarin 等。这将完全独立于他们使用的运行时。结果,由于 ASP.NET Core 5 不支持 Web 窗体,这意味着 Mono 也不支持,因为它们现在将使用完全相同的类库。

InfoQ 上有一篇对 Miguel de Icaza的精彩采访,值得一读,以更好地了解 Mono 运行时的方向以及它与 .NET 5 的关系。(Miguel 是 Mono 的原作者,Xamarin 的联合创始人,并继续直接Mono开发。)它没有专门讨论Web Forms,但很好地阐明了Mono和.NET 5之间的关系。

于 2020-05-06T22:44:01.333 回答
3

另一个答案。“当这种情况发生时,Mono 框架是否也会放弃 Web 表单,还是会继续开发?” 如果要放弃 Mono,那么您的问题可能会变得完全无效。

回滚到 200 倍。Mono 最初确实支持 ASP.NET WebForms,但那时 ASP.NET 1.x/2.x/3.x 很容易克隆,Mono 团队在其他部分几乎没有什么可做的。我个人认为那是 ASP.NET 在 Mono/Linux 上的黄金时期。然而,当 ASP.NET 4.x 带来许多重要的变化(异步模型等)时,差距开始出现,而且许多从未被填补(因为团队将注意力转移到移动平台上)

我不知道你今天是如何在 Mono 上使用 WebForms 应用程序的,但如果你是一个认真的用户,你可能已经遇到了很多问题,并且知道情况有多困难。因此,您不应真正将 Mono/Linux 视为运行 WebForms 应用程序的生产级环境,而应回到 .NET Framework/Windows,或完全迁移到 ASP.NET Core

Xamarin 的兴起和微软的收购极大地改变了 Mono 的格局,因此 Xamarin 产品(Mono CLR 和 BCL)使用的所有东西都在不断更新,其他东西(包括 MonoDevelop、GTK#、XSP 和 ASP.NET WebForms)也在不断更新。被留下来。由于只有 Mono CLR 被转移到 .NET 5,这可以看作是 Mono 的终结。

当然,开源项目不会轻易消亡。例如,从 2020 年 2 月开始,MonoDevelop 已经停产,但有一群人试图复兴它(包括我)。但是Mono 能走多远还不清楚也不可靠

米格尔目前对未来持乐观态度,但并非所有人都这么认为

于 2020-05-07T04:44:30.637 回答