.NET是个啥_拓展

这篇具有很好参考价值的文章主要介绍了.NET是个啥_拓展。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、前言

差不多一年前写过一篇博客——.NET是个啥。

那篇博客基本上就是按照官方文档的翻译,并加入一些自己的理解和吐槽来写的。现在回过去看呢,虽然内容全面,但是停留在表面。(相当于回答了它是什么,它包含了什么)

什么意思呢?
通过那篇博客,可以知道.NET是微软的开发平台,它包含各种各样的工具。
但是,微软为什么要开发这样一个平台?这个平台是怎么实现的?和其他平台/技术(如Java)有什么不一样?
这些拓展的问题,似乎并没有办法得到解答。

本文主要围绕这几个问题,来讨论、进一步认识.NET。


二、.NET是个啥

.NET,它是微软创建的一个用于构建多种不同类型的应用程序的开发人员平台。

1 微软为什么要开发.NET平台

这个问题比较好理解。

我们都知道微软早期在PC操作系统市场几乎是垄断的。
电脑/计算机光有操作系统可不行,上面还得有应用软件啊。当然,微软自己不可能开发出用户需要的所有软件。虽然不能开发出所有软件,但可以开发一个平台,让有需要的人用该平台来开发软件,这样归根到底还是用了微软的技术,命脉(上层技术/元技术)还是掌握在微软手中。

当然,归根到底还是钱。占有市场,基于已有业务(OS)拓展新业务(应用软件)。

实际上这一步也不得不走,因为Java是1995年面世的,.NET是2000年出现的,而95年到2000年Java相当火爆。如果.net迟迟不出现,微软可能受到严重打击,失去相当一部分软件市场。可见.NET的出现是为了与Java抗衡。

最终,因为.NET的出现,至少在PC端桌面应用上,微软保住了霸主地位。至于其他方面(移动端、网页端),微软因为布局问题并不占优势。

至于为了程序员开发程序变的容易这一说,这是.NET必须达到的(.NET得做的好用,才有人去用;不然人人写汇编开发应用不就好了)。这不是.NET出现的原因,微软又不是搞慈善的。

2 .NET是怎么实现的

或者说是什么语言编写的。
这里提到的.NET当然不是指整个.NET平台,更像是专指CLR。

在这之前,先谈谈C语言的编译过程,大家应该都不陌生。
简单讲就是,预处理=>编译=>汇编=>链接。
它是一个将高级语言代码转换为计算机可理解的机器码的过程。

那显然,.NET最终也要生成计算机可理解的机器码,所以必然会经过其中一个或几个过程。一种更高级(这个高级不是说该语言多么先进,多么优越;而是指抽象层次更高)的语言(语言的编译器),通常是由更底层的语言来编写实现的。.NET的这个核心运行环境CLR也不例外,它是由C/C++以及汇编来编写完成的。

题外话——自举(bootstraping )


大家应该都听过“计算机中的万物是由01组成的”。
但是人不太可能直接用0和1去编程,于是出现了汇编。
汇编语言(Assembly Language)是一种与机器语言相对应的低级语言,它使用助记符(英文缩写)来代替机器指令的二进制码,更容易理解和编写。显然,这个更容易理解是相对而言的。看过汇编的人应该都知道,它的代码都是一些指令,什么mov啊、jmp啊,可读性还是不太行的。

于是出现了C语言,根据上面说的,高级语言通常由低级语言编写实现,所以C语言(C编译器)是由汇编写的?
其实现在的C编译器,一般就是C写的。
???C写C自己?那编译C编译器的是啥?
非要追根溯源,应该说最早的C编译器是汇编写的。最初,用汇编语言去写C语言的编译器,这个编译器就是C编译器的老祖宗。后来的C编译器就是用C结合该C编译器来写了。
其实学过编译原理的话,应该知道有个词叫自举
我们先用底层语言实现上层语言的一部分,称为C0。然后用这部分上层语言C0去实现其他部分C1;再用C1去实现C2…于是最终就得到了完整的上层语言。

有了自举这个概念后,再问.NET平台(这次指整个平台)是啥编写的?答案就很花了,C、C++、C#、汇编等等。

3 .NET和Java有何不同?

.NET是个开发平台;Java是一种编程语言。
两者没啥可比性,硬要比的话应该是C#和Java比。
不过平时口头上(有时候会把C#和.NET等同起来),确实会出现拿这两者作比较,这个时候通常是讲.NET相关技术和Java相关技术比较。
因为两者确实有很多对应的技术,比如.NET有ASP,Java有JSP;桌面端.NET有WinForm、WPF,Java有swing、Javafx等。当然它们各有千秋,有些技术不适应环境已经快被淘汰了。

总之,我认为两者各有千秋,C#在工业领域应用广;Java在企业应用广。从当下国内大环境来讲,Java是热于C#的,不过这不是C#的问题,是生态、历史等多因素造成的。同时,Java求职市场也更卷,国内大厂应用多。


三、 结语

严格来讲,这篇博客有点跑题了。
不过以上几点拓展认识对全方位了解.NET还是有促进作用的。文章来源地址https://www.toymoban.com/news/detail-499805.html

到了这里,关于.NET是个啥_拓展的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OCP3.0是个啥?

    1、OCP NIC 3.0规范是OCP Mezz 2.0 设计规范的升级。 2、OCP NIC 3.0规范支持两种基本卡尺寸:小尺寸Small Form Factor(SFF)和大尺寸Large Form Factor(LFF)。 3、SFF最多支持16 lane PCIe ,而LFF最多支持32 lane PCIe。 与OCP Mezz 2.0设计规范相比,更新的OCP网卡3.0规范为网卡和系统供应商提供更广阔的解决

    2024年02月05日
    浏览(42)
  • 【C#】微软的Roslyn 是个啥?

            Roslyn 是微软重写的C#编译器并开源。         Roslyn  是 C# 和 Visual Basic.NET 开源编译器的代号。以下是它如何在过去十年企业Microsoft的最黑暗中开始,并成为所有C#(和VB)的开源,跨平台,公共语言引擎,我将在本文的其余部分将其视为给定的)。        

    2024年02月15日
    浏览(51)
  • Web3到底是个啥?

    Web3是近两年来科技领域最火热的概念之一,但是目前对于Web3的定义却仍然没有形成标准答案,相当多对于Web3的理解,都是建立在虚拟货币行业(即俗称的“币圈”)的逻辑基础之上的。 区块链服务网络(BSN)的核心理念,是在互联网上推动建立一个新的公共层,服务于各行

    2024年02月14日
    浏览(39)
  • ​Web3到底是个啥?

    Web3到底是个啥? Web3是近两年来科技领域最火热的概念之一,但是目前对于Web3的定义却仍然没有形成标准答案,相当多对于Web3的理解,都是建立在虚拟货币行业(即俗称的“币圈”)的逻辑基础之上的。 区块链服务网络(BSN)的核心理念,是在互联网上推动建立一个新的公

    2024年02月14日
    浏览(43)
  • 了解 Langchain️是个啥?:第 1 部分

            在日常生活中,我们主要致力于构建端到端的应用程序。我们可以使用许多自动 ML 平台和 CI/CD 管道来自动化 ml 管道。我们还有像Roboflow和Andrew N.G.的登陆AI这样的工具来自动化或创建端到端的计算机视觉应用程序。         如果我们想在OpenAI或拥抱脸的帮助下

    2024年02月13日
    浏览(66)
  • 大语言模型:LLM的概念是个啥?

                 大语言模型(维基:LLM-  large language model )是以大尺寸为特征的语言模型。它们的规模是由人工智能加速器实现的,人工智能加速器能够处理大量文本数据,这些数据大部分是从互联网上抓取的。 [1]所构建的人工神经网络可以包含数千万到数十亿的权重,

    2024年02月13日
    浏览(35)
  • 液体神经网络:LNN是个啥概念?

            在在人工智能领域,神经网络已被证明是解决复杂问题的非常强大的工具。多年来,研究人员不断寻求创新方法来提高其性能并扩展其能力。其中一种方法是液体神经网络(LNN)的概念,这是一个利用动态计算功能的迷人框架。在本文中,我们将深入研究 LNN 的世

    2024年02月13日
    浏览(58)
  • ChatGPT到底是个啥 - 它甚至会和狗说话

    写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二

    2024年02月03日
    浏览(49)
  • AIGC到底是个啥? AI和AIGC的区别有哪些

      说来说去,到底什么是AIGC呢?AIGC是人工智能生成内容的缩写,是一种基于生成对抗网络(GAN)、大型预训练模型等人工智能技术的方法,通过对已有数据进行学习和模式识别,以适当的泛化能力生成相关内容的技术,AIGC的应用领域有很多例如,AIGC可以用于自动生成新闻、

    2024年02月08日
    浏览(45)
  • 云原生到底是个啥玩意?从云端降临的超级技术:云原生

    目录 福利:文末分享云原生相关全套资料哦 一、云计算?云原生? 二、云原生带来什么好处 7个字:隔离、弹性、自动化。 三、云原生的基础知识 四、云原生中最重要的概念 1、虚机 2、容器 3、容器编排 4、VPC 5、微服务(Microservices) 6、服务网格(Service Mesh) 7、无服务器

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包