目 录
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
微信公众号:iNeuOS