目 錄
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
博客:https://www.cnblogs.com/lsjwq
微信公衆號:iNeuOS