Mono 对 ASP.NET Web 窗体的支持的未来是什么?
What is the future of Mono's support for ASP.NET Web Forms?
如您所知,Microsoft 收购了 Xamarin,并且现在负责 Mono 的持续开发。此外,他们将在 11 月发布 .NET 5,这是 .NET Framework 的跨平台后续版本。他们说 ASP.NET Core 将是唯一的 ASP.NET 框架,他们正在放弃对 Web 窗体的支持。
发生这种情况时,Mono 框架是否也会放弃 Web 窗体,或者它们会继续发展?
When this happens, will the Mono framework drop Web Forms too, or will they continue to develop?
简短的回答是是的,他们也会放弃 Web 表单。您应该考虑弃用 Web 窗体 — 无论是在 .NET 5 还是即将发布的 Mono 运行 版本方面。您将继续能够 运行 在旧版本的 Mono 和 .NET Framework 上使用 Web 窗体 — 至少在您今天能够做到的范围内 — 但这种支持不会被带入未来的版本。
为了更好地理解这一点,了解 .NET 5、CoreBCL、CoreCLR 和 Mono 之间的关系很有用。这变得有点模糊,因为 CoreCLR 现在可以跨多个平台工作,因此与以前由 Mono 处理的大部分领域重叠。
在较高级别,.NET 5 将利用 newly unified .NET Core Base Class Library(或 .NET Core BCL)。该 BCL 将 替换 许多 class 以前由各种 .NET 实现(包括 Mono)处理的库。然而,Mono 将继续用作 .NET 5 的 运行time,在大小优先于性能的环境中,例如移动和 WebAssembly。相比之下,更快(但更大)的 CoreCLR 将(继续)用于其他环境,例如桌面和 Web 服务器应用程序。 .NET Core BCL 将在这些 运行 次中的 top 次上运行。
换句话说,在 .NET 5 中,不会像今天那样为 Mono 提供单独的 class 库。一切都将使用相同的基础 class 库。而且,最重要的是,您将拥有额外的 class 库,例如ASP.NET、WPF、Xamarin 等。这将完全独立于他们使用的运行time。因此,由于 ASP.NET Core 5 不支持 Web 表单,这意味着 Mono 也不支持,因为它们现在将使用完全相同的 class 库。
Miguel de Icaza on InfoQ 有一篇精彩的访谈值得一读,以便更好地理解 Mono 运行time 的方向及其与 .NET 5 的关系。(Miguel 是 Mono 的原作者,Xamarin 的联合创始人,并继续指导 Mono 开发。)它没有具体谈论 Web Forms,但很好地阐明了 Mono 和 .NET 5 之间的关系。
另一个答案。 "When this happens, will the Mono framework drop Web Forms too, or will they continue to develop?"如果要放弃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核心.
Xamarin 的兴起和微软的收购极大地改变了 Mono 的格局,因此 Xamarin 产品(Mono CLR 和 BCL)使用的所有东西都在不断更新,其他东西(包括 MonoDevelop、GTK#、XSP 和 ASP.NET WebForms)被抛在后面。由于只有 Mono CLR 被转移到 .NET 5,这可以看作是 Mono 的结束。
当然,开源项目不会轻易消亡。例如,自 2020 年 2 月以来,MonoDevelop 已经停产,但一直有一群人试图复活它(包括我)。但是 Mono 能走多远还不清楚,也不可靠。
Miguel 目前对未来持乐观态度,但并不是每个人都这么认为。
如您所知,Microsoft 收购了 Xamarin,并且现在负责 Mono 的持续开发。此外,他们将在 11 月发布 .NET 5,这是 .NET Framework 的跨平台后续版本。他们说 ASP.NET Core 将是唯一的 ASP.NET 框架,他们正在放弃对 Web 窗体的支持。
发生这种情况时,Mono 框架是否也会放弃 Web 窗体,或者它们会继续发展?
When this happens, will the Mono framework drop Web Forms too, or will they continue to develop?
简短的回答是是的,他们也会放弃 Web 表单。您应该考虑弃用 Web 窗体 — 无论是在 .NET 5 还是即将发布的 Mono 运行 版本方面。您将继续能够 运行 在旧版本的 Mono 和 .NET Framework 上使用 Web 窗体 — 至少在您今天能够做到的范围内 — 但这种支持不会被带入未来的版本。
为了更好地理解这一点,了解 .NET 5、CoreBCL、CoreCLR 和 Mono 之间的关系很有用。这变得有点模糊,因为 CoreCLR 现在可以跨多个平台工作,因此与以前由 Mono 处理的大部分领域重叠。
在较高级别,.NET 5 将利用 newly unified .NET Core Base Class Library(或 .NET Core BCL)。该 BCL 将 替换 许多 class 以前由各种 .NET 实现(包括 Mono)处理的库。然而,Mono 将继续用作 .NET 5 的 运行time,在大小优先于性能的环境中,例如移动和 WebAssembly。相比之下,更快(但更大)的 CoreCLR 将(继续)用于其他环境,例如桌面和 Web 服务器应用程序。 .NET Core BCL 将在这些 运行 次中的 top 次上运行。
换句话说,在 .NET 5 中,不会像今天那样为 Mono 提供单独的 class 库。一切都将使用相同的基础 class 库。而且,最重要的是,您将拥有额外的 class 库,例如ASP.NET、WPF、Xamarin 等。这将完全独立于他们使用的运行time。因此,由于 ASP.NET Core 5 不支持 Web 表单,这意味着 Mono 也不支持,因为它们现在将使用完全相同的 class 库。
Miguel de Icaza on InfoQ 有一篇精彩的访谈值得一读,以便更好地理解 Mono 运行time 的方向及其与 .NET 5 的关系。(Miguel 是 Mono 的原作者,Xamarin 的联合创始人,并继续指导 Mono 开发。)它没有具体谈论 Web Forms,但很好地阐明了 Mono 和 .NET 5 之间的关系。
另一个答案。 "When this happens, will the Mono framework drop Web Forms too, or will they continue to develop?"如果要放弃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核心.
Xamarin 的兴起和微软的收购极大地改变了 Mono 的格局,因此 Xamarin 产品(Mono CLR 和 BCL)使用的所有东西都在不断更新,其他东西(包括 MonoDevelop、GTK#、XSP 和 ASP.NET WebForms)被抛在后面。由于只有 Mono CLR 被转移到 .NET 5,这可以看作是 Mono 的结束。
当然,开源项目不会轻易消亡。例如,自 2020 年 2 月以来,MonoDevelop 已经停产,但一直有一群人试图复活它(包括我)。但是 Mono 能走多远还不清楚,也不可靠。
Miguel 目前对未来持乐观态度,但并不是每个人都这么认为。