初识.Net Core

.Net Core 相比 .Net Framework 的优势

.Net Framework 的缺点
  • .Net Framework 是 系统级别安装的库,属于 Windows 下的通用公共库(各个程序不能设置单独的版本,升级会影响其他)
  • .Net Framework 开发的程序不能独立部署(目标机器必须安装对应版本)
  • Asp.Net 和 IIS 紧密耦合,且资源消耗大
  • 不是云原生的平台
.Net Core 的优点
  • 支持独立部署,不互相影响
  • 彻底模块化,可以按需求安装需要的模块
  • 不依赖于IIS,跨平台
  • 运行效率高(没有历史包袱)
  • 符合现代开发理念:依赖注入、单元测试等

.Net Standard

.Net Standard 是 .Net 平台下的一个共同的标准(.Net Framework、.Net Core、Xamarin等都遵从的标准),不是实现。

验证

新建 Net Standard2.0 的类库项目:

public class Class1
{
    public static void Test()
    {
        Console.WriteLine(typeof(FileStream).Assembly.Location);
    }
}

FileStream转到定义,把顶部程序集路径(C:\Users\****\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll)在ILSpy中打开,可以看到反编译结果顶部有一段警告:此程序集被标记为“引用程序集”,这意味着它 只包含元数据,没有可执行代码 。

同样可以看到定义的属性以及方法都只包含空的实现:
在这里插入图片描述
在这里插入图片描述
新建两种控制台项目:
在这里插入图片描述
分别打印程序集路径:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll (.Net Framework 4.6.1)
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.3\System.Private.CoreLib.dll (.Net 6.0)

可以看到.Net Framework、.Net Core、.Net Standard 三者的程序集路径截然不同,进一步反编译则可以看到:

  • .Net Standard 是引用程序集,不包含实现
  • .Net Framework 和 .Net Core包含具体的实现,代码不完全一致

.Net Standard 只是规范,一个 .Net Standard 类库可以被支持其版本的 .Net Framework、.Net Core、Xamarin等引用,.Net Core类库、.Net Framework 类库则不行。

编写公用类库,应尽量选择 .Net Standard,并且尽量使用低版本(高版本可能会有新的特性)

版本对应关系

.Net Standard1.01.11.21.31.41.51.62.02.1
.Net Core1.01.01.01.01.01.01.02.03.0
.Net Framework4.54.54.5.14.64.6.14.6.14.6.14.6.1-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qanx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值