.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 ...
随机推荐
- python module install
1.issue: How can I bypass kivy module error: ImportError: DLL load failed: The specified module coul ...
- producter-consumer 他山之石
#include <pthread.h> #include <list> using namespace std; template <typename T> cl ...
- 一起SQL引发OOM的解决思路与过程(转载)
在TOMCAT WEB程序的运行过程中,突然触发了内存溢出错误,检查Tomcat的localhost日志,找到如下信息: java.lang.OutOfMemoryError: Java heap s ...
- Android BLE蓝牙开发-读写数据 获取UUID
https://www.jianshu.com/p/3711cfbf7128 一个ble蓝牙设备有多个包括多个Profile 一个Profile中有多个服务Service(通过服务的uuid找到对应的 ...
- jquery ui autocomplete输入中文不自动完成的问题
因为输入法或浏览器的问题,在输入中文后并没有触发自动完成,要再按多一下键盘才触发,查看发现它是用keydown来实现.bind("keydown.autocomplete", fu ...
- [Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志. ...
- Oracle同一个用户下启动多个数据库实例
oracle@yingxiang-testServer1 oradata]$ export ORACLE_SID=APPDB[oracle@yingxiang-testServer1 oradata ...
- hdoj:2022
#include <iostream> #include <string> using namespace std; int main() { int m, n; int x, ...
- 【转】WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等 本文主要内容: CheckBox复选框的自定义样式,有两种不同的风格实现: RadioB ...
- Mysql系列九:使用zookeeper管理远程Mycat配置文件、Mycat监控、Mycat数据迁移(扩容)
一.使用zookeeper管理远程Mycat配置文件 环境准备: 虚拟机192.168.152.130: zookeeper,具体参考前面文章 搭建dubbo+zookeeper+dubboadmin ...