【天天速看料】NET是什么?netFramework是一个品牌商标推出的?

发布时间:   来源:CSDN  

.NET这个名字起名的渊源年轻一点的开发者可能还真不了解。C#是语言相对好理解一些,但.net确实让不了解的人感觉抓不住重点。要摊开讲其实要加一点历史背景。

.NET是在2002年推出的,当时这是作为一个品牌商标推出的,在推出时,在.NET品牌旗下一并推出的,有好多个产品,而并不是特指某种特定产品。而发展到现在,.NET已经不再是一个品牌,而是退化成为表示.net Framework的运行时或SDK了。

先谈谈历史背景。在2000左右的时间, 互联网概念刚刚兴起,各大网站雨后春笋一般出现。在这个时代,一切技术都在向互联网靠拢。MS为了顺应这个潮流,准备搞新一代的开发环境和相应的技术解决方案,为了抓眼球提出了“新一代互联网”的概念。为了给概念一个实际的解决方案,微软决定推一个响当当当的品牌,然后围绕这个品牌推出一系列的产品,以形成一整套的解决方案。至于这个品牌的命名,当时有几种说法:


(相关资料图)

第一种说法:当时认为".com"为当代互联网的代表,因为一切都是给".com"的网站服务的,新生的互联网公司都把自己的网址作为自己最吸引人的标签,甚至从业人员都以把名片上印上例如http://abc.com之类的域名为荣。".com",俨然成为业界时髦。而根据域名后缀的分类,".com"代表的是corporation,还是传统意义的公司。而另一个著名的tld ".net",才是代表互联网的域名,所以微软就灵机一动推出一个新品牌".net"代表为新一代互联网服务的产品集合,以用来宣传当时的全套微软新产品。微软把旗下一揽子产品都用上了这个品牌。

第二种说法:当时微软的产品都以COM的方式提供接口,而新一代的API其实是把COM封装起来又构建了一层,COM+的名字当时已经作为了COM的新一代,总不能叫COM++,那就COM改NET了。

还有几种流传下来的说法是NET其实是某种缩写,实际上已经不可考了。

.NET的品牌推的时候其实是力度很大的,然而几年之后并没有被人彻底接受,也不知是名字的锅还是其他原因。这个品牌也就没有作为整体战略继续坚持,品牌名下不同产品在后来的岁月中有不同的表现和演化:

最核心的运行库框架叫.Net Framework,它提供了新一代的面向互联网开发的API和相应SDK,终极目标是替换掉Win32 API,然而到现在也没替换掉。开发工具叫Visual Studio .Net(就2002和2003这2代VS带了这个后缀,随后的Visual Studio就把.NET去掉纯粹以年份命名)。一门全新的编程语言Visual Basic .Net。其全面沿袭了Visual Basic的语法,但是只能跑在.Net Framework这个运行时之上。愿意是吸引庞大的VB开发者,但是实际上是一个除了语法像VB但完全不兼容旧VB的新语言。这货虽然奇葩,但是确实起到了作用,至今http://VB.Net在TIOBE排行榜上仍然能占据第六名。用于互联网服务器端动态网页技术的叫http://ASP.NET,用来替换ASP这套玩意儿。这东西倒是发展到现在还没改名。最终发展到http://ASP.NET 5。 在很长一段时间内,它与PHP并列成为中小型动态网页项目的2大主流选择,当然后来被Java/JSP碾压而过。http://ASP.NET因为其优秀的开发环境和开发上手速度,至今仍跑在很多企业的内网服务器上,因为这部分客户精准但相对固定的需求,再加上企业的只要能用才不想做技术迭代的特点,让http://ASP.NET的使用者仍然众多。基本上,http://ASP.NET可以说是整个.net家族中实际应用最广泛的项目了。同时,万恶的web form也成为老一代开发者的噩梦。一套通用认证授权框架叫做.Net Passport。这套东西很超前,在非常早就提出了SSO的概念,它作为统一互联网入口的愿景也十分宏大,然而微软的互联网战略在那个年代被其它互联网公司吊打,这套认证产品的命运也最惨,光改名的次数就十分多。.Net Passport => Live ID => Windows Live ID => Microsoft Account。这里面的Live其实是微软后几年为互联网业务推的另外一个品牌,当然,也没有取得很大成功。这个 品牌下面的产品也像.NET一样也有很曲折的故事,例如MSN Messenger => Live Messenger => WLM => 并入Hotmail。说回.Net Passport,它现在唯一的存在感是在每次登录微软产品时闪过的http://login.live.com这个域名中。当然它的SSO的框架和理念已经早就在业界使用多年,只是没有作为微软的方式使用而已,微软自己的AAD其实也延续了这套东西,只是并非同一产品。

不管发展如何,这一套东西大家习惯于统称.NET技术。.NET一族发展了近20年,.Net Framework从1.0都发到了4.7,旗下语言和框架也有不少迭代,但是从现在看来它实在是有些跟不上时代了。由于历史负担太重,微软干了一件好玩的事:把它推到重来。

一般推倒重来这种事情,要么换名字,要么换版本号体系,总之要与之前产品尽可能分割才好。伟大的微软改名部从来都出人意料之外,新产品名字叫.Net Core,看起来像是.NET旗下的产品但是实际是一套重起炉灶的产品。它版本号又从1.0开始。标榜重新实现了.Net Framework。微软又为了避免已有开发者责难它抛弃老用户,决定继续保留.Net Framework以及http://ASP.NET产品,两条线并行发展。显而易见,这带来了史无前例的混乱。

折腾到现在,提到这些名字都要小心做区分:

大家一般不加修饰的说.NET,已经不再指.NET这个品牌,而是退化成指.Net Framework这套运行时框架。如果提到.NETCore的话就一定要加上core的后缀避免混淆。当然也有人坚持.NET指.Net Framework和.Net Core的统称,这是小众看法。http://VS.Net已经消失在历史长河中估计没人还记得了。http://VB.Net用户量还很大但是持续萎缩中,恐怕也多数为开发传统.Net Framework上的老框架的产品。http://ASP.NET原本为运行在.Net Framework之上的网页框架,但是由于新老两条线并行发展,在.Net Core上也出现了http://ASP.NET Core这个新的产品,导致开发者都搞不清楚其中的组合。这玩意讨厌人的地方是一度http://ASP.NET Core除了能跑在.Net Core上竟然还可以跑在.Net Framework上,从http://ASP.NET Core 3.0才跟.Net Framework彻底切割。所以根据版本不同,有n种奇葩运行时+框架的搭配方法。所以如果没有必要,别去纠结各种版本的区别,把自己陷进去不好玩。只专注于最新的http://ASP.NET Core就好。

现在,对于新手而言,专注于.Net Core就好,其它不要关心,只把它认为是一套运行时和SDK即可,而C#则是在这个运行时上的主要编程语言。就如同JVM/JDK和Java的关系即可。http://ASP.NET Core则可以认为是相当于JSP。

总体来说,.Net一系列产品确实是一套好东西。值得花精力去学习使用。新手建议直接上手.Net Core 3.1,C# 8.0,和http://ASP.NET Core 3.1。这是一个特性相对成熟,且LTS的版本。以看花边新闻的心态看所有老版本的产品,不带任何历史包袱。

未来(不远了就明年),.Net Framework和.Net Core将会再合体成为.NET 5.0(改名部的神奇操作你永远不懂)。到时候是终结一切混乱还是成为新的坑新手神器就请拭目以待。

相关文章Related

返回栏目>>