百科问答小站 logo
百科问答小站 font logo



为什么.NET 团队在支持AOT上这么拉胯? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

事实上与这些人不同的是我反对加强AOT支持!

加强AOT支持不仅仅会分散团队的注意力,更重要的是,AOT兼容性很可能阻碍C#语言的进一步发展。如果过于关注AOT支持,有可能让C#开发团队在引入新的特性时过于顾及AOT的影响。


更何况,随着C#语言的演进,支持AOT的部分必然会分化出一个语言子集出来,这进一步增加了复杂度……


user avatar   eflay 网友的相关建议: 
      

nativeaot这种东西要想好好用,得有另一个生态,这个生态里的类库都是为aot准备的,他们已经为aot做好了配置,aot友好,然后没有ilemit等特性,也就是说以往很多实用类库都不再能使用,得出另一个版本。这意味着也就做做小工具方便,对企业级应用来说永远不会比有jit方便,不如无依赖编译。

nativeaot好处是可以让程序脱离il代码,急剧增加破解难度,比无依赖编译显著减小体积,加快启动速度,做做小工具还是可以的

虽然很多部署人员喜欢体积小无依赖,都已经有docker了居然还这么懒。。。诶

所以你看go很多特性是没有的,不知道go将来可以在aot下做到什么程度,但特性肯定要比.net的jit差的远,而.net一开始也没有为aot考虑过什么,特性太多导致支持困难。



目前看起来表达式树也基本支持了,不过可能还不够完整,得各个包的作者积极配合进行自查,大多数作者还没搞清楚rd.xml怎么配置呢吧,我也没搞清楚,如果目前支持的功能都没什么问题了,那么大多数包还是可以支持到项目的,使用的范围会比想象的大一些,态度也会从小工具自己用着玩,变成稍微正经点的软件也能用了,只不过自己以为用了个轻量级的dapper的人,反而搞不了aot,用了efcore这种给人感觉比较重的,反而可以aot,freesql是使用表达式树的,插入数据可以,查询数据我跑不通,只能等以后研究了。

如果wpf不能用有些可惜


要说需求的话,aot多少也是有硬需求的,这也是很多地方选go的原因,现在的很多人就以go这种形态为方便的标准。还有就是我上面列的优点适合小工具。

要说没需求吧,像我个人更喜欢依赖运行时,这样子给出的dll能直接跨平台部署让运维去搞不好么,或者说做成docker了和aot也没啥关系了,确实没必要和go拼场景




  

相关话题

  (PHP、.net、JSP)哪一只能实现花生壳的功能? 
  同事离职,我接盘了个垃圾项目,该如何是好? 
  为什么听说过 JVM 调优,却没听说过 CLR 调优? 
  asp.net MVC 和Web Form 相比各有什么优缺点? 
  你在阅读.NET/C#开源项目源码的时候见过哪些高级写法? 
  微软的.NET战略是不是已经失败了? 
  为何我感觉 Visual Studio 很难用? 
  Java 8 的 stream API 和 C# 的 LINQ 哪个更慢? 
  .NET 平台中有很多 BS 框架,能介绍一下他们之间的关系和实用价值吗? 
  .NET CLR怎么保证执行正确的unsafe代码不挂掉? 

前一个讨论
C# ConcurrentQueue 怎么长时间循环取任务?
下一个讨论
.NET 6 的预览特性"new generic math" 对.net 数值计算 能带来什么影响?





© 2025-05-06 - tinynew.org. All Rights Reserved.
© 2025-05-06 - tinynew.org. 保留所有权利