0%

.Net Core 入门

全新的架构

Microsoft 为了 .Net Core 跨平台的诞生,推出了.NET Standard,它是一个正式的规范,定义了一组版本化的API。
.NET Framework 4.5 即以上版本实现.NET Standard,.Net Core出生即使用。

BCL 更名为 CoreFX, CLR 更名为 CoreCLRCoreFXCoreCLR皆是开源。

CoreCLR 大致上与CLR 没有太大的变化,除了底层对于不同操作系统实现来讲不一样。

CoreFX GITHUB地址
CoreCLR GITHUB地址

.NET Framework 承载BCL的API都定义在mscorlib.dll程序及中。
而在新的Core中,放入到了组成CoreFX的众多程序集中。CoreFX并不是一个单独的程序集,因为在Core中,他被分解了。这是因为,Microsoft认为.NET Framework在为其加载BCL的时候过于愚蠢,因为是一个整体的存在,所以全部都加载到CLR中。在新的Core中,按需加载。
Core中与CoreCLR具有紧密关系的底层API被定义到System.Private.CoreLib.dll中,其余放入到CoreFX众多程序集中。

垫片程序集

System.Runtime.dll 是一个很明显的垫片程序集,他使用了Type Forwarding引用接入到System.Private.CoreLib.dll中。

这些技术的存在是因为,现在.Net 被分割成了.NET Framework.NET Core ,预计明年.NET 5将会消除掉这些乱七八糟的引用。

项目文件(.csproj) 中的SDK

1
2
<Project Sdk="<SDK-NAME>">
</Project>

.Net CoreSDK分为几种:

  1. Microsoft.NET.Sdk
    ClassLib Console 等都属于它
  2. Microsoft.NET.Sdk.Web
    MVC WebAPI 都属于它,等同于你引用了Microsoft.AspNetCore.App
  3. Microsoft.NET.Sdk.WindowsDesktop
    Winform Wpf 都说它

launchSetting.json 配置文件

在应用启动时自动加载的配置文件。Visual Studio 常用启动文件。