百科问答小站 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拼场景




  

相关话题

  Facebook 为什么不用 .NET? 
  为什么很多人都说使用微软技术的公司是小公司?是不是微软的技术入门简单? 
  如何动态加载dll并继承该类? 
  如何评价Jexus V5.8.0 发布被人砸场? 
  C#的Lambda表达式捕获变量疑问? 
  C#能分配内存连续的引用类型数组吗? 
  求助,大一学Java还是C#? 
  为什么windows7不能安装iis8? 
  为什么叫.NET?它和C#是什么关系? 
  为什么C#中型变不能直接修饰在类定义上? 

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





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