在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
.Net Framework .Net .NET Standard的区别一、.NET Framework在未来.NET Framework或许成为过去时,目前还是有很多地方在使用的。这一套体系对于做C#的老coder应该是再熟悉不过了,新入坑的也就用不着费力去学习。
二、.Net.net 就是由.net core 演进而来,在底层有很多性能和架构优化改造,上层应用api和用法和.NET Framework大多数相同。
三、.NET Standard
所以.net standard 是 .Net Api 规范,不是实现。其作用是为了提高.net 一致性,只要框架支持就能使用.net standard规范去实现。
各种 .NET 实现以特定版本的 .NET Standard 为目标。 每个 .NET 实现版本都会公布它所支持的最高 .NET Standard 版本,这种声明意味着它也支持以前的版本。
三、实际操作说明1、创建一个.NET Standard 类库,添加一个简单的测试方法。 public class NetStandardTest { public static void PrintLocation() { //打印FileStream 路径 Console.WriteLine(typeof(FileStream).Assembly.Location); //打印NetStandardTest 路径 Console.WriteLine(typeof(NetStandardTest).Assembly.Location); } } 在这个测试方法里面我们加了两行打印代码。主要是打印FileStream路径,同时我们创建的.NET Standard类库为2.0,因为我们接下来要创建.net framework 的控制台,它不支持2.1。 2、创建.net 5,.net framework 4.6.1 控制台程序 创建好两个控制台项目,在主方法里面调用内库方法。 static void Main(string[] args) { NetStandardTest.PrintLocation(); Console.ReadKey(); } 解决方案结构如下
3、运行分析
从结果看我们看到同一个.NET Standard类库,引用在不同的框架上,调用同一个FileStream的地址是不一样的。 三个地址我们并列对比下: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\5.0.8\System.Private.CoreLib.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll C:\Users\Administrator\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll 我们将三个dll 用dnspy反编译下,找到FileStream,随便找一个BeginRead方法看下代码。
从上面三个结果对比可以看到.net standard里面是没有实现的,只是定义了方法,也就是说定义了一种标准,说明我的类里面有哪些东西。 以上就是.Net Framework .Net .NET Standard的概念及区别的详细内容,更多关于.Net Framework .Net .NET Standard的区别的资料请关注极客世界其它相关文章! |
请发表评论