目 錄
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