.NET Core 2.2发布一览
本周终于发布了.NET Core 2.2,ASP.NET Core 2.2以及Entity Framework Core 2.2,虽然更大的新闻可能是.NET Core 3.0的特性公布,但不妨先将现有的.NET Core版本升级到2.2,及时体验一下新的功能。
.NET Core 2.2
分层编译
分层编译特性使得运行时可以更灵活地使用JIT编译器,从而提升在启动方面和最大化吞吐量上的性能。该特性在.NET Core 2.1时已作为可选特性加入其中,在.NET Core 2.2的预览版本中被默认使用,而到了最终发布阶段,还是改回了可选特性。.NET Core 3.0之后或许会成为默认选项吧。
运行时事件
为了获悉在运行应用程序时服务的工作情况,需要监测在当前进程中的诸如垃圾回收,JIT和线程池等运行时服务。在Windows系统中,一般ETW(Event Tracing for Windows) 的监测功能就可以满足此要求。但在.NET Core 2.2之前,ETW的执行效果并不令人如意。
现在, 通过EventListener类可以使用CoreCLR事件。这些事件描述了垃圾回收,JIT,线程池和interop的行为。它们在Windows上作为CoreCLR ETW provider的一部分对外公开。这将允许应用程序可以使用这些事件,又或者使用传输机制发送给其它监测服务。
在SqlConnection中提供对AccessToken的支持
SQL Server的ADO.NET provider,SqlClient,现在支持通过设置AccessToken属性以认证使用Azure Active Directory的SQL Server连接。该属性包含在Microsoft.IdentityModel.Clients.ActiveDirectory类库里。
在Main方法之前插入代码
现在通过Startup Hook可以在运行应用程序的Main方法之前插入特定的代码。对于已经发布的应用程序,不用重新编译或者改变程序,Startup Hook能够定制所需的行为。
Windows ARM32
与.NET Core 2.1中对Linux ARM32支持相似的,在.NET Core 2.2里加入了对Windows ARM32的支持。但在发布时遇到了较严重的bug,所以可能在之后的版本中,比如2019年1月即将发布的.NET Core 2.1.1中会真正附加此特性。
平台支持
NET Core 2.2支持下列操作系统:
- Windows Client: 7, 8.1, 10 (1607+)
- Windows Server: 2008 R2 SP1+
- macOS: 10.12+
- RHEL: 6+
- Fedora: 26+
- Ubuntu: 16.04+
- Debian: 9+
- SLES: 12+
- openSUSE: 42.3+
芯片支持包括:
- x64 on Windows, macOS, and Linux
- x86 on Windows
- ARM32 on Linux (Ubuntu 16.04+, Debian 9+)
- ARM32 on Windows (1809+; available in January)
ASP.NET Core 2.2
这次的更新主要是为了提高开发者的生产力以及增强创建Web/HTTP API的功能。同时,也在性能方面有所改善。这些更新包含以下几点:
- 与Swagger类库更好地集成,代码分析提供了设计时检查。
- 引入终端路由,提升了MVC中20%的路由性能
- 改进LinkGenerator的URL生成,支持路由参数转换
- 加入了对于应用程序的健康进行监测新API(此功能来源自和BeatPulse项目的集成)
- 由于进程内托管的支持,在IIS上提升了400%的吞吐量
- 提升了15%的MVC模型验证性能
- 在MVC中加入了对问题明细(Problem Details)(RFC 7807)的支持
- 在ASP.NET Core中可以预览对HTTP/2 server的支持
- 对于Bootstrap 4与Angular 6模板的升级
- 提供了ASP.NET Core SignalR的Java客户端
- 在Linux上提升了60%的HTTP客户端性能,同时在Windows上提升了20%
Entity Framework Core 2.2
支持空间数据
空间数据可以用于表示物理距离和目标形状。在EF Core 2.2中借助NetTopologySuite类库的帮助对空间数据提供了支持。当前已支持的数据库包括SQL Server,SQlite和PostgreSQL。
所有型实体(owned entity)集合
所有型实体中仅可以出现其它实体类型的导航属性。
EF Core 2.0中新加了一对一关联的所有型实体,而在EF Core 2.2中则进一步地扩展到了一对多的关联。
查询标签
该特性简化了代码中Linq语句与日志中生成的SQL语句之间的关联。
加上标签的方法是TagWith。
var nearestFriends =
(from f in context.Friends.TagWith(@"This is my spatial query!")
orderby f.Location.Distance(myLocation) descending
select f).Take(5).ToList();
最后生成的SQL语句中包含了Linq代码中附加的标签。
-- This is my spatial query!
SELECT TOP(@__p_1) [f].[Name], [f].[Location]
FROM [Friends] AS [f]
ORDER BY [f].[Location].STDistance(@__myLocation_0) DESC
.NET Core 2.2发布一览的更多相关文章
- .NET Core 最小化发布
.NET Core 应用最小化独立部署发布,.NET Core 默认应用独立发布,大概占用50m左右的空间,不同的系统大小有所区别. .NET Core 的发布之前我也有所介绍,.NET Core 跨 ...
- ASP.NET Core 指定环境发布(hosting environment)
ASP.NET Core 应用程序发布命令: dotnet publish [<PROJECT>] [-f|--framework] [-r|--runtime] [-o|--output ...
- .NET Core单文件发布静态编译AOT CoreRT
.NET Core单文件发布静态编译AOT CoreRT,将.NET Core应用打包成一个可执行文件并包含运行时. 支持Windows, MacOS and Linux x64 w/ RyuJIT ...
- [转]ASP.NET Core 指定环境发布(hosting environment)
本文转自:https://www.cnblogs.com/xishuai/p/asp-net-core-set-hosting-environment-with-publish.html ASP.NE ...
- CentOS&.NET Core初试-2-安装.NET Core SDK和发布网站
系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) 安装.NET Core SDK 注册Microsoft ...
- 译 .NET Core 3.0 发布
原文:<Announcing .NET Core 3.0> 宣布.NET Core 3.0 发布 很高兴宣布.NET Core 3.0的发布.它包括许多改进,包括添加Windows窗体和W ...
- 记录一次创建.net core 项目 并且发布到docekr【完全新手入门】
1]环境说明 操作系统:Window 10 专业版 开发工具 Vs2019专业版 Docker: Docker for Windows 2]创建.net core项目并且发布 2.0先打开并且运行 ...
- [转帖].NET Core单文件发布静态编译AOT CoreRT
.NET Core单文件发布静态编译AOT CoreRT https://www.cnblogs.com/linezero/p/CoreRT.htm .NET Core单文件发布静态编译AOT Cor ...
- .net core 3.0 发布 500.0 - ANCM In-Process Handler Load Failure 错误
.net core 3.0 发布后报500.0错误 原因: 发布设置和下载的Runtime SDK不匹配 https://dotnet.microsoft.com/download/dotnet-c ...
随机推荐
- 【SqlServer】SqlServer的异常处理
在SQLserver数据库中,如果有很多存储过程的时候,我们会使用动态SQL进行存储过程调用存储过程,这时候,很可能在某个环节就出错了,但是出错了我们很难去跟踪到出错的存储过程,此时我们就可以使用异常 ...
- 【Visual Studio】Visual Studio对CLR异常的特殊支持
Visual Studio 对异常进行了特殊的支持,它能够在进行了特殊设置后,使代码中的try catch块失效.也就是说,一个异常在正常情况下应该能够被某个特殊的try catch块捕获,但是Vis ...
- ASCII、Unicode和UTF-8编码的区别
归纳: 编码 大小 支持语言 ASCII 1个字节 英文 Unicode 2个字节(生僻字4个) 所有语言 UTF-8 1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节 所有语言 具体 ...
- ES6入门基础
let和const 一.块级作用域 ES5 只有全局作用域和函数作用域,没有块级作用域,这样的缺点是:1.用来计数的循环变量泄露为全局变量.2.内层变量可能会覆盖外层变量 var tmp = new ...
- Python爬取金山词霸每日一句,存储到MySQL中
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/3 20:25 # @Author : baoshan # @Site : ...
- 【emWin】例程十六:窗口管理器
介绍: 显示器上出现的任何内容都包含在窗口中,窗口可以为任何尺寸,并且可在屏幕上一次显示多个窗口, 甚至部分或整个窗口在其他窗口的前面也可.我们可以对窗口进行创建.移动.调整大小等操作,也 可以操控任 ...
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-5 底层驱动之旋转编码器
源视频包下载地址:链接:http://pan.baidu.com/s/1mhENI9i密码:mf1x 银杏科技优酷视频发布区:http://i.youku.com/gingko8
- Hive数据倾斜解决办法总结
数据倾斜是进行大数据计算时最经常遇到的问题之一.当我们在执行HiveQL或者运行MapReduce作业时候,如果遇到一直卡在map100%,reduce99%一般就是遇到了数据倾斜的问题.数据倾斜其实 ...
- Oracle HAVING子句 - 转
使用 HAVING 子句选择行 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似.WHERE 子句搜索条件在进行分组操作之前应用:而 ...
- chromedriver与chrome最新版本对应表
如果需要看到最新版的chromedriver和chrome版本对应问题,点击http://npm.taobao.org/mirrors/chromedriver/,点击最新版本的chromedrive ...