2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

去年.NET Conf China 技术大会上,我给大家分享了主题《轻松玩转.NET大规模版本升级》,今天把具体分享的内容整理成一篇博客,供大家研究参考学习。

一、先说一下技术挑战和业务背景

    我们公司:特来电新能源股份有限公司:中国最大最强新能源汽车充电网运营商,主要从事新能源汽车充电网的建设、运营以及互联网增值服务。

    基于.NET技术栈,团队通过七年的迭代演进,搭建了一个分布式、微服务、高可用的互联网技术平台,全面支撑了特来电充电业务的大规模应用。

    目前,我们面临的技术挑战有:

大型分布式、微服务、云原生应用,新能源行业最大的互联网应用

服务于全国的电动汽车车主,系统的稳定性要求非常高:SLA 99.99% ,系统全年可允许宕机时间只有52.56分钟

现有技术平台需要快速支撑整个充电网的快速、上量发展!

     通过打造一个互联网技术平台,全面支撑赋能公司的业务发展:

     

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

二、.NET技术栈及版本升级选择

   1. 先看一下我们互联网技术平台的技术架构全景图

    

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

   2. 整个互联网技术平台背后的.NET技术栈和开源技术

   

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

  3. 目前系统的应用规模

      

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

   4. .NET版本选择及升级策略

.NET Framework4.5.1 这个版本是线上最主要的版本,2015年开始一直沿用到现在

2020年正式全面迁移.NET Core3.1(LTS版本)

业务代码无法全部停下来,迁移升级.NET Core 3.1

迁移策略:逐步试点,逐个上线,非核心业务-新业务-核心业务

线上要长期、同时支持.NET Core 3.1和.NET Framework4.5.1

2022年计划整体升级迁移到.NET 6

     为什么目前选择了.NET Core 3.1 ?

.NET Core 3.1:LTS版本,微软支持到2022年

.NET 5:非LTS版本,.NET 5是.NET统一后的第一个大版本,部分功能不完善,目前看是一个过渡版本。

2022年:整体升级迁移到.NET 6(LTS)

      

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

        .NET 升级策略的设计        

开发时:技术平台的代码统一使用.NET Standard,同时支持.NET Framework4.5.1和.NET Core 3.1 业务代码的引用

运行时:.NET Framework4.5.1和.NET Core代码并存,技术平台提供对应两个版本的.NET CLR运行时,支持相互调用

       

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

三、.NET线上大规模升级实践分享

   1. 整体升级步骤

    

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

   2. 先梳理NuGet包,确定各板块应用.NET Core升级顺序

       

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

    3. 底层技术平台先升级.NET Core

     3.1 一套代码同时支持.NET Framework和.NET Standard

     同时兼容.NET Framework和.NET Standard

     同时兼容2个版本,不需要代码同步

     示例一个多Target Framework的项目工程设计

     

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

     示例一下代码支持多版本.NET

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzyjjy.html