【后端】Core框架版本和发布时间以及.net 6.0启动文件的结构
2023年,第35周,第1篇文章。给自己一个目标,然后坚持总会有收货,不信你试试!
.NET Core 是一个跨平台的开源框架,用于构建现代化的应用程序。它在不同版本中有一些重要的区别和发布时间
目录
- 一、Core版本和发布时间
- 1.1、NET Core 1.x系列
- 1.2、.NET Core 2.x系列
- 1.3、.NET Core 3.x系列
- 1.4、.NET 5(里程碑)
- 1.5、.NET 6
- 二、Core和C#版本
- 3.1、打开程序文件
- 3.2、打开启动文件

一、Core版本和发布时间
下面是主要版本的简要概述:
1.1、NET Core 1.x系列
于2016年发布。
它是.NET Core 的最初版本,提供了跨平台、高性能和轻量级的开发体验。
然而,由于初始版本的限制和局限性,这个系列不再得到维护和支持。
1.2、.NET Core 2.x系列
于2017年发布。
这个系列带来了许多重要的改进和特性,例如更好的性能、更强大的开发工具和更广泛的平台支持。
它还加强了与.NET Framework 的兼容性,并引入了ASP.NET Core 2.x,用于构建Web应用程序。
1.3、.NET Core 3.x系列
于2019年发布。
这个系列引入了许多令人激动的特性,包括支持Windows桌面应用程序开发、WPF和Windows Forms的现代化和改进、C# 8.0的语言特性等。
此外,还引入了新的.NET Core 3.1版本,作为一个长期支持(LTS)版本。
1.4、.NET 5(里程碑)
于2020年发布。
这是一个重要的版本,汇集了.NET Framework 和.NET Core 的功能,并成为一个单一的统一平台。
它旨在提供更高的性能、更多的可选组件和更广泛的支持。
1.5、.NET 6
发布于2021年11月发布。
这将是一个重要的版本,将带来更多的改进、新特性和改进性能。
.NET 6 支持多种操作系统和平台,包括 Windows、 macOS 和 Linux,同时还提供了对 Web、移动和云等应用程序类型的支持。
在.NET 6中,开发者可以使用新的语言特性、增强的工具和框架组件来构建高性能和现代化的应用程序。
此外,.NET 6还引入了新的 MAUI(Multi-platform App UI)框架,用于构建跨平台的本机应用程序,包括支持移动和桌面平台。
需要注意的是,从.NET 5开始,微软决定放弃“Core”命名,而改为以年份作为版本编号。这是为了更好地反映.NET平台的连续性和一致性。
二、Core和C#版本
在 .NET Core 中,每个版本都与相应版本的 C# 语言进行了搭配。
以下是一些常见的 .NET Core 版本和相应的 C# 语言版本的对应关系:
1).NET Core 1.x: 对应 C# 6.0
2).NET Core 2.x: 对应 C# 7.0 和 C# 7.1
3).NET Core 3.x: 对应 C# 8.0
4).NET 5: 对应 C# 9.0
5).NET 6: 对应 C# 10.0
需要注意的是,C# 语言版本与 .NET Core 版本不是完全绑定的,这意味着你可以使用低版本的 C# 语言特性在较高版本的 .NET Core 中开发。
然而,如果你想要使用某个特定版本的 C# 语言的最新功能和改进,你可能需要使用相应的 .NET Core 版本。
此外,还要注意,C# 语言版本的正式支持取决于你所使用的开发工具(例如 Visual Studio)的版本。
确保使用的开发工具支持所需的 C# 语言版本,并且按照相应的语法和规则来编写代码。
需要指出的是,以上是常见的对应关系,具体的版本对应关系可以根据实际情况变化。
因此,建议在使用特定的 .NET Core 版本时,查阅相应的文档或官方发布信息,以确定该版本对应的 C# 语言版本。
三、.net core 6.0启动文件
在 .NET 6.0 中,Startup 文件的创建方式与之前的版本相比有一些变化。
下面是在 .NET 6.0 中创建 Startup 文件的步骤:
3.1、打开程序文件
首先,在你的项目(例如 ASP.NET Core Web 应用程序)中,打开 Program.cs 文件。
在 CreateHostBuilder 方法中,注册和配置应用程序的服务和设置。
在这里你可以使用 .ConfigureServices 和 .Configure 方法来添加服务和配置应用程序。
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;var builder = WebApplication.CreateBuilder(args);// 配置服务
builder.Services.AddControllersWithViews();
// ...// 配置应用程序
var app = builder.Build();
app.UseRouting();
app.UseEndpoints(endpoints =>
{endpoints.MapControllers();// ...
});app.Run();
3.2、打开启动文件
确保你的项目中存在一个名为 Startup.cs 的文件。如果不存在该文件,可以手动创建它。
打开 Startup.cs 文件,并确保它包含命名空间引用和类的定义。
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;namespace YourNamespace
{public class Startup{public IConfiguration Configuration { get; }public Startup(IConfiguration configuration){Configuration = configuration;}// ConfigureServices 方法用于配置应用程序的服务public void ConfigureServices(IServiceCollection services){services.AddControllersWithViews();// ... 添加其他服务配置}// Configure 方法用于配置应用程序的请求处理管道public void Configure(IApplicationBuilder app){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}else{app.UseExceptionHandler("/Home/Error");app.UseHsts();}app.UseHttpsRedirection();app.UseStaticFiles();app.UseRouting();app.UseAuthorization();// 配置端点路由app.UseEndpoints(endpoints =>{endpoints.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");});}}
}
确保在 Program.cs 的 CreateHostBuilder 方法中设置启动类为 Startup 类。
builder.ConfigureServices((hostContext, services) =>
{// ...
}).ConfigureWebHostDefaults(webBuilder =>
{webBuilder.UseStartup<YourNamespace.Startup>();
});
现在,你已经成功创建了 Startup 文件,并定义了应用程序的服务和请求处理管道配置。
可以在 Startup 类中添加更多的中间件、配置选项和服务来满足你的应用程序需求。
相关文章:
【后端】Core框架版本和发布时间以及.net 6.0启动文件的结构
2023年,第35周,第1篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! .NET Core 是一个跨平台的开源框架,用于构建现代化的应用程序。它在不同版本中有一些重要的区别和发布时间 目录 一、Core版本和…...
Linux 定时任务 crontab 用法学习整理
一、linux版本 lsb_release -a 二、crontab 用法学习 2.1,crontab 简介 linux中crontab命令用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。cron 系统调度进程。…...
看板之道:如何利用Kanban优化您的项目流程
引言 在项目管理的世界中,如何确保任务的流畅进行并及时交付是每个团队都面临的挑战。Kanban,作为一种敏捷项目管理方法,为此提供了一个答案。它不仅提供了一种可视化的方式来跟踪任务的进度,还鼓励团队持续改进其工作流程&#…...
Docker的基础操作
1.安装docker服务,配置镜像加速器 1.1 使用yum进行安装 添加docker-ce的源信息 [rootlocalhost ~]# yum install yum-utils device-mapper-persistent-data lvm2 -y [rootlocalhost ~]# yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/doc…...
14、缓存预热+缓存雪崩+缓存击穿+缓存穿透
缓存预热缓存雪崩缓存击穿缓存穿透 ● 缓存预热、雪崩、穿透、击穿分别是什么?你遇到过那几个情况? ● 缓存预热你是怎么做到的? ● 如何避免或者减少缓存雪崩? ● 穿透和击穿有什么区别?它两一个意思还是截然不同&am…...
【PostGreSQL】PostGreSQL到Oracle的数据迁移
项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果是个PostGreSQL的数据,于是装数据库,但这个也不懂呀,而且本系统用的Oracle,于是得解决迁移转换的问题。 总结下来两个思路。 1、Postg…...
jupyter notebook出现ERR_SSL_VERSION_OR_CIPHER_MISMATCH解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
前端进阶Html+css10----定位的参照对象(高频面试题)
1.relative的参照对象 1)元素按照标准流进行排布; 2)定位参照对象是元素自己原来的位置,可以通过left、right、top、bottom来进行位置调整; 2.absolute(子绝父相) 1)元素脱离标准流…...
总结记录Keras开发构建神经网络模型的三种主流方式:序列模型、函数模型、子类模型
Keras是一个易于使用且功能强大的神经网络建模库,它是基于Python语言开发的。Keras提供了高级API,使得用户能够轻松地定义和训练神经网络模型,无论是用于分类、回归还是其他任务。 Keras的主要特点如下: 简单易用:Kera…...
python环境建设
1. 查看通过pip安装包的路径 问题:devchat vscode中配置需要查找devchat的安装路径,使用pip相关的命令查看 pip list | grep package_name 命令显示获取已安装包的信息(包名与版本号)pip show package_name命令能显示该安装的包…...
Python学习笔记第五十九天(Matplotlib 安装)
Python学习笔记第五十九天 Matplotlib 安装后记 Matplotlib 安装 本章节,我们使用 pip 工具来安装 Matplotlib 库,如果还未安装该工具,可以参考 Python pip 安装与使用。 如果您还没有安装Matplotlib,您可以按照以下步骤在Pytho…...
(6)(6.3) 自动任务中的相机控制
文章目录 前言 6.3.1 概述 6.3.2 自动任务类型 6.3.3 创建合成图像 前言 本文介绍 ArduPilot 的相机和云台命令,并说明如何在 Mission Planner 中使用这些命令来定义相机勘测任务。这些说明假定已经连接并配置了相机触发器和云台(camera trigger and gimbal ha…...
什么是cssreset ?为什么要用到cssreset?
1,什么是cssreset ? 顾名思义,css reset,样式重置。即重新设置界面的样式。 CSS reset,又叫做 CSS 重写或者 CSS 重置,用于改写HTML标签的默认样式。 有些HTML标签在浏览器里有默认的样式,例如 p 标签有上…...
SpringCloud学习笔记(四)_ZooKeeper注册中心
基于Spring Cloud实现服务的发布与调用。而在18年7月份,Eureka2.0宣布停更了,将不再进行开发,所以对于公司技术选型来说,可能会换用其他方案做注册中心。本章学习便是使用ZooKeeper作为注册中心。 本章使用的zookeeper版本是 3.6…...
【算法专题突破】双指针 - 移动零(1)
目录 写在前面 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 写在前面 在进行了剑指Offer和LeetCode hot100的毒打之后, 我决心系统地学习一些经典算法,增强我的综合算法能力。 1. 题目解析 题目链接:283. 移动零 - 力…...
Nginx高可用集群
目录 一.简介二.案例1.实现思路2.配置文件修改3.实现效果故障转移机制 一.简介 以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用的容错效果。例如“故障切换”、“双机热备”、“多机热备”等都属于高可用集…...
Rust 基础入门 ——所有权 引言 :垃圾自动回收机制的缺陷。
在以往,内存安全几乎都是通过 GC 的方式实现,但是 GC 会引来性能、内存占用以及 Stop the world 等问题,在高性能场景和系统编程上是不可接受的, 我们先介绍一下这些概念都是什么: 内存安全是指程序在运行过程中不会访…...
Ubuntu20.04安装软件报错:The following packages have unmet dependencies
Ubuntu20.04更换阿里云源后安装软件都会报错:The following packages have unmet dependencies 查看资料,大概是ubuntu本身的源比较版本较老,而阿里云的源比较新,因此版本不匹配造成依赖的库不匹配,所以只要将阿里云的…...
Java 与设计模式(12):享元模式
一、定义 享元模式是一种结构型设计模式,旨在有效地共享对象以减少内存使用和提高性能。该模式的核心思想是通过共享尽可能多的相似对象来减少内存占用。它将对象分为可共享的内部状态和不可共享的外部状态。内部状态是对象的固有属性,可以在多个对象之…...
React配置代理(proxy)
使用axios进行请求,而配置代理过程。 第一种 在package.json中,添加proxy配置项,之后所有的请求都会指向该地址 但这种方法只能配置一次,也只有一个 示例: "proxy":"https://localhost:5000" 添加后&am…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能 查看官网:https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...
安宝特案例丨寻医不再长途跋涉?Vuzix再次以AR技术智能驱动远程医疗
加拿大领先科技公司TeleVU基于Vuzix智能眼镜打造远程医疗生态系统,彻底革新患者护理模式。 安宝特合作伙伴TeleVU成立30余年,沉淀医疗技术、计算机科学与人工智能经验,聚焦医疗保健领域,提供AR、AI、IoT解决方案。 该方案使医疗…...
