闲话 .NET(6):.NET Core 各个版本的特性

image

前言

之前我们聊了一下 .NET Core 有哪些优势,.NET Core 发展非常迅速,不过短短几年,.NET Core 已经发布 .NET 8 了,基本上保持了一年一个版本的速度,每个版本都有自己的独有特性,下面我们来简单的盘点一下这些新特性有哪些。

.NET Core 1.0

.NET Core 1.0 突破了操作系统的限制,是第一个支持在 Windows、Linux 和 macOS 上运行的 .NET 版本,它采用新的一系列的命令行工具,引入了新的运行时和库,提高了开发效率、性能和可扩展性,打开了.NET 的全新时代。

.NET Core 2.0

增加了对 Razor Pages 的支持,简化了 Web 应用程序的开发。

Razor Pages 有些类似于传统的 ASP.NET Web Forms,即将前端页面和后端代码逻辑紧密集成在一个文件中。

每个 Razor Pages 文件(.cshtml)都包含了 HTML 标记和 C# 代码,使开发人员能够在同一个文件中处理页面布局、数据绑定和事件处理等操作。

Razor Pages 使用了 Razor 语法,这是一种简洁、直观的模板语言,可以轻松地将 C# 代码嵌入到 HTML 中。

Razor 语法支持处理数据显示、条件逻辑、循环结构等,也支持部分视图(Partial Views)的概述,可以将页面的某些部分作为可重用的组件进行封装。

同时,在此版本中,增加了对 .NET Standard 2.0 的支持,.NET FrameWork 中更多的 API 可以在 .NET Core 中使用。

.NET Core 2.1

引入了高性能的 Span<T> 类型,更有效地处理内存和数据。

Span<T> 是一个结构体,用于表示连续的内存区域,并提供了一组安全且高效的方法来访问和操作这些内存区域,如索引访问、切片操作、复制和填充等。

通过 Span<T>,我们可以直接操作内存,而无需进行不必要的内存分配和复制操作。这对于处理大型数据集合或高性能计算任务非常有用。

.NET Core 3.0

引入了 Windows 桌面应用支持,.NET Core 对 WinForms 和 WPF 进行了改进和优化,提高了性能和功能,通过 .NET Core 开发 Windows 桌面应用,性能比 .NET FrameWork 框架高出很多。

同时,鉴于 JSON 格式广泛的使用,此版本引入了用于 JSON 序列化和反序列化的官方库 System.Text.Json,它的性能和功能并不逊色于 Newtonsoft.Json,并且它支持可定制化,有了它,开发人员对于处理 JSON 数据,有了更好的方式。

.NET Core 3.1

进一步优化了安全、性能和内存管理等方面,提高了系统的性能表现和安全性,这是一个长期支持版本,提供长期的支持和更新。

.NET 5

.NET 5 引入了 AOT(Ahead of Time Compilation),这是一种新的编译技术,可以进行更多的优化,提高应用程序的性能表现。

它在应用程序部署时将代码编译为本机机器代码,而不是在运行时进行即时编译(JIT),避免了运行时的即时编译开销,减少了应用程序的内存占用和 CPU 使用率。

它适用于那些不需要动态生成代码的应用程序,可以提供更快的加载和执行速度。

需要注意的是 AOT 会增加应用程序的部署大小,因为编译后的本机代码比 IL(Intermediate Language)代码更大,也不支持动态生成的应用程序。

.NET 6

仅需三行代码,就可以生成一个完整功能的 Web API,.NET 6 引入了 “最小 Web API” 的功能,它简化和加速了创建基于 .NET 的 Web API 项目的过程,对于新人来说,更容易入门和理解。

.NET 6 还引入了热重载,这意味着即使程序已经在运行中,代码修改后也无需重新编译,就可以将代码更改立即应用于正在运行的应用程序上。

.NET 6 也是一个长期支持版本,提供长期的支持和更新。

.NET 7

.NET 7 引入了 .NET MAUI,这是一种新的跨平台应用程序开发框架,允许使用单一代码库构建移动、桌面和 Web 应用程序,继承了 Xamarin.Forms 的优点,进一步扩展和改进了跨平台开发体验。

此外,备受程序员期待的新特性 “原始字符串” 在这个版本终于支持了,程序员们在处理原始字符串时更加方便了,不需要再进行各种面目全非的转义了,这对于程序开发和维护有很大的帮助。

.NET 8

.NET 8 在整个堆栈中带来了数千项性能改进,性能得到了极大的提升。

.NET 8 还集成了全新的 WinUI 3,WinUI 3 是一个现代化的 Windows UI 框架,可以快速构建跨平台的 Windows 应用程序。

通过 .NET SDK 中一流的开箱即用 AI 功能以及与多种工具的无缝集成,.NET 8 可以帮助开发人员在其应用程序中创建独特的人工智能体验。

结语

本文讲述了历来每个 .NET Core 版本比较有价值的新特征,这些特性提升了开发人员的生产力和应用程序的性能、可用性以及跨平台能力。

当然,.NET Core 还有很多突出的功能,本文仅供参考。您认为 .NET Core 还有哪些比较有价值的新特性,欢迎留言讨论。

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Enable Full Line suggestions 启用全行建议

开启后效果如下&#xff1a; 直接提示可能要输入的参数

医卫兰大药学试题及答案,分享几个实用搜题和学习工具 #媒体#微信

这些软件以其强大的搜索引擎和智能化的算法&#xff0c;为广大大学生提供了便捷、高效的解题方式。下面&#xff0c;让我们一起来了解几款备受大学生欢迎的搜题软件吧&#xff01; 1.彩虹搜题 这个是公众号 题库内容丰富全面&#xff0c;细致分类整理。找题再也不费力&#…

嵌入式学习记录5.23(超时检测、抓包分析)

目录 一.自带超时参数的函数 1.1 select函数 1.2 poll函数的自带超时检测参数 二、不带超时检测参数的函数 三、通过信号完成时间的设置 四、更新下载源 五、wireshark使用 5.1. 安装 5.2. wireshark 抓包 5.2.1 wireshark与对应的OSI七层模型 ​编辑5.2.2 包头分析 …

旺店通与金蝶云星空 就应该这样集成打通

在当今数字化商业环境中&#xff0c;企业需要高效、灵活的系统来支持其业务运营。旺店通和金蝶云星空作为两个领先的企业管理解决方案&#xff0c;它们的集成能够为企业带来无缝的业务流程和数据一致性。本文将详细介绍旺店通与金蝶云星空的全场景集成方案&#xff0c;包括主数…

netcat一键开始瑞士军刀模式(KALI工具系列六)

目录 1、KALI LINUX简介 2、netcat工具简介 3、在KALI中使用netcat 3.1 目标主机IP&#xff08;win&#xff09; 3.2 KALI的IP 4、命令示例 4.1 测试某IP的端口是否打开 4.2 TCP扫描 4.3 UDP扫描 4.4 端口刺探 4.5 直接扫描 5、即时通信 5.1 单击对话互联 5.2 传…

idea的project structure下project [lauguage ]()level 没有java的sdk17选项如何导入

idea的project structure下project lauguage level 没有java的sdk17选项如何导入 别导入了&#xff0c;需要升级idea版本。idea中没有project language level没有17如何添加 - CSDN文库 别听这文章瞎扯淡 2021版本就是没有&#xff0c;直接卸载升级到最新版本就可以了。没办法…

离大模型落地应用最近的工程化技术(RAG)

虽然大规模语言模型&#xff08;LLM&#xff09;在自然语言处理&#xff08;NLP&#xff09;方面表现出了其强大的文本生成和理解能力&#xff0c;但是它们在实际应用中仍然面临一些挑战&#xff0c;如处理大规模知识库和实时获取最新信息的能力&#xff0c;并且会产生幻觉。为…

线性回归计算举例

使用正规方程计算&#xff08;一元线性回归&#xff09; import numpy as np import matplotlib.pyplot as plt # 转化成矩阵 X np.linspace(0, 10, num 30).reshape(-1, 1) # 斜率和截距&#xff0c;随机生成 w np.random.randint(1, 5, size 1) b np.random.randint(1,…

c-lodop 打印面单 内容串页

场景&#xff1a;使用c-lodop程序调取打印机连续打印多张快递单时&#xff0c;上页内容&#xff0c;打到了下一页了 问题原因&#xff1a; 由于是将所有面单内容放到了一个页面&#xff0c;c-lodop 在打印时&#xff0c;发现一页放不下&#xff0c;会自动分割成多页 页面元素…

【InternLM实战营第二期笔记】03:“茴香豆“,搭建你的 RAG 智能助理(未完成)

文章目录 笔记-RAG课程结构为什么要用 RAG&#xff1f;定义工作原理向量数据库RAG 工作流程发展历程常见优化RAG vs 微调LLM 优化方法比较RAG的评价总结 笔记-茴香豆什么是茴香豆茴香豆实战 笔记-RAG 课程结构 为什么要用 RAG&#xff1f; 新增知识&#xff0c;尤其是高频变动…

Clickhouse字典关联外部 MySQL 表联合查询实践

前言 clickhouse 可以将源数据加载进 clickhouse 作为字典表使用&#xff0c;字典表可以理解为 clickhouse 中的一张特殊表&#xff0c;我们在查询 clickhouse 表中的数据的时候不需要 JOIN 就可以直接查询字典表中的数据&#xff0c;非常方便&#xff0c;快速。我刚好在工作场…

MySQL8报错Public Key Retrieval is not allowedz 怎么解决?

问题描述 当我们使用数据库管理工具连接mysql8的时候&#xff0c;可能遇到报错&#xff1a; Public Key Retrieval is not allowed 解决办法 1、在连接属性中配置allowPublicKeyRetrieval设置为true 2、在连接URL中加上配置allowPublicKeyRetrieval为true

如何彻底卸载sql sever2022

目录 背景过程1、关闭sql sever服务2、打开控制面板&#xff0c;卸载SQL Sever3、手动删除 SQL Server 遗留文件4、清空注册表5、重启计算机以确保所有更改生效。 总结 背景 重装了电脑&#xff0c;安装sqlServer&#xff0c;一直报错&#xff0c;不成功&#xff0c;所以每次安…

从0到100,渠道码如何成为SaaS企业增长的加速器

在当今数字化时代&#xff0c;企业的增长策略已不再是单一和线性的。渠道码的出现&#xff0c;为SaaS&#xff08;软件即服务&#xff09;企业提供了一种全新的、多维度的增长途径&#xff0c;真正实现了从0到100的快速增长。 一、渠道码的高可定制性和灵活性&#xff0c;为Sa…

MySQL 数据类型和搜索引擎

文章目录 【 1. 数据类型 】1.1 数值类型1.1.1 整型1.1.2 小数1.1.3 数值类型的选择 1.2 日期和时间YEAR 年TIME 时间DATE 日期DATETIME 日期时间TIMESTAMP 时间戳日期和时间的选择 1.3 文本字符串CHAR 固定字符串、VARCHAR 可变字符串TEXT 文本ENUM 枚举SET 集合字符串类型的选…

c++(五)

c&#xff08;五&#xff09; 继承基类和派生类继承的格式继承的方式三种:public、private、protected 继承的规则多层继承多重继承 类与类的关系 继承 一个新类从已有的类那里获得其已有特性(属性、行为)&#xff0c;这种现象称为类的继承 基类和派生类 <1>从已有的类…

外卖小程序开发指南:从源码开始构建高效的外卖平台

今天&#xff0c;笔者将为您详细讲解如何从源码开始构建一个高效的外卖小程序&#xff0c;帮助您快速进入这一蓬勃发展的市场。 一、需求分析与设计 需求分析包括&#xff1a; 1.用户需求 2.市场需求 3.技术需求 二、前端开发 以下是开发步骤&#xff1a; -使用微信开发…

创新指南|降低 TikTok CPA 的 9 项专家策略

企业在 TikTok 上投放广告&#xff0c;往往最想确保获得最佳的投资回报。然而&#xff0c;这往往说起来容易做起来难。您需要了解如何利用不同的营销工具、定位策略和创意执行来实现您的业务目标并提高成本效率。本文将分享 9 个行之有效的策略&#xff0c;助您有效降低 TikTok…

Java面试八股之对threadLocal是怎么理解的

对threadLocal是怎么理解的 概念与特点&#xff1a;ThreadLocal是Java提供的一个类&#xff0c;它允许你创建线程局部变量。每个线程都拥有自己的ThreadLocal变量副本&#xff0c;彼此之间互不影响&#xff0c;实现了变量在线程间的隔离。这意味着&#xff0c;即使多个线程使用…

力扣算法之1068. 产品销售分析 I

力扣传送门 题解 同时输出a,b两张表上的数据 我的解 SELECT product_name,year,price FROM Sales a LEFT JOIN Product b ON a.product_id b.product_id我的解注解 考sql联表语法