日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

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

發(fā)布時間:2023/12/4 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

去年.NET Conf China 技術(shù)大會上,我給大家分享了主題《輕松玩轉(zhuǎn).NET大規(guī)模版本升級》,今天把具體分享的內(nèi)容整理成一篇博客,供大家研究參考學習。

一、先說一下技術(shù)挑戰(zhàn)和業(yè)務(wù)背景

? ? 我們公司:特來電新能源股份有限公司:中國最大最強新能源汽車充電網(wǎng)運營商,主要從事新能源汽車充電網(wǎng)的建設(shè)、運營以及互聯(lián)網(wǎng)增值服務(wù)。

? ? 基于.NET技術(shù)棧,團隊通過七年的迭代演進,搭建了一個分布式、微服務(wù)、高可用的互聯(lián)網(wǎng)技術(shù)平臺,全面支撐了特來電充電業(yè)務(wù)的大規(guī)模應(yīng)用。

? ? 目前,我們面臨的技術(shù)挑戰(zhàn)有:

  • 大型分布式、微服務(wù)、云原生應(yīng)用,新能源行業(yè)最大的互聯(lián)網(wǎng)應(yīng)用

  • 服務(wù)于全國的電動汽車車主,系統(tǒng)的穩(wěn)定性要求非常高:SLA 99.99% ,系統(tǒng)全年可允許宕機時間只有52.56分鐘

  • 現(xiàn)有技術(shù)平臺需要快速支撐整個充電網(wǎng)的快速、上量發(fā)展!

  • ? ? ?通過打造一個互聯(lián)網(wǎng)技術(shù)平臺,全面支撐賦能公司的業(yè)務(wù)發(fā)展:

    ? ? ?

    二、.NET技術(shù)棧及版本升級選擇

    ? ?1. 先看一下我們互聯(lián)網(wǎng)技術(shù)平臺的技術(shù)架構(gòu)全景圖

    ? ??

    ? ?2.?整個互聯(lián)網(wǎng)技術(shù)平臺背后的.NET技術(shù)棧和開源技術(shù)

    ? ?

    ? 3. 目前系統(tǒng)的應(yīng)用規(guī)模

    ? ? ??

    ? ?4.?.NET版本選擇及升級策略

    • .NET Framework4.5.1 這個版本是線上最主要的版本,2015年開始一直沿用到現(xiàn)在

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

    • 業(yè)務(wù)代碼無法全部停下來,遷移升級.NET Core 3.1

    • 遷移策略:逐步試點,逐個上線,非核心業(yè)務(wù)-新業(yè)務(wù)-核心業(yè)務(wù)

    • 線上要長期、同時支持.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統(tǒng)一后的第一個大版本,部分功能不完善,目前看是一個過渡版本。

    • 2022年:整體升級遷移到.NET 6(LTS)

    ? ? ??

    ? ? ? ? .NET 升級策略的設(shè)計? ? ? ??

    • 開發(fā)時:技術(shù)平臺的代碼統(tǒng)一使用.NET Standard,同時支持.NET Framework4.5.1和.NET Core 3.1 業(yè)務(wù)代碼的引用

    • 運行時:.NET Framework4.5.1和.NET Core代碼并存,技術(shù)平臺提供對應(yīng)兩個版本的.NET CLR運行時,支持相互調(diào)用

    ? ? ? ?

    三、.NET線上大規(guī)模升級實踐分享

    ???1. 整體升級步驟

    ? ??

    ? ?2.?先梳理NuGet包,確定各板塊應(yīng)用.NET Core升級順序

    ? ? ? ?

    ? ??3.?底層技術(shù)平臺先升級.NET Core

    ? ? ?3.1 一套代碼同時支持.NET Framework和.NET Standard

    ? ? ?同時兼容.NET Framework和.NET Standard

    ? ? ?同時兼容2個版本,不需要代碼同步

    ? ? ?示例一個多Target Framework的項目工程設(shè)計

    ? ? ?

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

    ? ? ?

    ? ? 3.2 NuGet包同時支持.NET Framework和.NET Standard

    價值:
    同時兼容.NET Framework和.NET Standard
    兼容現(xiàn)有代碼引用,減少對引用方的影響

    ? ? 3.3 同時兼容App.config和Web.Config文件

    ? ? ? 引用Nuget:System.Configuration.ConfigurationManager

    ? ? ? 兼容Web.Config文件中對配置的訪問。

    ? ? ??

    ? ??3.4 單元測試兼容App.config和Web.Config文件

    ? ? 單元測試情況下,在單元測試工程中增加了app.config文件,但是實際無法讀取其中的配置,原因是:

    ? ??MSTest?is?running?as?testhost.dll, which means that ConfigurationManager?is?reading settings?from?testhost.dll.config when executing under .NET core. It will look?for?testhost.dll.config?where?the testhost.dll?is?located?as?the accepted answer states. What?is?not mentioned?is?that it will also look?for?testhost.dll.config?in?the location?where?you have your test dlls

    ??

    ? ? 如何解決,大家可以參考這個連接:https://stackoverflow.com/questions/47752271/app-config-not-beeing-loaded-in-net-core-mstests-project/47753580

    ? ??3.5 MyBatis.NET 升級.NET Core

    ? ? MyBatis.NET作為數(shù)據(jù)訪問組件,社區(qū)早已不在維護,升級.NET Core我們做了哪些改造?

    ? ??替換System.Web.HttpContextiBatis.net針對asp.net應(yīng)用提供了HybridWebThreadSessionStore,通過HttpContext存儲每個http請求線程訪問數(shù)據(jù)庫的上下文。由于ASP.Net Core不再提供直接獲取HttpContext的方法,取而代之的是提供IHttpContextAccessor接口,并通過注冊HttpContextAccessor來獲取,因此在sqlmap初始化時,將獲取HttpContext的委托方法傳到HybridWebThreadSessionStore,使得每次ibatis.net需要獲取HttpContext時,都會從HttpContextAccessor中拿到。

    ? ??替換System.Runtime.Remoting.Messaging.CallContextiBatis.net針對非web的應(yīng)用也提供了CallContextSessionStore,通過CallContext來維護每個線程訪問數(shù)據(jù)庫的上下文。但.net core不再提供CallContext類,因此需要將CallContext替換為AsyncLocal類型的字典集合。Emit動態(tài)生成程序集相關(guān)改動。

    ? ??對于一些使用Emit動態(tài)生成程序集的操作,例如DefineDynamicAssembly,由于原AppDomain中已經(jīng)不再支持,需要進行一些相應(yīng)的類的調(diào)整。

    ?4、業(yè)務(wù)服務(wù)升級.NET Core

    ??

    ?5、.NET Framework和.NET Core并行、兼容運行,線上逐步升級

    ? ? ?技術(shù)平臺層面:通過HTTP和TCP協(xié)議適配,實現(xiàn)微服務(wù)在.NET Framework和.NET Core下并行、兼容運行

    ? ? ?大規(guī)模升級步驟:非核心業(yè)務(wù)-新業(yè)務(wù)-核心業(yè)務(wù),逐個系統(tǒng)升級、上線

    ? ? ?

    四、未來技術(shù)規(guī)劃

    ? ?全面升級.NET 6, 構(gòu)建下一代云原生架構(gòu)的互聯(lián)網(wǎng)技術(shù)平臺

    ? ?

    ? 以上是2021年.NET Conf China 技術(shù)大會上,我給大家分享了主題《輕松玩轉(zhuǎn).NET大規(guī)模版本升級》的主要內(nèi)容。視頻可以通過思否的進行回顧:https://ke.segmentfault.com/course/1650000041122988/section/1500000041123033

    總結(jié)

    以上是生活随笔為你收集整理的2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 理论片久久 | 双腿张开被9个男人调教 | 免费看一级黄色大全 | 国语对白做受按摩的注意事项 | 国产黄视频在线观看 | 日韩欧美亚洲成人 | 超碰激情 | 久久国产香蕉视频 | 伊人五月天| 免费在线观看国产精品 | 亚洲综合第一页 | 亚洲插插插 | 毛片a片免费看 | 亚洲美女视频 | 98色| 瑟瑟综合网 | 欧美在线观看网站 | 伊人网在线视频 | 国产九九热视频 | 网友自拍咪咪爱 | 免费日韩一区 | 久色伊人 | 美女被日网站 | 色欲国产精品一区二区 | 日本特级片 | 亚洲成a人 | 欧美亚洲少妇 | 欧美国产一级 | 国产精品人人妻人人爽 | 国产美女黄网站 | 国产欧美啪啪 | 艳妇乳肉豪妇荡乳av无码福利 | 张柏芝亚洲一区二区三区 | 美国一区二区三区 | hs视频在线观看 | 国产午夜三级一区二区三 | 爱爱一区| 综合伊人av| 九色蝌蚪视频 | 99re久久精品国产 | 欧美黄片一区 | www av| 91人妻一区二区三区蜜臀 | 亚洲网站在线播放 | 久久精品网 | 黄黄的视频在线观看 | 亚洲精品一区二区在线观看 | 午夜精品剧场 | 欧美亚洲综合视频 | 成人小视频免费在线观看 | www.久久婷婷 | 亚洲国产精品免费在线观看 | 国产黄色大片视频 | 中文字幕在线一区二区三区 | 欧美a图 | 少妇献身老头系列 | 亚洲激情综合 | 欧美亚一区二区三区 | 麻豆av在线免费观看 | 一区二区三区在线视频播放 | 欧亚免费视频 | 美女被草视频在线观看 | 亚洲av日韩精品久久久久久久 | 亚洲色图第三页 | 国产欧美日韩中文字幕 | 阿v视频在线免费观看 | 精品一区二区久久 | 好吊视频一区 | 久久91久久 | 激情图片网站 | 亚洲最新| 亚洲福利社区 | 麻豆av影院| 性开放耄耋老妇hd | 婷综合 | 日韩v欧美 | 亚洲小视频在线观看 | 国产乱人伦app精品久久 | 午夜成年人视频 | 欧美在线观看网站 | 中文字幕一区三区 | 国产妞干网 | 精品第一页 | 亚洲精品在线免费观看视频 | 国产妻精品一区二区在线 | 欧美88av | 人与性动交zzzzbbbb | 色婷婷一区二区 | 爱上av| 成人免费短视频 | 天天干天天天 | va在线看 | 成人午夜大片 | 亚洲一区二区三区不卡视频 | 99在线免费视频 | 欧美丰满熟妇bbb久久久 | 特级淫片裸体免费看冫 | 无码人妻精品丰满熟人区 | 色妞视频 |