美文网首页@IT·互联网
这些年让人“眼花缭乱”的.NET

这些年让人“眼花缭乱”的.NET

作者: Will的大食堂 | 来源:发表于2020-11-21 21:25 被阅读0次

最近IT届有个的热门事件,就是Python之父Guido van Rossum因为退休生活太无聊加盟微软搞开源。大佬果然还是闲不下来啊,我们向大佬“龟叔”致敬。

再看下面网友的评论,是不是对在Excel中使用Python有所期待?

说到微软,为了和Java抗衡,这几年微软的.NET的发展可谓是日新月异。最近,微软也发布了.Net的一个非常重要的版本.Net 5.0。

那么,.Net是什么?C#VB.Net和它又有什么关系?什么是.Net Framework? 后来微软又开源一个.Net Core,这又是什么鬼?带着这些问题和大家一起学习和梳理下微软这些年的.Net发展。

COM

我们先从COM(Componet Object Model)说起,在现在看来它算是一个古老的技术了,在《COM 原理与实现》一书中提到:

COM即组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用统一的方式进行交互。COM既提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖任何特定的语言,所以COM也可以是不同语言协助开发的标准。

COM通过这个接口规范,实现不同语言可以通过这个接口规范互相调用。假如我们用C++开发的代码要在VB中调用,或者VB开发的代码需要在C++中调用,这时我们就可以通过COM制作DLL动态库,通过接口可以调用其他语言DLL动态库里的程序。随着计算机技术的发展,COM明显不怎么活跃了,但是它的出现解决了不通语言之间不能互通的问题,在那个年代也算是一个伟大的技术。

在2002年,微软发布了.NET Framework,COM的时代宣告终结。

.NET Framework

.NET Framework是一个全新软件开发框架,一个用于软件集成的开发平台,它提供了两个非常核心的集成技术,一个是用于集成操作系统软件的公共语言运行库CLR(Common Language Runtime)。CLR为程序的执行提供一个托管(Managed)的执行环境,它是.NET Framework的执行引擎,为托管程序的执行提供内存分配、垃圾回收、安全控制、异常处理和多线程管理等服务。另一个是用于集成Internet范围的XML Web Service,XML Web Service是以XML消息作为数据的基本通讯方式,遵循其他Internet的标准,实现了在不同模块,不同设备之间的服务或应用互相操作,开启了分布式开发的新的方向。

在.Net Framework发布时也诞生了一种新的高级面向对象语言C#,不过,那个时候VB还是一个非常流行的开发语言,有大量的开发人员使用VB。微软为了推广自己的平台,不仅让熟悉C系列的开发人员适应和快速上手,同时也把VB加入了这个框架中,让熟悉VB的人也能轻松的在这个平台上开发。因此,.NET Framework是多种语言支持的,比如:C#,VB,JScript,J#等。但是不管是什么语言的源程序经过相应的编译器之后都会生成统一的中间代码,我们叫做公共中间语言(Common Interneduate Language),最后再生成机器语言。

编译过程

从2002年发布第一个版本,之后便马不停蹄的进行了很多次的版本更新和升级,每次快速的迭代更新都有着丰富的内容变化。2005年发布了2.0版本,引入了泛型,并增加了大量的类型。2006年发布了3.0版本,增加了WF、WCF、WPF这三大关键技术。2007年发布了3.5版本,这个版本有个非常重要的更新,支持了LINQ。2010年发布的4.0,为了适应新的应用和开发场景,加入了动态编程、并行计算、默认参数、协变和逆变等。2012年发布了4.5版本,这个版本包括任务的异步和等待,Zip压缩,正则表达式超时,优化配置文件提高启动性能,垃圾回收等五大特色功能。还有后面发布的4.6,4.7等高版本。

2016年,微软的.Net Core发布,从此,微软也走上了开源之路。

MONO

说起微软的.NET的开源进程,不可不提到Mono这个开源项目。在.NET诞生之初,只是考虑到将.NET跨语言,并没有考虑到将其跨平台化。毕竟,对于微软来说,自己本人拥有普及率极高的操作系统,也不希望为自己竞争对手的操作系统(Linux,MacOS等)做支持。在微软推出.NET之后,Ximian公司对.NET产生了浓厚的兴趣,于是主持并发起了Mono项目,将.NET在Linux上基于开放标准公共语言基础架构CLI-ECMA-335,实现了编译器和通用语言架构等一整套开发工具。我们在Mono的官网上可以发现下面这句话:

Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.

但是,Mono的发展一直处于不温不火的状态,虽然Ximian被Novell收购,但是一直在微软和SUN的夹缝之中生存。最后,在2016年,Ximian公司还是被微软收购了,将其整合到自己的系统框架中,并提供端到端和跨平台开发、测试以及交付等流程。

.NET Core

虽然.NET Core也是微软推出的.NET平台,它最初的目的并不是.NET Framework替代品,它们是微软两个不同的产品线。.NET Core是微软专门为了跨平台而推出的开源.NET平台,它可以在Windows、MacOS和Linux操作系统上运行,支持C#、VB.NET或F#等语言,可以开发Web,桌面,移动,云,游戏,物联网等应用程序。它和.NET Framework一样基于同样的标准基础库,实际上就是.NET Standard,微软发布了这么多.NET平台框架,为了保证系统的一致性,从而推出一个底层的标准库(NET Standard Library)。.NET Core和.NET Framework都在这套标准上实现自己的类库。

对于,最近发布的.NET 5.0就是.NET Core的升级,微软从3.1直接跳过了4.x版本,微软认为它将是最好的.NET平台,并简化了它的名称,它是未来发展方向,当然,你也可以叫继续它.NET Core。

.NET Core发展时间轴

.NET 5.0会有更加出色的性能,将.NET Framework、Mono、.NET Core、.NET standard统一起来,形成一个通用的平台,可以开发桌面应用程序、云端服务、网站、跨平台移动应用程序、游戏、物联网以及AI人工智能等。

.NET 5.0框架

最后

.NET的发展之路其实并不好走,尤其是java垄断了大部分市场多年,其地位是很难撼动的。就拿国内来说,几个大厂普遍采用Java作为主流开发语言,而且其项目框架也比较成熟,再切换成.NET平台也是不切实际的。不过,对于.NET Core这个轻量级的平台来说,确实也有着比较不错的性能和开发效率。这一点相信会受到广大工程师的喜欢,平时,拿它做个小程序或者demo也是个不错的选择。好用又免费谁不爱呢,还是希望.NET越走越远吧。

本文首发公众号:Will的大食堂,转载请联系微信:yuzaiduzhong。

相关文章

  • 这些年让人“眼花缭乱”的.NET

    最近IT届有个的热门事件,就是Python之父Guido van Rossum因为退休生活太无聊加盟微软搞开源。大...

  • 让人眼花缭乱的冰淇淋

    夏天最受人们欢迎的冷饮当数雪糕冰淇淋,尤其倍受年轻人喜爱。 在央视二台看了一期《消费主张》栏目里关...

  • 美丽的烟花

    正月十五的烟花,让人眼花缭乱

  • 让人眼花缭乱的无限继承

    Python语言的一个优势是简洁易用。是否简洁易用仅仅是Python语言本身的一个话题,但“好消息”是如果你想创造...

  • 让人眼花缭乱的自媒体

    近几年的自媒体很疯狂,网传自媒体好赚钱,众人一窝蜂地上。有朋友的孩子就做自媒体,据说收入颇丰,还来钱简单。...

  • 让人眼花缭乱的投资品

    投资品一共有5类 第一类:中间商赚差价,汇集资金再借给别人赚取中间利润,银行就是典型的这类。 第二类,无中间...

  • 当父母的注意,情商要从小培养

    情商这个概念是个舶来品,听说是由两位美国心理学家提出的。这些年很火,各类关于情商的书籍琳琅满目,让人眼花缭乱。 现...

  • 珠海安肽,帮你修复皮肤受损状态

    护肤美容对于爱美人士而言是一个永恒的话题,这些年美容类产品更是层出不穷。美容产品的花样也可以说是让人眼花缭乱,对于...

  • 进过你肚里的人生的才是你的

    女人不知生活的不易,去一趟菜市场就啥也懂了,这个季节的菜市场和超市让人眼花缭乱,同时让人眼花缭乱的还有菜价...

  • 贝贝钻钻让人眼花缭乱

    很久以前在简书日更了一段时间,有一点收入,但一直没放心上就放那里了。昨天突然心血来潮想把收入表现,于是看了下体现程...

网友评论

    本文标题:这些年让人“眼花缭乱”的.NET

    本文链接:https://www.haomeiwen.com/subject/hctyiktx.html