.NET Core 第一节课 - 起源

.Net core 3.1 LTS长支持版本  2022 12月   .net 5 目前LTS版本还要等版本

.NET Core 到底是什么?

小型的、高效的、可以通过文件复制直接部署的跨平台框架。

为什么要用.net core? 也就是优势?

1: .net 基金会和社区  来管理 .net core  并决定采取 开源 策略  使用 MIT 协议   (别小看这个协议   开源协议很多 这个很强大 自由性极高 下方有几个开源协议对比)    

2:跨平台  跨架构    支持命令行   部署灵活  兼容性强    linux  这么火  这么给力  不跨平台不行噻

3:精简化     比起.net fw  精简化   需要什么  我在去添加什么   .net fw 不管你用不用  都一大套 给到你    举例:session   fw 直接

帮你给搞好了 直接用 ,.net core  你需要自己添加。

4:性能高  比.net fw 更加优秀 也比其它同级开源框架高效   不是精简了就性能高  是因为 有内置  kestrel  

 

.NET Core 核心到底是什么?

重要组件:CoreCLR/CoreFX/CLI/Roslyn

CoreCLR: 公共语音运行时   底层其实是C++

职责

1. 执行.net程序   中间代码IL解析 什么方法 类型  生成元数据(类型信息、GC信息、异常信息)

 .net 程序(IL中间代码不依赖与平台)同一个.net程序 可以在不同平台执行  

 而 原生程序(包含特定硬件架构的机器码,调用操作系统的函数) 、Native 需要在特定平台执行

2.中间代码编译  中间代码加载到内存 Class Loader  然后转换到机器码 也就是JIT 即时编译器  根据操作系统等等 选择最适合的

3.类型安全 保证对象类型一定正确

c语言  int*指针 - void*指针 在往后传  后面就不知道是int了

c# string - object  GetType方法就可以知道真实类型  是因为  CLR会对每一个对象( 托管对象)都会保存 类型信息 

4.异常处理  try-catch

5.线程管理  (托管线程,GC)  充分利用资源

托管代码用相同方式在不同平台进行多线程的处理

6.GC 垃圾回收机制  对无效的对象 销毁   对内存的整理  范围是针对于 托管代码

对于非托管资源,还是需要开发手动释放

 

CoreFX:  .net 5 中叫Libraries      基础类型  c#编写的 库函数  比如  datetime 类型   thread  线程类

大多是FW的BCL基础类型 进行兼容处理过迁移过来的 关键字 partial  + 条件编译 

分开:公用 特定平台   避免了适配器模式在源代码中的应用    提升了效率

1.减少开发的工作量 .让不同模块的交互更加容易

比如c语音中 俩个类库:不同时间类型   c#直接用datetime 就行了

 2.NET Standard/. NET  标准  ==最基础的功能

.NET FW 和 .NETCore 有对应的标准版本 也就是迁移匹配度

 

CLI

Common Language Infrastructure =通用中间架构   为了跨平台、跨语言   c#\vb.net\F#

一种技术标准 == IL  比如int都是=4个字节   不需要关注平台差异    

基础类型、指令种类、模块/类/方法的结构,二进制的文件格式

 

Command Line Interface=命令行接口

以前一些windows的东西 不支持 linux

 

VS  VScode都是通过.NET Core CLI 工具  创建项目等等

 

Roslyn   编译平台,代码分析

vs2017 开始 内置了

 

开源协议:GPL\Apache\BSD\MIT

协议:目的是为了保护和尊重作者的知识产权,即便是开源,也不说明源代码可以随意使用!!

GPL(极端思想) 所有软件都开源  使用这个协议代码用或者改(函数,衍生代码)都必须开源  传染性极强 

国内比较喜欢白嫖,所以不采用   

LGPL  在GPL 基础上  可以用  不能改   一旦改了 就必须开源

Apache (注明信息,作者,修改发布说明) 不要求用了改了就开源   相比宽松许多

BSD\MIT  最宽松的协议,自由的使用,自由的修改,自由的发布

BSD额外有一个规定:如果你对BSD协议下的软件的源码进行了修改再发布,那么你不能借用该项目原作者的名义进行宣传。为什么 怕用大厂的东西 然后 项目很烂  抹黑大厂 

所以 .net core 采用mit 协议   更好的促进了 .net 生态 为开源打好了基础!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值