d0wnl0ad
V2EX  ›  .NET

.net core 2.2 升级到最新 LTS

  •  
  •   d0wnl0ad · Feb 27, 2022 via Android · 5064 views
    This topic created in 1711 days ago, the information mentioned may be changed or developed.
    有鉴于公司的底层 OS 需要更新,公司在评估.net core 下写的代码要如何处置。。。

    但是工程师全部被拖到另外一个项目里面去,结果需要一个 n 久没有开发过的去预估难度(默)

    想问下各位大佬有什么建议?除了传说中的全部炸掉重来,有可能套娃式升级嘛?

    如果有大佬想赚外块欢迎联系~

    MTg2ODE1NTcyNzM=
    18 replies  •  2022-05-15 19:06:07 +08:00
    quan01994
    quan01994
    Feb 27, 2022❤️1
    1
    应该不会有什么问题。
    yejinmo
    yejinmo
    Feb 27, 2022❤️1
    2
    前段时间刚把公司后端从 .Net Core 3.1 升级到 .Net 6.0
    感觉除了部分方法需要重写,没啥成本啊
    userforg2021
    userforg2021
    Feb 27, 2022❤️1
    3
    2.2 升级的话变动还是有点大,不过业务代码应该不用动。Host 构建需要改一下,json 序列化有变动,endpoint 机制不同。其他的应该都兼容。参见官方文档。https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-6.0&tabs=visual-studio
    hervey0424
    hervey0424
    Feb 27, 2022❤️1
    4
    基本没啥太多变化
    sunhelter
    sunhelter
    Feb 27, 2022❤️1
    5
    问题不大,先从 2.2 升到 3.1 ,修复中断性变更导致的错误,再从 3.1 升 6 基本不需要改
    thinkershare
    thinkershare
    Feb 27, 2022❤️1
    6
    最新的 LTS 是 6.0 , 你们如果没有使用太多第三方库, 升级还是非常容易的, .NET Core 2.2 这种短命的版本为什么会用于生产环境呢?用也应该是.NET Core 2.1
    ragnaroks
    ragnaroks
    Feb 27, 2022❤️1
    7
    建议新建一个 6.0 的项目模板,然后从旧项目复制除 Startup.cs 以外的所有文件,再重现适配一下
    forgottencoast
    forgottencoast
    Feb 27, 2022❤️1
    8
    感觉应该比较轻松,.Net 向前兼容一直都做的很好的。
    建议找几个不同类型的典型项目先试试看,大概心中就有数了。
    d0wnl0ad
    d0wnl0ad
    OP
    Feb 27, 2022 via Android
    9
    谢谢大家的回应,对这件事情多少有点谱了,至于为啥是用了 2.2 ,只能说供应商太,太,太靠谱了 (默)
    thinkershare
    thinkershare
    Feb 28, 2022❤️1
    10
    @d0wnl0ad 遇到问题可用 @我, 我有时间会回复你的, 基本的问题应该都能给你解决, 我们也才刚刚将项目从 3.1 升级到.NET 6
    andrewpsy
    andrewpsy
    Feb 28, 2022❤️1
    11
    如果项目的单元测试覆盖率好那应该比较轻松。
    如果覆盖率不行,得从当前运行的版本往想要升级到的版本看每一版都有什么不兼容变化,可能要修改逻辑。这只能保证你们自己的代码迁移成功,其它用到的库就不好说了。
    weiweiwitch
    weiweiwitch
    Feb 28, 2022 via Android❤️1
    12
    我们公司有个工具,解析 Excel 的,从 2.1 升级到 3.1 ,然后读取有公式的 cell 就会出错。
    所以测试完善了再升级。
    netnr
    netnr
    Feb 28, 2022 via Android❤️1
    13
    EF 有个调整,以前不能转脚本的会把全部数据读取到内存再处理,现在报错
    coder001
    coder001
    Feb 28, 2022❤️1
    14
    @netnr #13 这大概是把 IQueryable 当成 IEnumerable 用才会把数据全都抓到内存来筛选吧
    我也有过傻傻分不清 Expression<Func<T, bool>> 和 Func<T, bool> 的过去,毕竟写出来的代码完全一样
    netnr
    netnr
    Feb 28, 2022 via Android❤️1
    15
    @coder001 不是的
    thtznet
    thtznet
    Feb 28, 2022❤️1
    16
    .net 2.2 除了启动入口有些写法变化,业务代码基本不需要改动,升级并不复杂,升级后基本上服务能起来就算成功。
    forgottencoast
    forgottencoast
    Mar 3, 2022❤️1
    17
    @coder001 这种肯定是没有检查过生成的 SQL 语句。
    Aloento
    Aloento
    May 15, 2022
    18
    从 framework 更新到.NET 6 都没有太恶心
    从 2 到 6 更没问题了
    直接更新然后看报错就行了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2526 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 14:53 · PVG 22:53 · LAX 06:53 · JFK 09:53
    ♥ Do have faith in what you're doing.