一、.net core简介
.net Core更名为.net 5。net 5最大的更新就是改名和统一。
.net Core备受关注的原因:开源、跨平台、能能。
软件许可协议==开源协议。.net基金会是为了加强.net生态系统。
主流的开源协议:GPL、MIT、Apache、BSD
二、.net Core的重要组件:CoreCLR、CoreFX、CLI、Roslyn
1、CoreCLR:最核心部分,公共语言运行时,C++编写。由.net framework发展而来。它由中间代码解析、中间代码编译、类型安全、异常处理、线程管理、GC
字符串可以转换成Type类型吗?
2、CoreFX:基础类库。由C#编写。即Library
基础类库 有必要进行研究并进行封装吗?
基础类库是用C#编写的,可以研究,但是封装的话,就是修改源代码了,可以用类对其进行扩展,封装自己常用的方法,这样能省不少事
3、CLI
Common Language Infrastructure=通用中间语言
Command Line Interface=命令行接口
dotnet run就是CLI中的命令行接口
4、Roslyn==编译平台,代码分析
.net Core与asp.net core是相对独立的两个技术栈。
系统的课程,20%的是精华,80%的是废话。本次课程只讲精华,线程管理和GC,其它的都与我们应用无关。
asp.net core 3.0之前,是不依赖.net core的,可以运行在windows、linux等上,它的前身是asp.net MVC。
三、.net Standard
.net只是微软开发使用?
客户端范围=游戏引擎Unity,支持C#
Xamarin=移动端
这两个项目都不是微软的,也不是微软主导的。移动端要求高效;服务器端要求高并发;
.net Standar不是程序,是纯文本的类型信息。规范相同功能的类型和函数,在不同的.net开发框架中具有相同的形态。 目前只是规范现有的,未来主导.net的发展。目前最新的版本规范是2.1
四、工具
1、VS Code不是IDE,是跨平台的轻量级代码编辑神器,目前前端使用者比较多。跨平台开发.net Core的话,VS Code是首选,如果只是在Windows 开发,用VS比较好。
2、Rider收费,比VS某些地方好用。
只有VS 2019支持.net Core 3.X
3、.net 程序迁移.net core,用.net api portability。它是一个开发工具,用管理扩展安装.net portability analyzer。
https://github.com/microsoft/dotnet-apiport
4、常见小工具:
(1).NET API Catalog:https://apisof.net
(2).net Core在线源码:https://source.dot.net
(3)把IL反编译为C#(dnSpy):https://github.com/dnSpy/dnSpy ilspy不兼容新版core
5、.net standard和.net Core的区别
.net core类库可以引用.net standard的类库,但是有版本的要求。
NotSupportedException:不受支持。某些API可以在windows上支持,但是在其它平台上不会支持,就会发生这种情况。appDomain在linux上不支持
五、.net与java
同等级别,.net懂的知识比java的要少。