特性介绍和使用指南澳门金莎娱乐网站:,使用

日期:2019-11-07编辑作者:服务器

.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 Standard非常的炫耀,因为它援助如下平台:

  • .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(预览卡塔 尔(阿拉伯语:قطر‎,它能够提供原先只在.NET Framework可用的API。

在此个宽容包里面包车型地铁API会包括三种档次。意气风发种是以此API原先便是Windows的生机勃勃局地,不过也能够跨平台职业。其余风流倜傥种是只可以在windows下专业,因为他们是操作系统特有的。比如,API访谈WIndows注册表那是Windows下独有的。可是System.DirectoryServices或然System.Drawing他们却足以在其余平台都干活的很好。Windows宽容包在.NET Core现在可用Api的功底上新增添呢20010五个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还不协助

添补:关于可移植类库(Portable Class Libraries卡塔尔国

.NET Standard 2.0公布之后,在.NET项目中国共产党享代码,不再推荐使用PCL类库,有非常大希望后边会遗弃,假如未来采纳PCL应该移植为.NET 斯坦dard类库。

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

本文翻译自Scott 汉斯elman博客:

正文:

那是近些日子这几周你应该掌握的后生可畏对.Net Core界的巧妙工具。我们在编排大概移植跨平台代码时,它们特别常有帮扶。

发布NuGet包

当类库开垦完毕,能够将其宣布成NuGet包,在VS中,右键项目选拔属性(Properties卡塔 尔(英语:State of Qatar),在选项卡中找到Package,选中Generate NuGet package on build

澳门金莎娱乐网站 1

在命令行工具意况下,编辑项目文件增添GeneratePackageOnBuild设置值为true

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>

编写翻译项目,在出口目录中会找到变化的NuGet包。

.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 Standard 2.0 性格介绍

  • 代码分享:.NET Standard是API集结,更是代码实现正式,全体.NET达成必得切合该职业,幸免代码碎片化。.NET Standard被规划用来作为代表可移植类库Portable Class Libraries(PCL卡塔尔的创设筑工程具。

  • API协理:在.NET Standard 2.0中API扶植数量增添,包罗API数量为3二〇〇三个,.NET Standard 1.6 中API数量为13000个,近些日子甘休已经包涵.NET Framework中的大多数APIs,这表示能够轻便地将长存代码移植到.NET 斯坦dard,进而使现存代码帮衬基于.NET Standard实现的其余平台,参看平台援救列表。

  • .NET Framework包容格局:近来多数的NuGet软件包使用.NET Framework,大超多等级次序被禁止援用到.NET Standard项目,因不是独具的连串信赖都协理.NET Standard,这是在.NET Standard 2.0中走入宽容形式的缘由,使.NET Standard项目得以一贯援用.NET Framework类库。近日八成的Nuget软件包是宽容.NET Standard 2.0,也许在少数特殊情形下不起会包容战败,举个例子:WPF中的.NET Framework类库。

  • 阳台扶植

    • .NET Framework 4.6.1
    • .NET Core 2.0
    • Mono 5.4
    • Xamarin.iOS 10.14
    • Xamarin.Mac 3.8
    • Xamarin.Android 7.5
    • Upcoming version of UWP (估摸二零一八年下七个月)

更多参谋资料

  • .NET Standard 2.0新增添命名空间
  • .NET Standard documentation
  • .NET Standard API

创建.NET Standard类库

通过成立一个新类型来实行一下,在VS中 文件 | 新项目 选用.NET Standard分类找到 Class Library (.NET Standard),项目名叫mylibrary

澳门金莎娱乐网站 2

也得以因而命令行dotnet new成立三个类库(暗中同意使用.NET Standard卡塔尔国

dotnet new lib -o mylibrary

为了让这一个类库越发意义,编辑文件Class1.cs as,加多生龙活虎行逻辑代码。

using System;

namespace mylibrary
{
    public class Class1
    {
        public static string GetMessage() => "Hello from .NET Standard!";
    }
}

选定现存.NET Framework类库

.NET Standard 2.0 提供包容方式,未来拉长叁个非.NET Standard类型的NuGet包,如要加多NuGet包为:Huitian.PowerCollections,在VS中右键项目mylibrary,选择Manage NuGet Packages.,然后选用Browse,搜索Huitian.PowerCollections,在结果中找到包并点击安装。

指令行增加Nuget包

dotnet add package Huitian.PowerCollections

设置完包后,将彰显以下警报:

NU1701: Package ‘Huitian.PowerCollections 1.0.0’ was restored using ‘.NETFramework,Version=v4.6.1’ instead of the project target framework ‘.NETStandard,Version=v2.0’. This package may not be fully compatible with your project.

这段警报不唯有在安装包时提示,在历次创设时都会唤起。

警报现身的案由是因为NuGet不能鲜明.NET Framework类库是或不是能够统统健康办事。比如,它恐怕依据于Windows Forms(不跨平台卡塔 尔(英语:State of Qatar)。建议测量试验应用程序,假如全体机能都按预想专门的学业,您能够阻止警报。

编排项目文件中包引用配置,增添NoWarn属性:

<ItemGroup>
    <PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>

地点的安顿是将Huitian.PowerCollections(版本:1.0.0)包援用时产生的警告名字为NU1701设置为不提示。

在VS中央司法机关接在包的品质中开展设置

澳门金莎娱乐网站 3

双重编写翻译,不再晋升警告新闻。注意:配置只针对各种援引包,不是大局的。由此,假若援引了另三个亟需极度方式的库,将重新获得警报,供给对该包举办独立设置。

.NET Standard 2.0 宣布日期:前年十二月18日
文告原来的作品地址

使用.NET Standard类库

在利用类库早前,供给创立三个类型。创设四个空ASP.NET Core项目。在VS中,创造项目时在.NET Core分类中挑选ASP.NET Core Web Application,选中ASP.NET Core 2.0,类型为Empty。

命令行创设

dotnet new web -o aspnetcore

使用.NET Standard类库的方法和选用任何类库相符,只须求在类型中丰硕援用。在VS中右键项目,点击加多/引用,然后在档期的顺序(Projects卡塔 尔(阿拉伯语:قطر‎选项卡中挑选mylibrary。

命令市价势为品种拉长引用

dotnet add reference ../mylibrary/mylibrary.csproj

Startup.cs文本,增加代码

app.Run(async (context) =>
{
    var message = mylibrary.Class1.GetMessage();
    await context.Response.WriteAsync(message);
});

在VS中F5运行。

命令行工具运转

$ dotnet run
Now listening on: http://localhost:50878
Application started. Press Ctrl+C to shut down.

运作效果

澳门金莎娱乐网站 4

恭喜!创制的.NET Standard 2.0类库在.NET Core中调用成功。同样也能够在 .NET Framework或Xamarin等分裂类型的行使中接收,方式相同。

前言

早上起来.NET社区沸腾了,期望已久的.NET Core 2.0算是公布!依据个体经历,微软的出品经常在2.0时会趋于成熟,所以三个新的.Net开拓时代已经赶到!现在归属.NET Core。

对于.NET Core 2.0的披露介绍,围绕2.0的架构类别,本连串有关随笔:

  1. .Net Core 2.0 生态(1卡塔尔国.NET 斯坦dard 2.0 天性介绍和使用指南(已公布卡塔尔国
  2. .Net Core 2.0 生态(2卡塔 尔(英语:State of Qatar).NET Core 2.0 天性介绍和使用指南(已发布卡塔 尔(英语:State of Qatar)
  3. .Net Core 2.0 生态(3卡塔尔国ASP.NET Core 2.0 个性介绍和使用指南(已公布卡塔尔
  4. .Net Core 2.0 生态(4卡塔 尔(英语:State of Qatar)Entity Framework Core 2.0 天性介绍和使用指南(已发表卡塔尔国

.NET Standard 2.0是内核,所以放在第风流倜傥篇。

采纳此前,下载安装.NET Core 2.0,下载地址。

.NET Standard 2.0 使用指南

总结

.NET 斯坦dard 2.0 补助API数量是 .NET Standard 1.x 的两倍多,那代表大家将.NET Framework 中的代码移植到.NET Standard变得尤为顺风,其它通过相配方式在.NET Standard类库中能够引用.NET Framework项目或类库,那样允许在未曾将富有代码移植到.NET Standard的状态下高速利用现存类库。(提供八个连片格局,假诺代码未有举行到不帮忙的API是不会出错的。卡塔 尔(英语:State of Qatar)

差一些全数.NET平台都扶持 .NET Standard 2.0,满含.NET Framework, .NET Core, 和 Xamarin(前身是Mono),UWP在当年稍后的时光会扶持。全体那一个完结得益于新扩张的API以至包容格局,非常是.NET Core和UWP,他们从前只好利用壹个受限的API集。

提议您将具备的事体逻辑和UI中依据的代码转变来.NET Standard,能作保您的工作逻辑能够在别的平台被复用,比方桌面应用、移动选用、云应用。

本文由澳门金莎娱乐网站发布于服务器,转载请注明出处:特性介绍和使用指南澳门金莎娱乐网站:,使用

关键词:

Nextcloud搭建过程,Centos7的apache网站环境搭建wor

网盘不可信赖 那就自个儿搭建256TB的网盘呗 — Nextcloud搭建进度,256tbnextcloud 二零一四年网盘的日子倒霉过啊 一家家...

详细>>

修改yum源为国内源,CentOS配置本地yum源

CentOS配置本地yum源/Ali云yum源/163yuan源,并配置yum源的优先级,centos163yuan 1.概述       YUM(全名为 Yellow dog Updater,...

详细>>

shell变量总结回顾澳门金莎娱乐网站:,Linux正则

shell脚本(风华正茂卡塔 尔(阿拉伯语:قطر‎功底知识,shell脚本根基知识 shell 一、简介 1.成效:与基本进行交互...

详细>>

CentOS7网络配置澳门金莎娱乐网站,解决win下无法

查看 ifcfg-eno16777736 网卡配置文件(centos7改动了很多!!!跟书本教材的老版本有很多不一样的) 解决win下无法ping通V...

详细>>