使用Api分析器与Windows兼容包来编写智能的跨平台

2019-11-04 11:26 来源:未知

应用Api分析器与Windows宽容包来编排智能的跨平台.NET Core应用,api剖析器

正文翻译自斯科特 汉斯elman博客:

正文:

那是近来这几周你应有掌握的生机勃勃对.Net Core界的能够工具。我们在编写制定可能移植跨平台代码时,它们非常常有扶助。

.NET API 分析器

先是是API 解析器。如你所知,有时候我们会碰着过时的API,大概一个办法您能够在Windows下行使,但是在Linux下却无法干活。API解析器是八个Roslyn(Roslyn是C#/.NET编写翻译器的名号卡塔尔国剖析器,它能够超级轻松地丰裕到您的种类,通过叁个NuGet包。你所要做的就是加上那个包,之后您将即时收获警报,可能波浪线表示API有标题。

拜望那么些差相当少地例子。我将生成贰个差不离地调控台应用,它已经增添了API解析器。注意这些版本号是眼前的,今后会变动。

C:supercrossplatapp> dotnet new console
C:supercrossplatapp> dotnet add package Microsoft.DotNet.Analyzers.Compatibility --version 0.1.2-alpha

 然后笔者将使用八个只幸好Windows下使用的API。可是自个儿依旧愿意在别的平台下都得以运转。

static void Main(string[] args)

{

    Console.WriteLine("Hello World!");

 

    if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))

    {

        var w = Console.WindowWidth;

        Console.WriteLine($"Console Width is {w}");

    }

}

从今以后笔者使用“dotnet build”命令(只怕运转命令,运营也饱含build动作卡塔尔国然后作者赢得了一个大好的警示,这几个API不能够做事在有着平台下。

C:supercrossplatapp> dotnet build

Program.cs(14,33): warning PC001: Console.WindowWidth isn't supported on Linux, MacOSX [C:UsersscottDesktopsupercr

ossplatappsupercrossplatapp.csproj]

  supercrossplatapp -> C:supercrossplatappbinDebugnetcoreapp2.0supercrossplatapp.dll

Build succeeded.

.NET团队的Olia做了三个很好的YouTube录像,她的录制突显了API深入分析器是何等工作的。API解析器的代码已经上传到Github。即便你开采了bug请在上头提issue!

.NET CORE的windows兼容包

第二个,.NET Core的Windows宽容包是多少个很好的互补本领。当.NET Core 2.0支付完成并盛产后,它富含3.2万个很好地宽容现存.NET Framework代码的API。实际上,它们确实宽容地丰硕好,作者事先能够相当轻便地将三个15年前的.NET程序移植到.NET Core2.0上,那一个进度中都尚无遇上什么样麻烦。

从.NET Standard1.6的1.3万个api到.NET Standard2.0的3.2万个API,他们增添了豆蔻梢头倍多的可用API

.NET 斯坦dard非常的绚烂,因为它帮助如下平台:

  • .NET Framework 4.6.1

  • .NET Core 2.0

  • Mono 5.4

  • Xamarin.iOS 10.14

  • Xamarin.Mac 3.8

  • Xamarin.Android 7.5

当您迁移代码到.NET Core时会有大批量的Windows平台湾特务有的依靠,你可能会高出某些API在.NET Standard找不到的景色。此时,那些新的NuGet包Microsoft.Windows.Compatibility(预览卡塔 尔(英语:State of Qatar),它能够提供原先只在.NET Framework可用的API。

在此个包容包里面包车型地铁API会包括两连串型。风流倜傥种是这么些API原先正是Windows的黄金时代有个别,可是也得以跨平台工作。其余大器晚成种是不能不在windows下办事,因为她俩是操作系统特有的。举例,API访问WIndows注册表那是Windows下独有的。不过System.Directory瑟维斯s也许System.Drawing他们却得以在别的平台都干活的很好。Windows宽容包在.NET Core以后可用Api的根底上增加生产数量呢二零零一0三个API。能够参阅Immol录像的录制。

主题素材在于,尽管那个不可用API是您使用.NET Core的障碍,那么今后您能够依靠包容包,耶!不过你要知道您怎么须求迁移到.NET Core。.NET Core与完整版.NET Framework都得以在Windows上干活。假诺您的主次最近工作的很好,何况没有必要.NET Core的新特性,那么就不须要移植到.NET Core。那是平整列表:

使用.NET Core的情况:

  • 你有跨平台要求

  • 你的靶子是微服务

  • 你使用Dorcker容器

  • 你有高品质与可开展必要

  • 您供给同步.NET版本

使用.NET Core的情况:

  • 您的前后相继当前使用.NET Framework(推荐使用拓宽来顶替迁移卡塔尔

  • 您的次第选用第三方.NET库或然NuGet包,它们的.NET Core版本还不可用

  • 您所使用的.NET技术在.NET Core上还尚无扶植

  • 你的顺序所采纳的操作系统平台近来.NET Core还不扶助

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于金沙澳门登陆网站,转载请注明出处:使用Api分析器与Windows兼容包来编写智能的跨平台