.net能不能跨平台?
2013-09-04
展开全部
确定的说是可以跨平台的,但是支持性不是很好,还有你要线明白什么是真正意义上的跨平台,比如让.net运行在Linux下,看看这是别人说的
不要奢望.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下一样可笑。
不要奢望.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下一样可笑。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询