.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的类…

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

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

TypeScript 2.8引入条件类型

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

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

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

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的其他改进还包括在…

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

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

把旧系统迁移到.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…

ASP.NET Core 2.0 : 图说管道,唐僧扫塔的故事

本文通过一张GIF动图来继续聊一下ASP.NET Core的请求处理管道&#xff0c;从管道的配置、构建以及请求处理流程等方面做一下详细的研究。&#xff08;ASP.NET Core系列目录&#xff09;一、概述上文说到&#xff0c;请求是经过 Server监听>处理成httpContext>Application…

ASP.NET MVC应用迁移到ASP.NET Core及其异同简介

ASP.NET Core是微软新推出支持跨平台、高性能、开源的开发框架&#xff0c;相比起原有的ASP.NET来说&#xff0c;ASP.NET Core更适合开发现代应用程序&#xff0c;如跨平台、Dorker的支持、集成现代前端开发框架(如npm、bower、gulp等等)。另外相比ASP.NET它的性能更好&#xf…

使用 C# (.NET Core) 实现模板方法模式 (Template Method Pattern)

本文的概念内容来自深入浅出设计模式一书.项目需求有一家咖啡店, 供应咖啡和茶, 它们的工序如下:咖啡:茶:可以看到咖啡和茶的制作工序是差不多的, 都是有4步, 其中有两步它们两个是一样的, 另外两步虽然具体内容不一样, 但是都做做的同一类工作.现在问题也有了, 当前的设计两个…

.NET Core Community 首个千星项目诞生:CAP

项目简介在我们构建 SOA 或者 微服务系统的过程中&#xff0c;我们通常需要使用事件来对各个服务进行集成&#xff0c;在这过程中简单的使用消息队列并不能保证数据的最终一致性&#xff0c; CAP 采用的是和当前数据库集成的本地消息表的方案来解决在分布式系统互相调用的各个环…

.NET Core 从 Github到 Nuget 持续集成、部署

一.前言Nuget 作为一个.NET研发人员&#xff0c;我想你都不会陌生&#xff0c;他为我们提供非常方便的程序包管理&#xff0c;不管是版本&#xff0c;还是包的依赖都能轻松应对&#xff0c;可以说是我们的好助手。而 Nuget 除了官方nuget.org以外&#xff0c;我们也可以用起提供…

微软发布自己定制的 Linux 内核和发行版,面向物联网

微软首次发布了自己的定制 Linux 内核和发行版。在旧金山举行的新闻发布会上&#xff0c;微软宣布了针对物联网设备的解决方案 Azure Sphere。Azure Sphere 包含三个组件。其中之一是微软设计的 Sphere MCU&#xff0c;将免费提供给厂商&#xff0c;联发科将在今年晚些时候推出…

MEDIATR 一个低调的中介者类库

微软官方的开源项目eShopOnContainers中&#xff0c;用到了一个实现中介者模式的类库&#xff1a;MediatR。这个类库的作者叫Jimmy Bogard&#xff0c;在其gtihub主页上可以看到&#xff0c;注明的对象映射组件AutoMapper 就是他写的。其博客上的自我介绍是这么写的&#xff1a…

ApacheSkyWalking APM 生态衍生多语言监控, 支持 .NET Core

Apache SkyWalking .NET core 探针发布&#xff01;GitHub: https://github.com/apache/incubator-skywalking 码云Gitee: https://gitee.com/OpenSkywalking/sky-walkingApache SkyWalking在4月初&#xff0c;发布了加入Apache孵化器后的第一个版本&#xff1a;5.0.0-alpha。…

使用TFS CI/CD 完成 VSTS 插件自动化部署和发布

Visual Studio Team Service 经过了13年的版本演进和5年的在线运营&#xff0c;现在已经是最成熟的商用DevOps工具链&#xff0c;Marketplace作为VSTS为全球开发者提供各种类型的插件市场&#xff0c;为Visual Studio, Visual Studio Code和Visual Studio Team Service本身提供…

用C# (.NET Core) 实现迭代器设计模式

本文的概念来自深入浅出设计模式一书项目需求有两个饭店合并了, 它们各自有自己的菜单. 饭店合并之后要保留这两份菜单.这两个菜单是这样的:菜单项MenuItem的代码是这样的:最初我们是这样设计的, 这是第一份菜单:这是第2份菜单:同时有两个菜单存在的问题问题就是多个菜单把事情…

2020-09-18

1.处理调用子组件方法时&#xff0c;报错undefined问题 2.var 、const 、let区别 3. curl -X GET --header "Accept: */*" "访问地址" 4.mysql中的日期格式化 5. ant-design-vue-jeecg