gpt4 book ai didi

.net - .NET Core 中没有 AppDomain!为什么?

转载 作者:行者123 更新时间:2023-12-02 14:18:15 25 4
gpt4 key购买 nike

Microsoft 选择不在 .NET Core 中支持 AppDomains 是否有充分的理由?

在构建长时间运行的服务器应用程序时,AppDomain 特别有用,我们可能希望以一种优雅的方式更新服务器加载的程序集,而无需关闭服务器。

如果没有 AppDomains,我们如何在长时间运行的服务器进程中替换程序集?

AppDomains 还为我们提供了一种隔离服务器代码不同部分的方法。例如,自定义 Websocket 服务器可以在主应用程序域中拥有套接字代码,而我们的服务在辅助应用程序域中运行。

如果没有 AppDomains,上述场景是不可能的。

我可以看到一个论点,它可能讨论使用云的虚拟机概念来处理程序集更改,而不必承担应用程序域的开销。但这是微软的想法或说法吗?或者他们对上述情况有具体的原因和替代方案?

最佳答案

.NETCore 子集的目的是保持 .NET 安装。并且易于移植。这就是为什么您可以在 Windows 和 OSX 上运行 Silverlight 应用程序,并且在访问网页时无需等待很长时间。下载并安装完整的运行时和框架需要几秒钟的时间,或多或少。

保持规模较小不可避免地需要削减功能。远程处理在该列表中名列前茅,但它相当昂贵。否则隐藏得很好,但是您可以看到委托(delegate)不再具有功能性 BeginInvoke() 方法。这也将 AppDomain 列入了剪切列表,如果没有远程支持,您将无法在应用程序域中运行代码。所以这完全是设计使然。

关于.net - .NET Core 中没有 AppDomain!为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27266907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com