不要奢望.NET能够跨平台
有人跟我说了这么一件事。他们公司做机顶盒开发,原来是Windows XP + .NET作的,但是由于机顶盒免费赠送给客户的,而一个Windows XP需要88美金,因此成本翻倍。公司高层最终不愿意花这一笔钱,就迁移在Linux是用Mono重新实现一遍所有的功能,但是在开发过程中遇到了种种问题,频繁出现死机现象。
我听了觉得十分好笑,竟然有人还把.NET能够跨平台当真一回事,可谓智商无下限!
微软的.NET只有很小一部分提交给了ECMA,而其他部分的API,你可以认为是Windows API高级版。而且微软把.NET当作Windows API高级版的意图也越来越明显。
例如线程方面吧,System.Threading命名空间下的AutoResetEvent、ManualResetEvent、Overlapped等等,都只是Windows API的封装而已。Java的线程框架是自成体系,而.NET不是。
微软的资源也不是无限的,微软也应付不了整个类库的重新设计。语言规范、虚拟机作得十分优秀,但是应用层类库,很多部分,都出现了一些问题,简单封装Windows API,缺乏设计,包括System.Security.Cryptography、System.Net等部分。
.NET就如同当年的MFC一样,很多类库都是Windows API的封装,不是自成体系的框架,不了解Windows API,就不大可能会使用,同时,要移植到其他平台上,也是极其艰巨的任务,除非你能够在其他平台下实现了一套Windows API。
Novell公司的Mono是一个笑话。把.NET迁移到Linux下,就如同要把MFC迁移到Linux下一样可笑。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2006-04-24 [读书体会]善感性与道德