2023-06-10 Untiy进阶 C#知识补充1——.Net介绍

这篇具有很好参考价值的文章主要介绍了2023-06-10 Untiy进阶 C#知识补充1——.Net介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、.Net 介绍

​ 微软的 .Net 既不是编程语言也不是框架,是类似于互联网时代、次时代、21世纪、信息时代之类的宣传口号

​ 它是一整套技术体系的统称,或者说它是微软提供的技术平台的代号。包含的内容有:

  • 框架体系:

    • .Net Framework
    • .Net Core
    • Mono 等等
  • 开发语言:

    • C#(C# 是 .Net 平台主推的开发语言)
    • VB
    • F# 等等
  • 开发工具:

    • Visual Studio
    • Visual Studio Code 等等

​ 可以简单理解 .Net 本质上就是微软为自己的一系列产品取的一个代号

.Net 平台诞生的意义:

  1. 跨语言

    只要是面向 .NET 平台的编程语言(C#、VB、C++、F# 等等),用其中一种语言编写的内容可以无缝地用在另一种语言编写的应用程序中

  2. 跨平台

    一次编译,不需要任何代码修改,应用程序就可以运行在任意有 .NET 框架实现的操作系统上,即代码不依赖于操作系统,也不依赖硬件环境

二、.Net 跨语言的实现
  1. 公共语言规范 CLS(Common Language Specification)

    .Net 专门参考每种语言并找出了语言间的共性,定义了一组规则,即一组语言互操作的标准规范。

    只要开发者都遵守这个规则来编码,那么代码就能被任意 .Net 平台支持的语言所通用,即可以通过不同的编程语言(C#、VB、J# 等等)来创建应用程序。

  2. 公共类型系统 CTS(Common Type System)

    需要设计面向 .Net 的语言时需遵循的体系,是公共类型系统 CTS 的子集。

    编程语言如果能支持 CTS,那么称其为面向 .NET 平台的语言 。

  3. 公共语言基础结构 CLI(Common Language Infrastructure)

    微软将 CTS 等内容提交给国际组织计算机制造联合会 ECMA 的一个工业标准。

小结:

  • 微软为了实现跨语言,制定了一些规范。只要一门语言支持 CTS(公共类型系统)的规则,那么我们就能够使用它在 .Net 平台下开发应用程序。
  • CLS(公共语言规范)是 CTS 的一个子集,是一组语言互操作的标准规范。
  • 我们经常可以看到的 CLI 公共语言基础结构,它包含 CTS 公共类型系统。
  • 它是微软将 CTS 等内容提交给国际组织计算机制造联合会 ECMA 的一个工业标准。
三、.Net 跨平台的实现

​ .Net 的跨语言是让各种语言支持 .Net 的规范 CLI(也就是 CTS 等规范)。

​ 早期的.Net系列产品主要是为了给Windows操作系统服务的,并没有跨平台的特性。

​ 即使跨语言了,也只是可以使用多语言开发 Windows 上的应用程序。

(一).Net Framework

​ .NET Framework 是一个可以快速开发、部署网站服务及应用程序的开发框架,在 2002 年推出 1.0 版本。

​ .NET Framework 是 Windows 中的一个组件,部分开源,主要用于开发 Windows 下应用程序。包括:

  • 公共语言运行时(Common Language Runtime, CLR)

  • 虚拟执行系统

  • .NET Framework 类库等

步骤一:制作应用程序(编程语言 + 调用各种类库进行开发,生成程序集)

  1. 只要支持 CLS 公共语言规范的语言,都可以用于开发 Windows 下的各种应用程序和网站程序。

  2. BCL(基础类库)和 FCL(框架类库)是这个框架体系中为我们实现好的各种 API。

  3. 程序集的表现就是后缀为 .dll 或者 .exe 格式的文件。其中包含的最关键信息:

    • PE 头、CLR 头
      • 一些程序的格式信息,比如入口方法,版本号等等。
    • CIL 代码(通用中间代码)
      • 是介于源代码和机器码之间的代码之后会通过 CLR 产生机器码。
      • 由于可能使用不同的代码进行开发,所以会将这些代码翻译为统一规范的中间代码。
图1 .NET Framework 体系上层结构

步骤二:让应用程序在操作系统上运行

​ CLR(Common Language Runtime)公共语言运行时是 .Net Framework 的基础,所有的.Net技术都是建立在此之上的。

​ 它是一个在执行时管理代码的代码,提供内存管理、线程管理等等核心服务,类似一个小型的操作系统一样,所以形象的把它称为“.Net虚拟机” 。

​ 如果想要应用程序在目标操作系统上能够运行,就必须依靠 .Net 提供的 CLR 环境来支持,那就必须在操作系统上安装 .Net Framework。

​ 它会把程序集中的 IL(中间代码)翻译成机器码最终在操作系统上运行。

图2 .NET Framework 体系下层结构
图3 CLR 主要做的事情

小结:

​ .Net Framework 是一个主要用于跨语言开发、Windows 操作系统下的应用程序的框架结构,不支持跨平台。

(二).Net Core

​ .Net Core 是 2016 年推出的 .Net Framework 的新一代版本,是.Net Framework的兄弟,是.Net Framework的翻版实现,它是一个开源项目。

​ 它基于 .Net Framework 来进行设计,主要目的是跨平台,是 .Net 技术框架组成在 Windows、MacOS、类 Linux 系统下的具体实现。

原理:

​ 为不同的操作系统实现对应的 CLR 公共语言运行时(.Net 虚拟机),使得在不同的平台上能够将 IL(中间代码)翻译成机器码,最终在操作系统上运行。

图4 .NET Core 体系结构
(三)Mono

​ Mono 是一个由 Xamarin 公司(已被微软收购)所赞助的开源项目。

​ 它基于 .Net 的CLI(Common Language Infrastructure)公共语言基础结构,提供了微软 .Net FrameWork 的另一种实现。

​ 它相对 .Net FrameWork 最大的区别就是具备跨平台的能力,不仅可以运行在Windows、MacOS、Linux 等操作系统,甚至还可以运行在 PS3、XBOX、Wii 等主机平台上。

​ Mono 的 1.0 版本出现在 2004 年,也就是说在 .Net Core 出现之前,Mono 是 .Net 平台实现跨平台的唯一选择。

原理:

​ Mono 利用 .Net 平台制定的 CLI 公共语言基础结构规则,将多种语言编译成通用规范的 CIL 公共中间语言,再利用 CLR 公共语言运行时,将 CIL 公共中间语言转换为操作系统的原生代码(主要做的就是在各种操作系统上实现了对应的 CLR 内容),这样用各种不同语言编写的逻辑就能够在指定操作系统上运行。

​ Mono 的规则是在 .Net Framework 规则上进行修改和添加的。

四、总结
  • .Net Framework(2002 年发布):

    部分开源,主要用于开发 Windows 平台下应用,包含 Windows 平台的所有特性。

  • .Net Core(2016 年发布):

    完全开源,可以针对多个平台开发应用,包含 .Net Framework 部分特性。

  • Mono(2004 年发布):

    完全开源,早期乃至现在也是 .Net 的跨平台解决方案。

​ 总体而言,在 .Net Core 出现之前开发者都通过 Mono 来实现 .Net 的跨平台。

​ 使用基于 .Net 平台的 Mono 开发,能够发布可以在主流的各种操作系统上运行的应用程序。文章来源地址https://www.toymoban.com/news/detail-488628.html

到了这里,关于2023-06-10 Untiy进阶 C#知识补充1——.Net介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • LeetCode 双周赛 106(2023/06/10)两道思维题

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 加入知识星球提问。 往期回顾:LeetCode 单周赛第 348 场 · 数位 DP 模版学会了吗? T1. 判断一个数是否迷人(Easy) 标签:计数 T2. 找到最长的半重复子字符串(Medium) 标签:同向双指针 T3. 移动机器人(Medi

    2024年02月08日
    浏览(42)
  • C# .NET调用OpenAI及微软语音服务实现语音输入及输出

    目前C#调用Open AI有很多的开源库,本文使用的nuget包如下: 都有开源库,所以实现起来就比较简单了,主要难度可能还是注册账号,有能力的可以自己试试,在这儿贴出部分调用的主要代码,项目已开源,Github搜索JamesBaiJun/OpenAI-Azure,记得点个Star。 调用ChatGPT使用Nuget的Open

    2024年02月02日
    浏览(40)
  • 2023-06-08 Unity AssetBundle1——AB包介绍与使用

    一、AB 包介绍 ​ AB 包是特定于平台的资源压缩包,类似于压缩文件。其中资源可包括:模型、贴图、预设体、音效、材质球等等。 ​ 相较于 Resources 文件夹下的资源文件,AB 包能够更好管理资源: Resources 文件夹:打包时资源固定,只读,无法修改。 AB 包:存储位置可自定

    2024年02月16日
    浏览(41)
  • C#进阶-IIS服务器发布ASP.NET项目

    对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以 IIS服务器 发布 ASP.NET 项目为例。 本地用 Visual Studio 打开一个可运行的

    2024年02月01日
    浏览(57)
  • C# 与 .NET 介绍

    一、什么是C#         C# 是一门面向对象的编程语言,由微软开发,用于生成面向.NET环境的代码。 二、什么是.NET         .NET是一个开发平台,在该平台上可以构建Web API应用程序、Windows控制台程序、WPF桌面应用程序等。 三、什么是.NET Framework         .NET Framework是用于Wi

    2023年04月15日
    浏览(60)
  • 【unity之c#专题篇】——进阶知识实践练习

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unityc#专题篇习题 ⭐【Unityc#专题篇】之c#核心篇】 ⭐【Unityc#专题篇】之c#基础篇】 ⭐【Unity-c#专题篇】之c#入门篇) ⭐【Unityc#专题篇】

    2024年02月07日
    浏览(41)
  • C# .NET ADO.NET介绍和如何使用

    .NET Framework 4.7.2 Visual Studio 2022 Sql server 2008 新建项目 我们看一下visual studio 里面ADO.NET文件 ADO.NET是实体数据模型,是ORM对象文件。ORM,即Object-Relational Mapping(对象关系映射)。 ORM实际上是对业务的简化。就想面向过程到面向对象的转变一样。 面向过程和面向对象 面向过程:程序

    2024年02月09日
    浏览(64)
  • 【vue3】10-vue组件化额外知识补充(下)-动态组件-组件缓存-v-model在组件上的应用

    切换组件案例: 比如我们现在想要实现了一个功能: 点击一个tab-bar,切换不同的组件显示; 这个案例我们可以通过两种不同的实现思路来实现: 方式一 :通过v-if来判断,显示不同的组件; 方式二 :动态组件的方式; 方式一代码示例: 动态组件方式实现 动态组件是使用 component组

    2024年02月08日
    浏览(68)
  • (LLM) 的所有知识;10分钟了解向量数据库;微软 Bing 可以识别图片了;

    🦉 AI新闻 🚀 微软 Bing 可以识图」了,吊打 GPT-4? 摘要 :微软 Bing 最新识图功能让用户可以上传图片并进行编程、做题、看病等操作,还能分析梗图笑点。然而在某些情况下表现不佳,例如无法数清图片中的图案数量,或是犯错解释棋盘。综合来看,Bing 的图像识别能力十

    2024年02月09日
    浏览(36)
  • LightningChart .NET 10.5.1 Crack LightningChart 2023

    在早期阶段,LightningChart 提供了不同的工具,需要用户编写额外的代码才能启用数据跟踪功能。后来,在最近的LightningChart v.10.4 版本中引入了 XY DataCursor 内置功能。 现在,我们很高兴地宣布 DataCursor 内置功能也 适用于所有 3D、Polar  和 Smith 系列 。作为复习,   DataCursor 功

    2024年02月09日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包