(给DotNet加星标,提升.Net技能)

转自:LineZerocnblogs.com/linezero/p/netcore3

前几天微软发布了《 .NET Core 3.0 Preview 9》 ,这是.NET Core 3.0 最后一个预览版。

.NET Core 3.0 正式发布将在.NET Conf 上发布,.NET Conf 时间是9月23日至25日。

Visual Studio 2019 16.3预览版3和Visual Studio for Mac 8.3支持.NET Core 3.0 ,这些版本也同时发布。

从.NET Core 3.0 Preview 7就可用于生产,目前dotnet官网就是使用 https://dotnet.microsoft.com/ Powered by .NET Core 3.0.0-preview9-19423-09。

博客园也升级为.NET Core 3.0 Preview 8,目前运行算是良好。

下面实际体验.NET Core 3.0 新特性。

.NET Core 3.0

1、System.Text.Json

public class Person{public string FirstName { get; set; }public string LastName { get; set; }public DateTime? BirthDay { get; set; }}

//转成对象string json = ...Person person = JsonSerializer.Parse(json);//转成json字符串Person person = ...string json = JsonSerializer.ToString(person);

2、.NET Standard 2.1

要以.NET Standard 2.1为目标,必须编辑项目文件并将TargetFramework属性更改为netstandard2.1: .NET Framework不支持.NET Standard 2.1。

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>netstandard2.1TargetFramework>PropertyGroup>Project>

3、Microsoft.Data.SqlClient

Microsoft.Data.SqlClient是Microsoft Sql Server的数据提供程序。

它是两个System.Data.SqlClient组件的联合体,独立存在于.NET Framework和.NET Core中。

最新版本安装

Install-Package Microsoft.Data.SqlClient

https://github.com/dotnet/SqlClient

4、发布成单个程序

dotnet publish -r win10-x64 /p:PublishSingleFile=true

5、Alpine Docker images

.NET Core and ASP.NET Core on ARM64

docker pull mcr.microsoft.com/dotnet/core/runtime:3.0-alpine-arm64v8

docker pull mcr.microsoft.com/dotnet/core/aspnet:3.0-alpine-arm64v8

6、dotnet-counters

安装 : dotnet tool install --global dotnet-counters --version 3.0.0-preview8.19412.1

使用示例:

显示所有信息

dotnet-counters monitor --process-id 1902 System.Runtime

显示CPU使用 GC 及异常数

dotnet-counters monitor --process-id 1902 System.Runtime[cpu-usage,gc-heap-size,exception-count]

官方文档:https://github.com/dotnet/diagnostics/blob/master/documentation/dotnet-counters-instructions.md

7、ReadyToRun

你可以通过将应用程序集编译为ReadyToRun(R2R)格式来缩短.NET Core应用程序的启动时间。R2R是一种提前(AOT)编译的形式。

示例提升:

仅限IL的应用:

启动时间:1.9秒

内存使用量:69.1 MB

应用程序大小:150 MB

使用ReadyToRun图像:

启动时间:1.3秒。

内存使用量:55.7 MB

应用程序大小:156 MB

要启用ReadyToRun编译 需要以下操作:

将PublishReadyToRun属性设置为true。 使用显式发布RuntimeIdentifier。

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>ExeOutputType><TargetFramework>netcoreapp3.0TargetFramework><PublishReadyToRun>truePublishReadyToRun>PropertyGroup>Project>

dotnet publish -r win-x64 -c Release

ReadyToRun编译器目前不支持交叉定位。需要在给定目标上进行编译。例如,如果想要Windows x64的R2R程序,则需要在该环境中运行publish命令。

IL linker

使用IL linker 可以将程序大小从大约68MB减少到大约28MB

dotnet publish -r win10-x64 -c Release /p:PublishTrimmed=true /p:PublishSingleFile=true

8、HttpClient支持HTTP/2

使用示例:

var client = new HttpClient() { BaseAddress = new Uri("https://localhost:5001") };// HTTP/1.1 requestusing (var response = await client.GetAsync("/")){    Console.WriteLine(response.Content);}// HTTP/2 requestusing (var request = new HttpRequestMessage(HttpMethod.Get, "/") { Version = new Version(2, 0) })using (var response = await client.SendAsync(request)){    Console.WriteLine(response.Content);}

ASP.NET Core 3.0

前一篇有介绍《ASP.NET Core 3.0预览版体验》

ASP.NET Core 3.0中主要更新还是Blazor和gRPC

1、Blazor

Blazor 是一个用于使用 .NET 生成交互式客户端 Web UI 的框架:

  • 使用 C# 代替 JavaScript 来创建丰富的交互式 UI。

  • 共享使用 .NET 编写的服务器端和客户端应用逻辑。

  • 将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器。

使用 .NET 进行客户端 Web 开发可提供以下优势:

  • 使用 C# 代替 JavaScript 来编写代码。

  • 利用现有的 .NET 库生态系统。

  • 在服务器和客户端之间共享应用逻辑。

  • 受益于 .NET 的性能、可靠性和安全性。

  • 始终高效支持 Windows、Linux 和 macOS 上的 Visual Studio。

以一组稳定、功能丰富且易用的通用语言、框架和工具为基础来进行生成。

Blazor 应用基于组件 。 Blazor 中的组件是指 UI 元素,例如,页面、对话框或数据输入窗体。

组件类通常以 Razor 标记页(文件扩展名为 .razor )的形式编写。 Blazor 中的组件有时被称为 Razor 组件 。

Razor 标记演示组件:

@Title


@ChildContent"OnYes">Yes!

@code {
[Parameter]
public string Title { get; set; }

[Parameter]
public RenderFragment ChildContent { get; set; }

private void OnYes(){
Console.WriteLine("Write to the console in C#! 'Yes' button was selected.From LineZero");
}

对话框的正文内容 (ChildContent) 和标题 (Title) 由在其 UI 中使用此组件的组件提供。 OnYes 是由按钮的 onclick 事件触发的 C# 方法。

Blazor 使用 UI 构成的自然 HTML 标记。 HTML 元素指定组件,并且标记的特性将值传递给组件的属性。

在以下示例中,Index 组件中使用上面的 Dialog 组件。

@page "/"<h1>Hello, world!h1>Welcome to your new app.<Dialog Title="Blazor">    Do you want to <i>learn morei> about Blazor?   From LineZeroDialog>

更多官方介绍:https://docs.microsoft.com/zh-cn/aspnet/core/blazor/get-started?view=aspnetcore-3.0&tabs=visual-studio

2、gRPC

gRPC 的主要优点是:

  • 现代高性能轻量级 RPC 框架。

  • 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现。

  • 可用于多种语言的工具,以生成强类型服务器和客户端。

  • 支持客户端、服务器和双向流式处理调用。

  • 使用 Protobuf 二进制序列化减少对网络的使用。

这些优点使 gRPC 适用于:

  • 效率至关重要的轻量级微服务。

  • 需要多种语言用于开发的 Polyglot 系统。

  • 需要处理流式处理请求或响应的点对点实时服务。

虽然 C# 实现目前在官方 gRPC 上有介绍,但当前实现依赖于用 C (gRPC C-core) 编写的本机库。

目前正在基于 Kestrel HTTP 服务器和完全托管的 ASP.NET Core 实现gRPC。

推荐阅读

(点击标题可跳转阅读)

.NET Core 3.0 Preview 7 发布

.NET Core 3.0 预览版7中ASP.NET Core和Blazor更新

ASP.NET Core 3.0 Preview特性、了解CLR的GC

看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能

好文章,我在看❤️

diskgeniusv4.4.0_.NET Core 3.0及ASP.NET Core 3.0前瞻相关推荐

  1. ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单 ...

  2. ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core Identity 迁移数据 - ASP.NET C ...

  3. 让我们Core在一起:ASP.NET Core amp; .NET Core

    Microsoft .NET 自 2002 年发行 v1.0 以来,已经过了近 14 个年头,在这 14 年里面,.NET 日渐成熟并成为 Microsoft 的重要开发平台之一,只要是在 Windo ...

  4. ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core macOS 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core macOS 环境配置 - ASP.NET Core 基础 ...

  5. ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Razor 标签助手 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Razor 标签助手 上一章节我们介绍了视图导入,学习了 ...

  6. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...

  7. ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 项目配置 ( Startup ) - ASP ...

  8. ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新建项目(Windows) 对于任何语言和框架,都 ...

  9. ASP.NET Core Razor 布局视图 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core Razor 布局视图 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core Razor 布局视图 - ASP.NET Core 基础 ...

最新文章

  1. linux 环境变量文件_应急响应系列之Linux库文件劫持技术分析,有点硬核哟
  2. libuv 高性能 事件驱动 跨平台 i/o库 简介
  3. AndroidStudio gradle配置
  4. 帝国网站管理系统7.5服务器信息,帝国CMS程序 7.5版本新闻可以使用的后台免登录接口...
  5. 时间序列分析之:函数分解decompose
  6. python xlwt xlrd模块详解_python操作excel之xlrd、xlwt模块详解
  7. map与weakmap,ES6 Map和WeakMap有什么区别?
  8. 使用will和would来提出请求_42
  9. 语音识别中的MFCC的提取原理和MATLAB实现
  10. N划分成若干个奇正整数之和的分法有多少种---动态规划
  11. 离散数学期末复习概念_复习第1部分中的基本概念
  12. 游戏修改器制作教程五:OllyDBG和其他调试工具
  13. 小米手机第三方卡刷软件_小米手机MIUI卡刷图文教程
  14. 矩阵论——矩阵的标准型
  15. 我花了20年研究华为,发现了这些秘密……
  16. write和read返回值详解
  17. C++异常传递三种不同方式介绍
  18. 「wps教程」Word里的大神器隐藏技能
  19. Python篇之编译py文件为pyc文件的方法总结
  20. 雪碧的N种新潮喝法雪碧的N种新潮喝法 - 生活至上,美容至尚!

热门文章

  1. windows上配置jdk环境变量
  2. (转) Twisted :第十八部分 Deferreds 全貌
  3. CSU 1325: A very hard problem 中南月赛的一道题。
  4. DirectX11 SDK下载地址:
  5. Revit API导出GBXML
  6. FreeBSD下安装配置Hadoop集群(一)
  7. Img与background的区别
  8. 数组排列如何更有效的查询
  9. jquery easyui datagrid 排序列
  10. 文曲星猜数游戏,无测试代码