asp.net core 从 3.1 到 5.0

asp.net core 从 3.1 到 5.0

Intro

就在前几天,微软宣布了 .NET5 发布了 RC1 版本,这也意味着 .NET5 的开发基本稳定了,正式发布之前,不会再新增新的 Feature,只会专注于修复 BUG 提高稳定性。

对于开发者来说,RC版本的发布也意味着功能的稳定,可以上手尝尝鲜了,正式版的 API 不会再发生变化了,即使后面迁移到正式版也会很简单

于是尝试着把我之前练手的一个小项目 asp.net core webapi 的项目从 3.1 迁移到了 5.0,意想不到的顺利,要比 2.x 更新顺利的多

项目文件更新

首先需要更新项目的 TargetFramework 从原来的 netcoreapp3.1 变更到 net5.0

包引用更新

原来引用的 3.1.x 版本的 nuget 包更新成 5.0 的包

这里有几个不是 asp.net core 的包也顺带更新了

这里更新用的包版本我使用的不是具体的版本号,你也可以使用具体的版本号,都是可以的

Docker 镜像更新

docker 镜像的更新分为两部分,一个是镜像名称,一个是镜像 tag

镜像 tag 比较好说,要从 3.1 更新成 5.0

镜像名称的变化是原来的镜像名称中有一个 core,在 net 5.0 中移除了,不再突出区分 core

具体的如下:

mcr.microsoft.com/dotnet/core/sdk => mcr.microsoft.com/dotnet/sdk

mcr.microsoft.com/dotnet/core/aspnet => mcr.microsoft.com/dotnet/aspnet

More

总体来说,更新还是相当顺利的,从 3.1 到 5.0,asp.net core 的 API 大多都是兼容的,没有特别大的变更(Blazor 除外,Blazor有一些大的变更), 只需要更新项目 Target 和包版本以及 dockerfile 中基本镜像的更新。

docker 镜像需要注意一下,不仅仅是改一下 tag,从 3.1 改成 5.0,最近我就是这样改的,结果提示找不到 tag,导致 build 失败了,

后来仔细看了一下,docker 镜像名称也发生了变化,移除了原来镜像名称中的 core,更好的体现了 target 的变化,无论是项目文件中的 TargetFramework 还是 docker 镜像都移除了名称中的 core,也正是体现了微软对于 .net core 的发展路线

后来突然想起来微软官方文档上应该有迁移文档,然后就赶紧去看一下,微软文档上已经有说明了 docker 镜像名称的变化(应该先看微软的官方文档才对。。。不要学我,要先看微软的文档)

Reference

  • https://hub.docker.com/_/microsoft-dotnet-sdk/

  • https://hub.docker.com/_/microsoft-dotnet-aspnet/

  • https://hub.docker.com/_/microsoft-dotnet/

  • https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-5.0&tabs=visual-studio

  • https://docs.microsoft.com/zh-cn/aspnet/core/migration/31-to-50?view=aspnetcore-5.0&tabs=visual-studio

  • https://github.com/WeihanLi/SparkTodo

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

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

相关文章

leetcoed123. 买卖股票的最佳时机 III

一:题目 二:上码 class Solution { public:/**思路:1.动态规划五步走1>:确定dp数组以及下标的含义因为题目给出至多完成两笔交易 那么我们一天的状态就有5种0 无操作1 第一次买入2 第一次卖出3 第二次买入4 第二次卖出dp[i][j] 表示的是在第i天 [0,4] 其中某个…

送福利 | 送书3本 ASP.NET Core 真机拆解

小编:最近.NET相关图书在多年沉寂后重新恢复,本书作者提供3本送给公众号粉丝,所以参与方式:文章下方留言,你可以聊聊.NET Core 这几年的发展给你的印象,你的感想,点赞最多的前5位获奖。活动截止…

异方差 的 BP检验 方法及原理详解

异方差 的 BP检验详解            文章目录 1. `BP`检验的步骤2. 场景示例步骤 ①步骤 ②BP检验,也称为Breusch-Pagan检验,是一种用于检验线性回归模型中异方差性(即误差项方差不恒定)的统计方法。该方法由Trevor S. Breusch和Adrian R. Pagan在1980年提出。 1.…

leetcode309. 最佳买卖股票时机含冷冻期

一:题目 二:上码 class Solution { public:/**思路:1.分析题意那么我们会有四种状态0 买入股票(或者说是之前就买入了股票但是也一直没有操作)1 卖出股票的状态一 两天前就卖出了股票 但是一直没有操作 2 卖出股票状态二 今天卖出股票3 冷冻期 持续一天2.动态规…

.NET Core 下使用 Exceptionless 记录日志

ExceptionLess是一套免费开源分布式系统日志收集框架,也是我无意中发现的,支持自己部署和平台托管的方式接入使用。ExceptionLess官网:https://exceptionless.comExceptionLess开源地址:https://github.com/exceptionless/Excepti…

你没有看错,爬网页数据,C# 也可以像 Jquery 那样

一:背景 1. 讲故事前段时间搞了一个地方性民生资讯号,资讯嘛,都是我抄你的,你抄官媒的,小市民都喜欢奇闻异事,所以就存在一个需求,如何去定向抓取奇闻异事的地方号上的新闻,其实做起…

leetcode300. 最长递增子序列

一:题目 二:上码 class Solution { public:/**思路:1.分析题意:我们在求取答案的过程中;我们的结果是动态的; 如果从某个数有一个递增序列 但是在这个数的后面又有一个数又可以是递增的 而且可能还比起长 2.动态规划五步走1>:确定dp数组的含义以及下标的含义dp[i] 表示的是…

链表基础概念与经典题目(Leetcode题解-Python语言)

所谓链表,就是由链节点元素组成的表,那什么是链节点呢?直接上定义: class ListNode:def __init__(self, val0, nextNone):self.val valself.next next很简单,链节点就是只记录自身的值 val,还有其指向的…

leetcode674. 最长连续递增序列

一:题目 二:上码 1:方法一贪心 class Solution { public:/**思路:1.贪心**/int findLengthOfLCIS(vector<int>& nums) {int ans 1;int count 1;for (int i 1; i < nums.size(); i) {if(nums[i] > nums[i-1]) {count;}else{count 1;//出现不连续的状态}if…

WPF 从 .net core 3.1 到 .net 5.0

WPF 从 .net core 3.1 到 .net 5.0Intro昨天更新了一个简单的 asp.net core webapi 项目&#xff0c;从 3.1 更新到了 5.0&#xff0c;今天更新一个 WPF 应用到 net 5.0项目文件更新首先项目文件中的 SDK 发生了变化&#xff0c;原来是 Microsoft.NET.Sdk.WindowsDesktop 更新后…

进击吧! Blazor !第三期 信息交互

Blazor 是一个 Web UI 框架&#xff0c;可通过 WebAssembly 在任意浏览器中运行 .Net 。Blazor 旨在简化快速的单页面 .Net 浏览器应用的构建过程&#xff0c;它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术&#xff0c;但它使用 C&#xff03;语言和 Razor 语法代替 JavaScrip…

leetcode718. 最长重复子数组

一:题目 二:上码 class Solution { public:/**思路:1.分析题意:1 2 3 6 7 41 2 6 7 4 3这里我们先遇到的1 2 但后来我们又遇见了6 7 4 那么我们的要的答案就是动态变化的2.动态规划五步走1>:确定dp数组以及下标的含义dp[i][j] 表示 以下标i-1结尾的A数组和以下标…

.NET 5 的 Target Framework 详解[上篇]

❝作者&#xff1a;.NET Team翻译&#xff1a;精致码农-王亮原文&#xff1a;http://dwz.win/Q4v❞我们希望极大地简化开发人员必须在项目文件和 NuGet 包中使用的「TFM」 (Target Framework Name, 目标框架名称)。这包括合并 .NET 5 和 .NET Standard 的概念&#xff0c;同时仍…

leetcode1143. 最长公共子序列

一&#xff1a;题目 二:上码 class Solution { public:/**思路:1.分析题意这个子序列就是我们是可以不连续的字符组成的2.动态规划五步走1>:确定dp数组的含义以及下标的含义dp[i][j] 表示的是text1中[0,i-1]字符范围,text2中[0,j-1]的字符范围 的最长公共子序列这里我们取i…

JAVA 15发布,越来越像C# ?9月排名,C#增幅狠甩JAVA

2016年.NET Core首个正式版本问世&#xff0c;如今已发布到了.NET Core3.1&#xff0c;再有2个月.NET5也将如约而至&#xff0c;跨平台开发已经快5年。微软 .NET 程序管理总监 Scott 表示&#xff0c;.NET 5 是 .NET Framework 和 .NET Core 的未来&#xff0c;最终将成为一个统…

leetcode1035. 不相交的线

一:题目 二:上码 class Solution { public:/**思路:1.分析题意:这里的我们要求解的是最大值,那么我们的求解过程肯定是动态变化的,举个例子2 5 1 2 510 5 2 1 5 2 如果我们一开始就让nums1[1] 5何 nums2[4] 5 相连的话 那么我们肯定不会求解出最大值那么题目中的说的直线不…

几个超级实用但很少人知道的 VS 技巧[更新]

大家好&#xff0c;今天分享几个我知道的实用 VS 技巧&#xff0c;而这些技巧我发现很多人都不知道。因为我经常在工作中遇到&#xff1a;我在同事电脑上解决问题&#xff0c;或在会议上演示代码示例时&#xff0c;使用了一些 VS “骚”操作&#xff0c;他们会好奇地问&#xf…

leetcode53. 最大子数组和(动态规划)

一:题目 二:上码 class Solution { public:int maxSubArray(vector<int>& nums) {/**动态规划:1>:确定dp数组的含义以及下标的含义dp[j]表示的是下标j之前的最大子数组和 这个就是还没有包括nums[j] 2>:确定dp数组的状态转移公式dp[j] max (dp[j-1]nums[j],n…

基于REACT和.NET CORE集成WINDOWS身份验证

有很多方法可以向您的应用程序添加身份验证。虽然OAuth是最常见的一种&#xff0c;但这并不是您唯一的选择。今天&#xff0c;我将向您展示如何通过React和.NET Core简单地完成Windows身份验证。探索我们的选择在深入探讨之前&#xff0c;让我们简要讨论一些可用的其他选项。了…

.NET Core加解密实战系列之——使用BouncyCastle制作p12(.pfx)数字证书

简介加解密现状&#xff0c;编写此系列文章的背景&#xff1a;需要考虑系统环境兼容性问题&#xff08;Linux、Windows&#xff09;语言互通问题&#xff08;如C#、Java等&#xff09;&#xff08;加解密本质上没有语言之分&#xff0c;所以原则上不存在互通性问题&#xff09;…