1.框架决定--因为代码运行需要环境,有了能够运行在 Windows和Linux下面的 CLR.
2.netCore有了个 kestrel(具体的解释去查询下).跨平台的适用于ASP.NET Core的WEB服务器。角色类似 IIS,他不是IIS, 简单的说 kestrel的性能高,功能少,在Linux下性能更高,不支持反向代理。
先来看一下.NET Framework和Core的大体结构
NET Framework本身是个"跨Windows"的平台, 而在这个基础上, 又支持C#和VB等语言进行 "跨语言",
这些语言都遵守CLS, 编译成CIL执行. 从我们多层架构设计的角度来看, 只换最底层, 还是很可行的.
.NET Core 重做了一个CoreCLR的运行时,以及一个叫做CoreFX的BCL. 这里要说一下, ASP.NET Core 完全作为 NuGet 包的一部分提供。
这样一来,可以将应用优化为只包含必需 NuGet 包, 使应用更加灵活、模块化的同时提高性能.
.NET Core通过实现.NET Standard与 .NET Framework做兼容.
至于跨平台, 因为90%的CoreFX代码都是与平台无关的
https://www.cnblogs.com/huaan011/p/12204883.html
https://blog.csdn.net/webdaoyang/article/details/79958098
来源:oschina
链接:https://my.oschina.net/u/4303145/blog/3227359