.NET Core 3.0稳定版发布

一年一度的 .NET 开发者盛会 .NET Conf 2019 已正式开始了(举办时间为 9.23-9.25)。大会第一天最重磅也是最激动人心的消息莫过于 .NET Core 3.0 稳定版的发布。.NET 项目管理总监 Scott Hunter 在大会宣布了这则消息,并在主题演讲环节围绕 .NET Core 3.0 的新特性和社区展开了介绍。

640?wx_fmt=png

作为一个大版本更新,.NET Core 3.0 引入了大量改进和新特性,例如新增加的 Windows Forms 和 WPF、新的 JSON API、对 ARM64 架构的支持,以及全面提升的性能。对了,C# 8 也是 .NET Core 3.0 本次更新的一部分,其中包括可空引用类型(nullable)、异步流(Async Streams)和更多的模式。

除了 C# 8,.NET Core 3.0 的更新内容还包括 F# 4.7,此版本主要是对语法进行改进,并将目标平台升级至面向 .NET Standard 2.0。

.NET 团队表示 .NET Core 3.0 会兼容之前的版本,所以大家现在就可以将项目升级至 .NET Core 3.0。

.NET Core 3.0 的一些“新料”

在深入探究 .NET Core 3.0 的所有新功能之前,先来看看一些重要的改进,其中提及到了 C# 8、F# 4.7、.NET Standard 2.1、在其他发行版上的支持情况等。

要注意的是,如需使用 .NET Core 3.0,请将 Visual Studio 升级至 2019 16.3 版本(Windows 用户)。
  • 在 .NET Core 3.0 稳定版发布前,它已在 dot.net 和 Bing.com 这两个网站上运行了数月,并已通过严格的测试。微软的团队也将很快在生产环境中将工作负载部署到 .NET Core 3.0 上。

  • 许多组件的性能都获得了巨大提升,详情可查看介绍 .NET Core 3.0 性能改进的内容。

  • C# 8 增加了异步流(async streams)、范围类型和索引类型(range/index)、更多的模式以及可空引用类型。可空引用类型主要用于帮助我们处理无处不在的空引用异常(NullReferenceException),另外,框架库的底层已被注释,编译器会分析代码流,因此我们能查看null值是否可以将其用于当前位置。

  • F# 4.7 主要是通过使用隐式的yield表达式来简化一些操作,以及语法。此外还提供了对LangVersion的支持、新增nameof关键字,和处于预览阶段的静态类。F# 核心库的目标平台为 .NET Standard 2.0,详情点此了解。

  • .NET Standard 2.1 增加了可以在代码中使用的类型集,它们也可同时用于 .NET Core 和 Xamarin。

  • .NET Core 现在已为 Windows 桌面应用提供支持、同时支持 Windows Forms 和 WPF(已开源)。WPF 设计器已属于 Visual Studio 2019 16.3 的一部分。Windows Forms 设计器则仍处于预览阶段,可从 VSIX 进行下载。

  • .NET Core 应用现在默认情况下就具有可执行文件。在之前的版本中,需要通过dotnet命令来启动应用,如dotnet myapp.dll。不过从这个版本开始,我们可以使用特定于应用程序的可执行文件(例如 myapp./myapp, )来启动应用程序,具体取决于操作系统。

  • 新增高性能的 JSON API,用于读取器/写入器、对象模型和序列化方案。这些 API 基于Span<T>从头开始构建,使用 UTF8 来替代 UTF16(如 string),另外由于这些 API 使用了最小化的内存分配,因此带来了更好的性能,减少了垃圾回收器的工作。详情请查看 The future of JSON in .NET Core 3.0。

  • 默认情况下,垃圾回收器使用更少的内存。对于许多应用程序托管在同一服务器上的情况,此改进非常有用。此外,新版本中 GC 能更好地利用具有 64 核(或大于)的机器的核心数量。

  • .NET Core 强化了对 Docker 的支持,以使 .NET 应用程序在容器中能按预期且有效地运行。当容器被配置为有限的内存或 CPU 时,垃圾回收器和线程池会更好地进行适应已提供最具优化效果的运行方式。.NET Core 的 Docker 镜像体积也更小 —— 尤其是 SDK 镜像。

  • 支持 Raspberry Pi 和 ARM 芯片,以助力 IoT 开发。其中包括远程 Visual Studio 调试器。这就意味着我们可以使用新的 GPIO API 来部署可监听传感器的应用程序,并在显示器上打印消息或图像。ASP.NET 可用于将数据暴露为 API,或作为一个在 IoT 设备启用配置的站点。

  • .NET Core 3.0 会被 11 月发布的 .NET Core 3.1 取代,因为后者才是 LTS 版本(至少会获得三年的技术支持),不过官方还是建议大家先升级到 .NET Core 3.0,然后再升级到 3.1,这样过渡起来更方便。

  • .NET Core 2.2 将于今年 12.23 到达 EOL 阶段。查看 .NET Core support policy。

  • .经过与 Red Hat 的多年合作,.NET Core 3.0 将随 RHEL 8 在 Red Hat Application Streams 中一起提供。

  • Visual Studio 用户如需在 Windows 上使用 .NET Core 3.0,需要升级至 Visual Studio 2019 16.3。

  • Visual Studio 用户如需在 macOS 上使用 .NET Core 3.0,需要升级至 Visual Studio for Mac 8.3。

  • Visual Studio Code 用户则需要使用最新版本的 C# 扩展,以确保最新的方案能够正常工作,包括针对 .NET Core 3.0 的目标平台。

  • .NET Core 3.0 的 Azure App Service 部署目前正在进行中。

  • .NET Core 3.0 的 Azure Dev Ops 部署即将推出。

.NET Core 3.0 支持的平台

  • Alpine: 3.9+

  • Debian: 9+

  • openSUSE: 42.3+

  • Fedora: 26+

  • Ubuntu: 16.04+

  • RHEL: 6+

  • SLES: 12+

  • macOS: 10.13+

  • Windows Client: 7, 8.1, 10 (1607+)

  • Windows Server: 2012 R2 SP1+

要注意的是,Windows Forms 和 WPF 应用仅支持在 Windows 上运行。

对芯片的支持情况如下:
  • x64 on Windows, macOS, and Linux

  • x86 on Windows

  • ARM32 on Windows and Linux

  • ARM64 on Linux (kernel 4.14+)

注意:请确保 .NET Core 3.0 在 ARM64 上的部署使用 Linux Kernel 4.14 或更高版本。例如,Ubuntu 18.04 能满足此要求,但 16.04 却不满足。

WPF 和 Windows Forms

现在我们可以在 Windows 上使用 .NET Core 3 构建 WPF 和 Windows Forms 应用程序了。有关兼容性方面的问题,微软表示大可不必担心,因为他们从一开始就考虑到了这个问题,以使将桌面应用程序从 .NET Framework 迁移到 .NET Core 变得更加容易。
下面是官方提供的一个例子,.NET Core Windows Forms App:
640?wx_fmt=png

Visual Studio 2019 16.3 支持创建面向 .NET Core 的 WPF 应用程序,这包括新模板以及更新的 XAML 设计器和 XAML Hot Reload。

下图展示了使用新设计器开发的 WPF 应用程序:
640?wx_fmt=png

不过 Windows Forms 设计器目前尚处于预览阶段,可从此处单独下载。微软表示会在未来发布的 Visual Studio 中集成 Windows Forms 设计器。

更多内容请查看「阅读原文」。

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

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

相关文章

深入理解 Spring Boot Starters 原理(手写Spring boot Start)

一、Spring Boot Starter诞生原因 Spring Boot Starter是在SpringBoot组件中被提出来的一种概念&#xff0c;stackoverflow上面已经有人概括了这个starter是什么东西&#xff0c;想看完整的回答戳这里 Starter POMs are a set of convenient dependency descriptors that you …

FFT字符串匹配(解决通配符问题)

FFT字符串匹配 定义字符串下标从000&#xff0c;开始&#xff0c;有文本串AAA长度为nnn&#xff0c;模式串BBB长度为mmm&#xff0c;我们可以考虑一个函数f(x,y)A(x)−B(y)f(x, y) A(x) - B(y)f(x,y)A(x)−B(y)。 我们设F(x)(x≥m−1)∑i0m−1f(x−m1i,i)F(x)(x \ge m - 1) …

记一次中小公司的研发问题

作者&#xff1a;zollty&#xff0c;资深程序员和架构师&#xff0c;私底下是个爱折腾的技术极客&#xff0c;架构师社区合伙人&#xff01;一、一些不好的现状&#xff0c;及对应的改进方法1、前后端代码绑定在一起&#xff0c;很难维护&#xff0c;前端UI做得太差&#xff0c…

命令行操作mysql

1、通过命令行连接mysql&#xff1a; 1、输入命令&#xff1a;mysql -h localhost&#xff08;服务IP地址&#xff09; -u root&#xff08;用户名&#xff09; -P 3306&#xff08;服务端口&#xff09;-p 2、输入密码 2、显示数据库、表&#xff1a; show databases; //…

2021CCPC华为云挑战赛:HDU 7091 重叠的子串(SAM + 线段树合并)

重叠的子串 给定一个长度为n(1≤∣s∣≤105)n(1 \le \mid s \mid \le 10 ^ 5)n(1≤∣s∣≤105)的只由小写字母构成的字符串sss&#xff0c;有m,(1≤m≤106)m, (1 \le m \le 10 ^ 6)m,(1≤m≤106)个询问&#xff1a; 每次询问给定l,rl, rl,r&#xff0c;问sss是否存在一个字串…

ASP.NET Core 3.0 使用gRPC

一.简介gRPC 是一个由Google开源的&#xff0c;跨语言的&#xff0c;高性能的远程过程调用&#xff08;RPC&#xff09;框架。gRPC使客户端和服务端应用程序可以透明地进行通信&#xff0c;并简化了连接系统的构建。它使用HTTP/2作为通信协议&#xff0c;使用 Protocol Buffers…

mysql 1030 error:Got error 28 from storage engine

最近生产应用连不上生产环境数据库&#xff0c;使用命令行连上去之后&#xff0c;执行命令出现1030 error。 故Google之&#xff0c;解决方案如下。 mysql 1030 error 是因为没有足够的空间&#xff0c;清理磁盘空间即可恢复正常使用。 然后追踪发现&#xff0c;磁盘空间为99G&…

Codeforces Round #739 (Div. 3)(AK实况)

Codeforces Round #739 (Div. 3) A. Dislike of Threes 找到第kkk个既不是333的倍数&#xff0c;个位数上也不是333的数&#xff0c;也已预处理然后O(1)O(1)O(1)输出&#xff0c;也可直接forforfor循环暴力。 #include <bits/stdc.h>using namespace std;int main() {/…

利用Helm简化Kubernetes应用部署(2)

目录定义Charts 使用Helm部署Demo Helm常用操作命令 定义Charts回到之前的“charts”目录&#xff0c;我们依次进行解读并进行简单的修改。Chart.yaml配置示例&#xff1a;apiVersion: v1 appVersion: "1.1" description: A demo Helm chart for Kubernetes name:…

linux查看磁盘空间命令

Linux 查看磁盘空间可以使用 df 和 du 命令。 df df 以磁盘分区为单位查看文件系统&#xff0c;可以获取硬盘被占用了多少空间&#xff0c;目前还剩下多少空间等信息。 例如&#xff0c;我们使用df -h命令来查看磁盘信息&#xff0c; -h 选项为根据大小适当显示&#xff1a; …

Visual Studio 2019 16.3 正式发布,支持 .NET Core 3.0

微软正式发布了 Visual Studio 2019 16.3 版本&#xff0c;主要更新内容如下&#xff1a;.NET Core 3.0Visual Studio 版本 16.3 包括对 .NET Core 3.0 的支持。注意&#xff1a;如果使用的是 .NET Core 3.0&#xff0c;则需要使用 Visual Studio 16.3 或更高版本。.NET Core 桌…

Linux清空文件内容的三种方法

Linux清空文件内容的三种方法 测试文件&#xff1a;test.txt 1、 $ > test.txt 2、 $echo “” > test.txt 3、 $cat /dev/null > test.txt

Problem M. Mediocre String Problem(Z 函数 + PAM)

Problem M. Mediocre String Problem 给定两个串s,ts, ts,t&#xff0c;要求有多少不同的三元组(i,j,k)(i, j, k)(i,j,k)&#xff0c;满足&#xff1a; 1≤i≤j≤∣s∣1 \le i \le j \le \mid s \mid1≤i≤j≤∣s∣。1≤k≤∣t∣1 \le k \le \mid t \mid1≤k≤∣t∣。j−i1≥k…

【干货】规模化敏捷DevOps四大实践之持续探索CE(中英对照版)

本文翻译来自SAFe DevOps社群帅哥网友贾磊&#xff1a;高级质量经理&敏捷教练 曾就职于外企、国企、大型上市企业等&#xff0c;担任过测试工程师、测试经理、项目经理、敏捷教练、质量总监、高级质量经理等岗位。是一名敏捷变革的爱好者和践行者。爱好网球、羽毛球。正文原…

Spring Cloud——Eureka——架构体系

1、概述 Eureka包括两个端&#xff1a; Eureka Server&#xff1a;注册中心服务端&#xff0c;用于维护和管理注册服务列表。Eureka Client&#xff1a;注册中心客户端&#xff0c;向注册中心注册服务的应用都可以叫做Eureka Client&#xff08;包括Eureka Server本身&#x…

C - Maximize GCD(简单数论)

C - Maximize GCD 给定长度为n,(2≤3105)n, (2 \le 3 \times 10 ^ 5)n,(2≤3105)的数组a,(1≤ai≤3105)a, (1 \le a_i \le 3 \times 10 ^ 5)a,(1≤ai​≤3105)&#xff0c;一个数字K,(1≤K≤1018)K, (1 \le K \le 10 ^{18})K,(1≤K≤1018)&#xff0c; 我们可以对数组aaa进行…

推荐.neter常用优秀开源项目系列之二

.net社区有很多优秀的开源项目&#xff0c;我们今天再推荐12个开源项目&#xff1b;1. Domain-Driven-Design-ExampleDDD 示例 挺不错的。github https://github.com/zkavtaskin/Domain-Driven-Design-Example2.SmartStoreNET开源的电商项目github https://github.com/smartsto…

Zookeeper: Zookeeper架构及FastLeaderElection机制

本文转发自技术世界&#xff0c;原文链接 http://www.jasongj.com/zookeeper/fastleaderelection/ 一、Zookeeper是什么 Zookeeper是一个分布式协调服务&#xff0c;可用于服务发现&#xff0c;分布式锁&#xff0c;分布式领导选举&#xff0c;配置管理等。 这一切的基础&am…

I. Rise of Shadows(类欧几里得)

I. Rise of Shadows 一天有HHH个小时&#xff0c;MMM分钟&#xff0c;问&#xff0c;有多少个整数分钟&#xff0c;满足时针与分针的角度≤α\le \alpha≤α&#xff0c;α2πAHM\alpha \frac{2 \pi A}{HM}αHM2πA​。 ∑i0H−1∑j0M−1[∣2π(iMj)HM−2πjM∣≤2πAHM]∑i0…

与时俱进 | 博客现已运行在 .NET Core 3.0 及 Azure 上

点击上方蓝字关注“汪宇杰博客”导语9月23日&#xff0c;微软正式发布了 .NET Core 3.0&#xff0c;这个版本具有大量新功能和改进。我也在第一时间将自己的博客网站更新到了 .NET Core 3.0&#xff0c;并且仍然跑在微软智慧云 Azure 国际版的应用服务上。本文总结了我在博客迁…