一、什么是 .net core
.net: 开发平台
.netcore: 一项免费,开源,跨平台的开发技术
跨平台:程序可以运行在Windows,Linux,Mac 等操作系统下。
使用 core 开发的程序能够更好的运行在云服务器上。
二、.netcore的重要问题
1、编程语言 c#
2、 .netcore 不是.net Framework 的升级版,无法直接升级。
3、有Mono ,net Framework就可以在Linux 运行为什么还要研究 netcore
(1) 系统级别的安装,互相影响
无法独立部署
asp.net与IIS 深度耦合
asp.net 资源消耗大
非云原生
(2)net Framework 历史遗留
带着枷锁长大的 asp.net mvc.
asp.net底层 不支持很好的单元测试
.net core优点: 1、支持独立部署 2、彻底模块化 3、 没有历史包袱 4、不依赖IIS 5、跨平台
6、符合现代开发理念:依赖注入、单元测试等
.net core与net Framework 不同
1、不支持:asp.net webforms 、WCF服务器端、WF、.net Remeting 、 Appdomain
2、部分 windows-only的特性 core可以使用但是无法跨平台 :winform 、wpf 、注册表、 event log 、 ad等
三、 .net Standard
.net Standard:只是一个标准,不是实现。
如何验证:
1) 建. NET Standard类库项目,确认版本是2.0,建一个类,方法中打印typeof(FileStream).Assembly.Location。
2)分别建. NET Framework和.NET Core的控制台项目,添加对类库项目引用,并且调用。
3)用反编译工具ILSpy(尽管开源)分别反编译VS中FileStream、
.NET Framework和.NET Core运行中的。 BeginRead方法实现以及定义有不同。
总结:
.NET Standard只是规范,一个.NET Standard类库可以被支持其版本的.NET Framework、.NET Core、Xamarin等引用。
而.NET Core类库、.NET Framework类库则不可以。如果编写一个公用的类库,尽量选择.NET Standard,并且尽量用低版本。