对.NET跨平台的随想
2015-01-28 21:11
197 查看
是在魅力 .NET:从 Mono、.NET Core 说起这篇博文的评论中写的,在此记录一下:
.NET Core CLR是技术含量最高,但却是最容易实现跨平台的。因为微软的CLR是C或C++写的,没有GUI,对Win32 API依赖很少,JIT与GC的代码估计都是从头写的。跨平台只需要将CLR的C/C++代码拿到其他平台上重新编译,然后改改就行了。可以说跨平台的.NET Core CLR已经就位,现在大家只是等微软开源出来取取经,真正能为CLR贡献代码的人少之又少。
.NET Core Framework(跨平台的.NET基础类库)就完全不一样了,虽然微软手上也有,但却是.NET Framework基础类库的严重阉割版,只要对Windows有依赖的类库都得干掉。而.NET平台有三件宝:第1个是C#语法,这是天生跨平台的;第2个是Visual Studio,这是天生不能跨平台的;剩下的就是.NET Framework基础类库。如果.NET Framework基础类库不能跨平台,没人鸟.NET的跨平台。所以微软手上的.NET Core Framework只是个摆设,微软不得不投入大量精力去开发全新的.NET Core Framework(就是现在github上的corefx),一边将.NET Framework中有用的代码搬过来,一边根据跨平台的需求重新实现,看看corefx中System.Console的实现代码就能一窥端倪。这才是.NET跨平台的最大障碍,由此也可以看出.NET基础类库的重要性。所以要了解.NET跨平台的进展,只要看corefox的开源代码就行了。
.NET Core CLR是技术含量最高,但却是最容易实现跨平台的。因为微软的CLR是C或C++写的,没有GUI,对Win32 API依赖很少,JIT与GC的代码估计都是从头写的。跨平台只需要将CLR的C/C++代码拿到其他平台上重新编译,然后改改就行了。可以说跨平台的.NET Core CLR已经就位,现在大家只是等微软开源出来取取经,真正能为CLR贡献代码的人少之又少。
.NET Core Framework(跨平台的.NET基础类库)就完全不一样了,虽然微软手上也有,但却是.NET Framework基础类库的严重阉割版,只要对Windows有依赖的类库都得干掉。而.NET平台有三件宝:第1个是C#语法,这是天生跨平台的;第2个是Visual Studio,这是天生不能跨平台的;剩下的就是.NET Framework基础类库。如果.NET Framework基础类库不能跨平台,没人鸟.NET的跨平台。所以微软手上的.NET Core Framework只是个摆设,微软不得不投入大量精力去开发全新的.NET Core Framework(就是现在github上的corefx),一边将.NET Framework中有用的代码搬过来,一边根据跨平台的需求重新实现,看看corefx中System.Console的实现代码就能一窥端倪。这才是.NET跨平台的最大障碍,由此也可以看出.NET基础类库的重要性。所以要了解.NET跨平台的进展,只要看corefox的开源代码就行了。
相关文章推荐
- 跨平台的.NET集成开发环境:MonoDevelop
- 跨平台的.NET运行环境Mono 3.2 发布
- 跨平台的.NET运行环境 Mono 3.2发布
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析
- .NET跨平台实践:再谈用C#开发Linux守护进程 — 完整篇
- Ubutu+Apache+Mono 实现.net开发的网站跨平台移植
- .NET 跨平台界面框架和为什么你首先要考虑再三
- .NET跨平台之Sake和KoreBuild
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
- 跨平台的.NET集成开发环境:MonoDevelop
- 在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验
- 跨平台的 .NET 运行环境 Mono 3.2 新特性
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [五] 如何做全站采集?
- Novell 发布Mono 1.2 推动.NET跨平台
- 【C#】.NET技术的发展及其跨语言和跨平台特性
- iNET,能实现.NET项目跨平台运行?
- .NET 跨平台服务端资料
- .NET跨平台之旅:corehost 是如何加载 coreclr 的 企
- Novell 发布Mono 1.2 推动.NET跨平台