本文来考古一下 dotnet 发布过的版本,相信本文里面有很多个版本都是大家很少听过的

什么才能称为一个 dotnet 版本?从 .NET Framework 1.0-4.8 算多少个版本?其实我这里说的版本指的是不同的实现,我将整个 .NET Framework 算作一个版本。而将 .NET 的不同的分支,分别作为不同的版本

下面列举一下 dotnet 的不同版本

.NET Framework

这大概就是咱最熟悉的一个 dotnet 实现版本,从 2002 年发布到现在,当前最新是 .NET Framework 4.8 版本

.NET Core

这是 dotnet 的里程碑,作为完全开源的,基于 MIT 协议的实现版本,从构建到运行时完全开源

这也是跨平台版本的 dotnet 实现版本,可以在多个平台运行。相信有关注技术的开发者都对 .NET Core 非常熟悉

.NET

当前的 dotnet 主实现版本,从 .NET 5 开始,官方将定 .NET 作为主版本。将原有的 .NET Core 等版本合入在一起,放在一个仓库进行开发

当然,如果强行说 .NET 合并了 .NET Core 和 .NET Framework 和 Mono 等实现版本,这也不算全错,也不能说对。可以认为 .NET Core 和 .NET Framework 等实现版本的下一代就是 .NET 版本

Mono

这是 dotnet 跨平台的先锋,这是一个完全独立、跨平台的CLI实现。当前也合入到 .NET 主版本

据说 Unity3D 里面有基于 Mono 维护过一个自己的版本,但只是据说哈

在 Blazor 预览版本,也有基于 Mono 实现的 WASM 版本,当前这个版本合入到 .NET 版本

WinRT

这是在微软通用平台开发概念提出写的框架,本质上说,这不算是一个 .NET 的实现版本,当前这个 WinRT 依然在维护中,可以通过 NuGet 在 .NET Core 和 .NET 5 使用。通过 WinRT 可以访问现代化的 Windows 系统的功能

.NET Native

这也是 .NET 的很特殊的实现版本,大多数的 .NET 实现版本,在构建阶段都是将 C# 等代码构建为 IL 代码,在运行时进行翻译为本机代码。而 .NET Native 是将 IL 构建为本机代码,让 C# 代码一步生成为本机代码的实现。提供了很快的启动性能,以及减少运行时的资源占用。此实现当前依然在开发中。通过 .NET Native 技术可以压缩发布文件体积,减少环境依赖

如果将 .NET Native 算作 .NET 的一个实现版本,那么 CrossGen 和 CrossGen2 也可以算做 .NET 的一个实现,这两个实现是前后继承的关系,在 .NET 6 准备开始切为 CrossGen2 实现,使用 CrossGen2 可以提供在开发者构建时,将一部分逻辑提前加上本机代码构建,用来提升启动性能

IL2CPP

本质上说这勉强能算 .NET 的一个实现版本,此版本和 .NET Native 在功能上基本重叠。在 Unity3D 上大量采用 IL2CPP 技术

以上就是大部分开发者熟悉的版本,下面是一些大家很少听过的版本

Rotor

也是 Shared Source CLI 版本,这是基于教育和学术的目的开放的版本,在 2002 年发布的版本。这不是一个用来做商业软件的版本,只是让开发者了解 CLR 细节的版本

.NET Compact Framework

从 Windows CE 和 Windows Mobile 到 Xbox 360 都有使用过这个版本,这是 .NET 的移动端开始的版本。可以认为 .NET Core 的跨平台就起源在这里,在 .NET Core 有很多代码和实现都从这里拿到

另一个移动版本是 Windows Phone 7.x,Windows Phone 8.x 和 Windows 10 移动版。在 Windows Phone 7.x 是基于 .NET Compact Framework 3.7 的逻辑,而在 Windows Phone 8.x 就基于 .NET Framework 4.5 构建和更改

Silverlight

这是 .NET 的浏览器开发的开始,是 Web 浏览器插件。在 .NET Framework 2.0 时代开始开发。也被移植到了OSX平台,而 .NET Core 对 OSX 的支持也从这里拿到一些逻辑

提到 SL 这个框架,在这个框架的时代就是 .NET 最黑暗的时代,不过好在现在有 .NET Core 重新撑起来

.NET Micro Framework

这是给 IOT 等设备准备的开源独立版本,这个版本是最特殊的 .NET 实现版本

Itanium

其实这个版本我没有考古到名字,这是为 Itanium 处理器特别构建的版本,后面被合入到 .NET Framework 主版本

本文考古内容参考了很多文档,特别感谢 伟民哥翻译的 《.NET内存管理宝典 - 提高代码质量、性能和可扩展性》 这本书提供的详细参考

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

考古 dotnet 的不同版本相关推荐

  1. Dotnet Core多版本API共存的优雅实现

    API升级,新旧版本的API共存,怎么管理呢?   一.前言 最近,单位APP做了升级,同步的,API也做了升级. 升级过程中,出现了一点问题:API升级后,旧API也需要保留,因为有旧的APP还在使 ...

  2. .net Framework各个版本之间的发展

    原文:.net Framework各个版本之间的发展 上个星期看到了.NET 4.0框架退休日期逐渐临近文章,发现自己一直在使用NET  FrameWork,身为一个NET程序员,里面大概的区别自己还 ...

  3. 温故知新,.Net Core遇见WinForms客户端窗体框架,在DotNet Core大一统基础上老树发芽...

    什么是WinForm https://docs.microsoft.com/zh-cn/dotnet/desktop/winforms Windows窗体(Windows Form),简称WinFor ...

  4. 聊聊 dotnet 7 对 bool 与字符串互转的底层性能优化

    本文也叫 跟着 Stephen Toub 大佬学性能优化系列.大家都知道在 .NET 7 有众多的性能优化,其中就包括了对布尔和字符串互转的性能优化.在对布尔和字符串的转换的性能优化上,有着非常巧妙的 ...

  5. sparkcore分区_Spark学习:Spark源码和调优简介 Spark Core (二)

    本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正.为了简化论述,将部分细节放到了源码中作为注释,因此正文中是主要内容. 第一部分内容见: S ...

  6. Reflector for net用法 .

    我用的版本是4.1.84.0,以,把自己编写DLL反编译了一下,反编译后的代码除了变量名不同外,其它基本上是一至的,我把反编译后的代码导到相关的文件里(要用到插件),再用vs.net编译,全部通过,真 ...

  7. 强大的.NET反编译工具Reflector及插件(转载)

    刚接触.net 时就听说 Reflector这个强大反编译工具呢,只是一直没有去使用他. 本来本人对新鲜事就非常有兴趣,听他这么一说.决定试一试这个传说中的工具. 今天有空就用了一下. 我用的版本是4 ...

  8. Spark源码和调优简介 Spark Core

    作者:calvinrzluo,腾讯 IEG 后台开发工程师 本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正.为了简化论述,将部分细节放到了 ...

  9. Microsoft Teams的Outgoing Webhook开发入门

    Microsoft Teams的应用程序有几种形式: Tabs Bots Connectors Messaging extensions Activity feed integrations Outg ...

最新文章

  1. 【核心API开发】Spark入门教程[3]
  2. [C++调试笔记]推动粒子move.cpp
  3. boost::hana::any用法的测试程序
  4. Linux-Android 修改屏蔽长按键功能
  5. 原理 msc_计算机网络原理梳理丨无线与移动网络
  6. php weize_docs.html
  7. 像写C#一样编写java代码
  8. BZOJ3571 [Hnoi2014]画框 【分治 + KM算法】
  9. grub rescue
  10. android旅游视频播放,VPlayer视频播放器
  11. 暗黑模式?安卓适配一波
  12. 蓝队在攻防比赛中常用的防护手段汇总
  13. 描述计算机内存的参数,电脑组装内存知识,你不能不知的内存参数介绍
  14. PTA 6 循环日程表
  15. nodejs控制台打印图案
  16. 前端 数组转字符串,字符串转数组
  17. 大数据应用分析解决方案----图书出版
  18. 物联网学习笔记(一)
  19. 人大金仓 创建表空间_Kingbase金仓更改表空间
  20. 小学五计算机课程安排,小学五年级信息技术教学计划

热门文章

  1. 中国历朝地图[11P]
  2. php获取谷歌地图gps定位,谷歌地图 API 开发之获取当前坐标(经纬度)
  3. win8服务器系统教程,win8连接远程服务器教程
  4. C#解冻Windows UI界面的方法的代码
  5. C++计算三角形面积
  6. 各种边距clientWidth、offsetWidth、scrollWidth、clientLeft、getBoundingClientRect详解
  7. Nifti1文件格式
  8. findbugs html报告,利用findBugs插件来扫描代码,并用ant生成报告
  9. 教育项目--阿里云视频点播【34】
  10. Java:并发不易,先学会用