.NET Core 2.1 Preview 2发布 - April 10, 2018

我们今天宣布发布 .NET Core 2.1 Preview 2。这也是我们在接下来的两到三个月内接近最终发布的版本,该版本现已准备好进行广泛的测试。我们希望您有任何反馈意见。

ASP.NET Core 2.1 Preview 2和Entity Framework 2.1 Preview 2也在今天发布。

您可以在Windows,MacOS和Linux上下载并开始使用.NET Core 2.1 Preview 2:

  • .NET Core 2.1 Preview 2 SDK (包括运行时)

  • .NET Core 2.1 Preview 2 Runtime

您可以在.NET Core 2.1 Preview 2发行说明中看到该发行版的详细信息。发行说明中包含已知问题和解决方法。

您可以使用Visual Studio 2017 15.7 Preview 1或更高版本或Visual Studio Code 开发.NET Core 2.1应用程序。我们期望Visual Studio for Mac将在.NET Core 2.1 RTM 发布时增加支持。

非常感谢你一直以来参与我们的测试工作,直到我们发布.NET Core 2.1 RTM,我们将继续需要你的帮助。

构建性能优化

.NET Core 2.1 中的构建时性能得到了很大的提升,特别是对于增量构建。这些改进同时适用于命令行上的dotnet build 和 Visual Studio 中的构建。 我们对 CLI 工具和 MSBuild 进行了改进,以使这些工具提供更快的体验。

下面的图表提供了您可以从.NET Core 2.0 以来所获得的改进的具体数字。 我们专注于大型项目。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

这些改进来自许多变化,包括以下几点:

  • 加快包资源解决方案

  • 加快增量包资源解析

  • 重用MSBuild节点

  • 缓存MSBuild ResolveAssemblyReferences

如果您没有看到使用.NET Core 2.1 Preview 2的显着改进,我们很高兴看看您的项目。

长时间运行的SDK构建服务器

我们将长时间运行的服务器添加到.NET Core SDK中,以提高常见开发操作的性能。 其中一些是移植自.NET Framework,另一些是新的。

已经添加以下SDK构建服务器:

  • VBCSCompiler

  • MSBuild worker processes

  • Razor server

这些服务器的主要优势是,它们可以避免在每次dotnet build调用时都需要JIT编译大量代码。它们会在一段时间后自动终止。

您可以通过以下命令手动终止构建服务器进程:

dotnet buildserver shutdown

这个命令可可以在CI脚本中使用,以便在完成构建之后终止工作进程。您也可以运行构建dotnet build -nodeReuse:false以阻止创建MSBuild工作进程。

新的SDK命令

以下工具已添加到SDK中:

  • dotnet watch

  • dotnet dev-certs

  • dotnet user-secrets

  • dotnet sql-cache

  • dotnet ef

我们发现这些工具非常受欢迎行,不把它们添加到单个项目中似乎不是正确的设计,所以我们将它们作为SDK的一部分。

这些工具以前是DotNetCliToolReference工具。他们不再以这种方式交付。当您采用.NET Core 2.1时,您可以删除项目文件中DotNetCliToolReference的条目。

全局工具

.NET Core 现在有一个新部署和扩展机制。这种新体验与 NPM 全局工具非常相似,并且受到 NPM 全局工具的启发。

对于预览版2,全局工具的语法已更改,如以下示例中所示:

dotnet tool install -g dotnetsay 
dotnetsay

您可以通过查看 donetsay 工具示例 来创建自己的全局工具,(在安装.NET Core 2.1 Preview 2之后)。

新工具参数

所有工具操作现在都使用该dotnet tool命令。Preview 2中添加了以下新功能:

  • dotnet tool install - 安装一个工具

  • dotnet tool update - 卸载并重新安装工具,并对其进行有效更新

  • dotnet tool uninstall - 卸载一个工具

  • dotnet tool list - 列出当前安装的工具

  • --tool-path - 为每个调用指定一个特定的位置以(un)安装和列出工具

次要版本前滚

从2.0开始可以在相同主要版本范围内较新运行时版本上运行 .NET Core 应用程序。您可以在.NET Core 2.1 Preview 1文章中了解有关该行为的更多信息。

但是,.NET Core对于预览版具有相反的行为。包括全局工具在内的应用程序不会从一个预览转到另一个预览,或从预览到RTM。这意味着您需要发布全局工具的新版本以支持后期预览和RTM。

预览策略有点争议。背后的原因是我们可能会在给定的预览版和最终的RTM版之间做出破坏性的变更。这一策略使我们能够做到这一点,同时尽量减少生态系统的破损。还有一种可能的情况是,为预览而构建的软件没有使用RTM构建进行测试,但是,这种基本原理不太引人注目。

自.NET Core项目启动以来,该策略已经实施。全局工具使其更具挑战性。我们非常感谢您对此的反馈和洞察力。

Sockets 性能和 SocketsHttpHandler

我们对.NET Core 2.1中的Sockets 进行了重大改进。Sockets 是传出和传入网络通信的基础。.NET Core 2.1中的更高层级网络 API(包括HttpClient和Kestrel)现在基于.NET sockets.。在早期版本中,这些更高级别的API基于原生网络实现。

我们从头建立了一个新的管理的HttpMessageHandler,叫做SocketsHttpHandler。它是基于.NET套接字和Span <T>的HttpMessageHandler的实现。

SocketsHttpHandler现在是HttpClient的默认实现。SocketsHttpHandler最大的成就就是性能。它比现有的实现快得多。还有其他好处,例如:

  • 消除了libcurl(用于Linux和MacOS)和WinHTTP(用于Windows)的平台依赖关系- 简化了开发,部署和服务。

  • 跨平台和平台/依赖版本的一致行为。

您可以使用以下某种机制来配置进程以使用旧版本HttpClientHandler

从代码中,使用AppContext类:

AppContext.SetSwitch(“System.Net.Http.UseSocketsHttpHandler”,false);

AppContext开关也可以通过配置文件进行设置。

通过环境变量也可以达到同样的效果DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER。要退出,请将该值设置为false或0。

在Windows上,您可以选择使用WinHttpHandlerSocketsHttpHandler以逐个调用为基础。为此,请实例化其中一种类型,然后在实例化时将其传递给HttpClient。

在Linux和MacOS上,您只能在进程基础上配置HttpClient。在Linux上,如果您想使用旧的HttpClient实现,则需要自己部署libcurl。如果您的计算机上安装了.NET Core 2.0,则libcurl已安装。

自包含的应用程序服务

dotnet publish 现在用服务运行时版本发布自包含应用程序。当您使用新SDK发布自包含应用程序时,您的应用程序将包含该SDK已知的最新服务运行时版本。当您升级到最新的SDK时,您将使用最新的.NET Core运行时版本进行发布。这适用于.NET Core 1.0运行时和更高版本。

自包含发布依赖于NuGet.org上的运行时版本。你不需要在你的机器上有服务运行时。

使用.NET Core 2.0 SDK,自包含应用程序将与.NET Core 2.0.0 Runtime一起发布,除非通过RuntimeFrameworkVersion属性指定了不同的版本。有了这种新行为,您将不再需要设置此属性来为自包含应用程序选择更高的运行时版本。最简单的方法是始终使用最新的SDK发布。

Docker

我们正在整合我们用于.NET Core和ASP.NET Core的一系列Docker Hub存储库。我们将使用microsoft / dotnet作为我们唯一的.NET Core资源库。

公开可用的统计数据表明,大多数用户已经在使用dotnet回购,正如您通过以下泊坞扣拉取徽章所看到的那样:

  • microsoft/dotnet ->

  • microsoft/aspnetcore ->

  • microsoft/aspnetcore-build ->

您可以通过aspnet / announcements#298了解有关此更改以及如何适应的更多信息。

我们还为.NET Core Docker镜像添加了一组环境变量,适用于2.0及更高版本。这些环境变量可以让更多方案无需其他配置即可工作,例如在容器中开发ASP.NET Core应用程序。

  • To sdk images (example)

    • ASPNETCORE_URLS=http://+:80

    • DOTNET_RUNNING_IN_CONTAINER=true

    • DOTNET_USE_POLLING_FILE_WATCHER=true

  • To Linux runtime-deps images (example)

    • ASPNETCORE_URLS=http://+:80

    • DOTNET_RUNNING_IN_CONTAINER=true

  • To Windows runtime images (example)

    • ASPNETCORE_URLS=http://+:80

    • DOTNET_RUNNING_IN_CONTAINER=true

注意:这些环境变量将在本月晚些时候添加到2.0 镜像中。

支持的操作系统和芯片架构

最大的补充是支持Ubuntu 18.04并增加了官方的ARM32支持。

我们将支持 .NET Core 2.1 的以下操作系统版本:

  • Windows客户端:7,8.1,10(1607+)

  • Windows Server:2008 R2 SP1 +

  • macOS:10.12+

  • RHEL:7+

  • Fedora:26+

  • openSUSE:42.3+

  • Debian:8+

  • Ubuntu:14.04+

  • SLES:12+

Alpine 支持仍在预览中。

我们将支持以下芯片架构:

  • 在Windows上:x64和x86

  • 在Linux上:x64和ARM32

  • 在macOS上:x64

Azure应用服务和VSTS部署

ASP.NET Core 2.1预览不会自动部署到Azure App Service。相反,您可以选择仅使用一点点配置来使用.NET Core预览。有关更多信息,请参阅在Azure应用程序服务上使用ASP.NET Core预览。

Visual Studio Team Service对.NET Core 2.1的支持将更接近RTM。

.NET Core 2.1 Preview 1 的关键改进

有一些重要的改进对于从.NET Core 2.1 Preview 1中重述很重要。有关更多详细信息,请参阅.NET Core 2.1 Preview 1 Announcement。

  • 次要版本前滚

  • Span, Memory and friends

  • Windows Compatibility Pack

结束

请使用.NET Core 2.1 Preview 2测试您的现有应用程序。预先感谢您尝试一下。我们需要您的反馈,在最终的2.1版本中通过线上的这些新功能测试到达终点。

.NET Core 2.1是.NET Core 2.0向前迈进的一大步。我们希望您找到能够让您升级的多项改进。

再一次感谢所有为发布做出贡献的人。我们非常感谢您贡献的所有问题和PR,帮助您制作此预览版。

原文地址 http://www.cnblogs.com/shanyou/p/8809962.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UOJ#244-[UER#7]短路【贪心】

正题 题目链接:http://uoj.ac/problem/244 题目大意 n1n1n1个矩阵如下图所示 每一层的格子有相同的延时&#xff0c;现在加一些平行于坐标轴的导线&#xff0c;求左上到右下的最小延迟。 解题思路 可以知道最优解一点是走到某个矩阵的左上角然后走这个矩阵到右下角然后到终点…

使用 C#/.NET Core 实现单体设计模式

本文的概念内容来自深入浅出设计模式一书由于我在给公司做内培, 所以最近天天写设计模式的文章....单体模式 Singleton单体模式的目标就是只创建一个实例.实际中有很多种对象我们可能只需要它们的一个实例, 例如: 线程池,缓存, 弹出的对话框, 用于保存设置的类, 用于logging的类…

linux下离线安装gcc

有时服务无法连接网络&#xff0c;此时可以使用源码包的方式安装gcc工具 1.上传安装包并解压 创建目录 cd /home/software/ mkdir gcc_bak 上传到此目录下 tar -zxvf gcc_rpm.tar.gz 2.安装gcc 进入到解压后的目录&#xff0c;执行命令 rpm -Uvh *.rpm --nodeps --…

P3462-[POI2007]ODW-Weights【贪心】

正题 题目链接:https://www.luogu.com.cn/problem/P3462 题目大意 nnn个容器容量不同&#xff0c;mmm个物品&#xff0c;对于一两个物品i,ji,ji,j&#xff0c;若wi≤wjw_i\leq w_jwi​≤wj​那么有wi∣wjw_i|w_jwi​∣wj​。 求能够放下的最多物品。 解题思路 显然就是一个进…

用C#(.NET Core) 实现简单工厂和工厂方法设计模式

本文源自深入浅出设计模式. 只不过我是使用C#/.NET Core实现的例子.前言当你看见new这个关键字的时候, 就应该想到它是具体的实现.这就是一个具体的类, 为了更灵活, 我们应该使用的是接口(interface).有时候, 你可能会写出这样的代码:这里有多个具体的类被实例化了, 是根据不同…

1、oracle数据库简介

1.ORACLE数据库简介 数据库指的是存储和管理数据的仓库&#xff0c;是一种文件集合&#xff08;包括数据文件、临时文件、日志文件和控制文件&#xff09;&#xff0c;我们一般所说的数据库指的是数据库管理系统&#xff0c;一种用于操作数据库的软件&#xff0c;简称DBMS。OR…

U102488-傻叉题【dp】

前言 %\%%一下出题人BPMBPMBPM 正题 题目链接:https://www.luogu.com.cn/problem/U102488 题目大意 nnn个数&#xff0c;选取两组(不一定要全用上)使得他们的和相等且最大。 解题思路 考虑dpdpdp&#xff0c;fi,jf_{i,j}fi,j​表示到第iii个&#xff0c;差值为jjj(这里的差值…

TypeScript 2.8引入条件类型

最新发布的TypeScript 2.8包含了若干主要特性和一些问题修复&#xff0c;其中最为重要的是新增了条件类型&#xff0c;开发人员可以根据其他类型的特征为变量选择适当的类型。条件类型最适合与泛型组合在一起使用。如果一个框架总是重复相同的选择性代码&#xff0c;就会变得很…

2、oracle数据库的用户和权限

ORACLE用户和权限 每个用户都有一个默认表空间和一个临时表空间&#xff0c;因此操作用户的顺序一般是先创建表空间&#xff0c;然后创建用户&#xff0c;之后赋权。 1.创建表空间 1.1 创建临时表空间 create temporary tablespace test_tmp tempfile /home/oracle/aracle…

jzoj6451-[2020.01.19NOIP提高组]不幸运数字【记忆化搜索,数位dp,高精度】

正题 题目链接:https://jzoj.net/senior/#main/show/6451 题目大意 给出a,ba,ba,b&#xff0c;求[a,b][a,b][a,b]这个区间中有多少数字包含444。 解题思路 用fi,j,kf_{i,j,k}fi,j,k​表示到第iii位&#xff0c;是否含有444&#xff0c;前面的位是否都到达上限。 然后dfsdfs…

用分布式缓存提升ASP.NET Core性能

得益于纯净、轻量化并且跨平台支持的特性&#xff0c;ASP.NET Core作为热门Web应用开发框架&#xff0c;其高性能传输和负载均衡的支持已广受青睐。实际上&#xff0c;10-20台Web服务器还是轻松驾驭的。有了多服务器负载的支持&#xff0c;使得Web应用层在业务增长时随时采用水…

3、oracle数据库的语法基础

ORACLE语法基础 ORACLE的语法基础主要包括数据类型和SQL语法。 1.数据类型 1.1字符型 用于存储文本的数据类型 CHAR&#xff08;固定长度字符串1-2000个字节&#xff09; VARCHAR2&#xff08;可变长度字符串&#xff0c;字符串1-4000个字节&#xff09; LONG&#xff08;更…

123记住密码设置

1、打开123所在安装目录 2、进入config目录 3、找到.ovpn文件 4、找到auth-user-pass&#xff0c;没有的话在最后填写即可 在.ovpn同级目录下创建一个.txt文件&#xff0c;然后在这里设置一下 例如&#xff1a;auth-user-pass pass.txt 5、创建.txt文件&#xff0c;填写用户名…

Visual Studio 2017 15.7预览版发布

Visual Studio 2017已经发布一年多了&#xff0c;微软一直持续定期推出更新。第7个预览版也已发布&#xff0c;这一版本继续带来大量的改进。首先是增加了对TypeScript 2.8的支持。TypeScript 2.8带来了条件类型、JSX Pragma和映射类型标识符的可控性。VS2017的其他改进还包括在…

P3377-[模板]左偏树(可并堆)

正题 题目链接:https://www.luogu.com.cn/problem/P3377 题目大意 开始时nnn个只有一个数的集合&#xff0c;要求支持 合并两个集合查询一个集合中的最小值并删除 解题思路 左偏树就是维护一个满足以下性质的树 对于valxval_xvalx​有valx<vallsxval_x<val_{ls_x}va…

4、oracle数据库的查询基础

ORACLE查询基础 介绍oracle下数据的查询时用到的一些运算符、关键字和函数。 1.运算符 在进行数据查询时&#xff0c;有的时候不只是查询字段值&#xff0c;还需要做一些数据处理的操作&#xff0c;这时候就用到了运算符 -- 算术运算符 - * / -- 连接运算符 || -- 比较运算…

2018年4月更新70多个公司dnc招聘职位

2018年4月更新70多个公司dnc招聘职位请在本页回复&#xff0c;补充dnc招聘信息、公司案例dnc简介dnc .NET Core、dotnet Core简写dnc是微软新一代主力编程平台&#xff0c;开源、免费、跨平台、轻量级、高性能&#xff0c;可部署到Linux、Docker、k8s等环境&#xff0c;适合开…

P1552-[APIO2012]派遣【左偏树】

正题 题目链接:https://www.luogu.com.cn/problem/P1552 题目大意 一个nnn个点森林&#xff0c;每个点有价值和代价&#xff0c;选择一个点并在这个点的子树中选择一些点使得。 选择的点数∗该点的价值选择的点数*该点的价值选择的点数∗该点的价值最大且选择的点的代价之和不…

5、oracle下数据完整性约束

ORACLE下数据完整性约束 为了保证数据的完整性和结构的正确性&#xff0c;oracle也有很多约束条件。 1.数据完整性 为了保证数据的完整性&#xff0c;一般对数据列&#xff08;字段&#xff09;进行如下约束&#xff0c;主键约束&#xff08;PRIMARY KEY&#xff09;、唯一键…

把旧系统迁移到.Net Core 2.0 日记(1) - Startup.cs 解析

因为自己到开发电脑转到Mac Air&#xff0c;之前的Webform/MVC应用在Mac 跑不起来&#xff0c;而且.Net Core 2.0 已经比较稳定了。1. 为什么会有跨平台的.Net Core 近年来&#xff0c;我们已经进入云计算时代&#xff0c;在云平台的PaSS和SaSS上也是发生了大幅度的进化&#x…