iNeuOS工業互聯網作業系統,順利從NetCore3.1升級到Net6的過程彙報

目       錄

1….. 概述… 1

2….. 升級的工程… 3

3….. 升級的程式碼差異… 4

4….. 系統運行… 5

1.   概述

  我們團隊一直在工業領域從事實時系統和業務系統的開發與集成工作,開發語言使用過C51/C++/VB/VC++/C#(Net Framework)/C#(Netcore3.1)/C#(NET6)。前幾天微軟發布:.NET 誕生 20 周年,確實挺感慨。記得大概是2002在大學上學的時候,就開始自學C#,這麼多年來一直存在使用開發語言優劣的激烈辯論,但是我們只是吃瓜群眾。

  積累了多年的行業和技術經驗,2015年開始規劃開發iNeuOS工業互聯網平台,儘管由於各種原因,進度比較慢,但是這個方向是正確的。從2019年10月發布1.0版本到2022年2月發布3.6.5版本,全部使用netcore3.1開發。NET5是一個集成的整合版本,沒有考慮升級,現在NET7預覽版本已經發布,另外netcore3.1今年底面臨終止支援,所以現在把iNeuOS升級到NET6框架,即將發布iNeuOS的3.7版本。

  NET各版本支援情況,如下圖:

        iNeuOS發布版本過程,如下圖:

2.   升級的工程

  後台服務升級項目數量:36個項目,包括測試項目。

  後台Api升級項目數據:12個項目,包括測試項目。

    整個升級及測試過程大概用了一天的時間,如下圖:

       NET6版本,如下圖:

3.   升級的程式碼差異

  主要是差異點是對執行緒的操作,其他程式碼涉及到安全或是演算法操作,例如Md5的使用。

  原來對執行緒退出的操作,如下:

//原來使用執行緒的方式
//啟動執行緒
Thread _thread = new Thread(new ThreadStart(RunThread));
_thread.Start();

//運行執行緒
private void RunThread()
{
    while (true)
    {
        try
        {
           //code
        }
        catch(Exception ex)
        {
        }
    }
}

//退出執行緒
_thread.Abort();

  升級後使用執行緒的方式,如下:

//升級後使用執行緒的方式
//啟動執行緒
Thread _thread = new Thread(new ThreadStart(RunThread));
_thread.Start();

//運行執行緒
private void RunThread()
{
    while (true)
    {
        try
        {
           //code
        }
        catch(ThreadInterruptedException)
        {
            break;
        }
        catch(Exception ex)
        {
        }
    }
}

//退出執行緒,原來的Abort不再支援
_thread.Interrupt();

4.   系統運行

  系統登陸,如下圖:

        進入系統,如下圖:


物聯網&大數據技術 QQ群:54256083
物聯網&大數據項目 QQ群:727664080
QQ:504547114
微信:wxzz0151
部落格://www.cnblogs.com/lsjwq
微信公眾號:iNeuOS

Tags: