2020年总结:互联网思维下的工业软件开发

2020年的年终总结像往年一样如期而至,今年是个特殊的年份,疫情爆发,全国人民众志成城,支援武汉,把武汉疫情完美控制,接下来经历了一个整年的抗疫生活,见证了一个个门店的倒下、站起,一个个公司申请破产、又一个个公司申请登记注册。这一个年,见证了太多的悲伤、凄凉也感受到了太多的感动于欢乐,2020年注定在历史上留下浓墨重彩的一个纪年

2020年对于我,一个勤奋耕耘的小码农,也是意味深重的一年,因为经历的一些事,读了一些书,对我的认知发生了更改。
写下总结的时候,也给自己留个寄语

"希望十年后,我依然能够坚持在写博的这条路上

言归正传,总结一下今年在技术上学习的内容以及个人的心得

从Framework Winfrom 转型.NET CORE5.0 WPF

背景

作为一个.NET起家的桌面应用程序员,常年的Winfrom开发,编码的日常就是,控件拖拽、CRUD等相关工作。 Winform一直是Microsoft的大本营,在网页端是被Java甩下十几条街了,但是随着.Net Core的发布,GitHub上的.NET CORE的开源,使得.NET CORE 愈发强劲。在.NET CORE5.0 发布中,增加了3.x之前一直没有的Winfrom 平台、WPF平台,追随Microsoft的脚步,早早在2019Preview内测的时候,转战到.NET CORE5.0。

原因

从Winfrom转WPF的起因还是因为数字可视化概念的提升,传统的Winfrom虽然在功能性上无比优越,但是随着用户对视觉效果要求的日益增强,WPF平台下的开发成为了必然渠道。

WPF开发按照MVVM框架,将UI和业务逻辑分开,当然在Winfrom中同样适配,但是这个概念没有像WPF开发中提出的这么强烈

过程

1、设计规范

谈到数字可视化的概念,不得不提的就是设计规范,TOB虽然一直而言,对审美的要求不是太高,但是随着同类型产品的日益美化,在竞争的驱使下,,成为了软件不可或缺的一环节

在市面上面对琳琅满目的设计规范,在这里推荐一款我应用的非常好用的设计规范
MaterialDesign,该设计规范提供的样式大气磅礴,实用性很强

GitHub开源链接

转场效果

<center>

</center>

细节动画

<center>

</center>

2、MVVM框架选择

市面上有多种的开源的MVVM框架,但是每个框架都有各自的特色,列出如下,本人在深入了解比较后使用MVVM Light ToolkitMicrosoft Prism两种,MVVMLight 是轻量级应用,应对小型应用开发足以,Prism框架前身是Composite Application Guidance for WPF and Silverlight,网上大量资料说复杂,其实理解进去,很简单,这里有一篇关于Prism的介绍,看完基本可以入门了。

MVVM框架罗列如下:

  • MVVM Light Toolkit
  • Microsoft Prism
  • Calcium SDK
  • Caliburn
  • Caliburn
  • Silverlight.FX
  • nRoute:

有了设计规范、MVVM框架,WPF的开发在属性Xaml语言的基础上,就可以扬帆起航了。

GUI胖客户端瓶颈问题解决

背景

应用于工业领域的GUI,从Winfrom转到WPF,在视觉效果上取得了很大成功,但是仅仅视觉效果的提升,那是远远不够的。熟悉工业领域的小伙伴们都知道,OPC是工业领域应用在广泛不过的自动化控制协定,OPCServer 点的订阅数量有瓶颈,客户端订阅数量的增加会影响到OPCServer的性能,过多的订阅会导致OPCServer宕机。同时,胖客户GUI应用于工业领域,对数据的刷新要去很高,意味着数据库轮询的频次较高(数据库主动推送的问题,我们可以放在其他地方讨论

解决方案

传统的CS很少有像BS那样前后端分离明明白白的,传统CS中Client与Server部分分离,或者少分离的问题在这里就凸显尖锐化。

为解决这种情况,Server端分离,采用多个客户端访问一个Server,这个Server作为OPCServer的代理服务器,降低OPCServer点的订阅数成为了解决方案的核心。

做Server,常见的Webserver、WCF是可以选择的,但是当下大Web的趋势,使得我们按照Restful API的方式建立接口,更为值得推荐

使用 .NET CORE5.0 创建Web API 成了不二途径。而使用 .Net Core 做Server,数据的压力可以通过互联网常用的负载均衡、微服务、Grpc通讯、MQ、Dock、K8s等相关技术的引入,.NetCore 完美支持这些应用方式。

技术介绍

使用 .Net Core 创建Web API 和常用的CS创建工程还是有蛮多区别,通过下述两个文档说明基本可以入门 .NET CORE.

若没有.net 基础可以移步此处快速了解上手

具备入门知识以后,.NET CORE 开发不得不提的一个框架ABP,ABP是ASP .NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架。ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领域驱动设计(DDD)的体系结构模型。

负载均衡、Dock、K8s涉及部署技术
微服务、Grpc、MQ编码实现技术,ABP提供了框架,为这些应用开发大大缩减了时间

通过如下的ABP基础知识,可以带你快速ABP入门

ABP 基础知识结构

技术突破

在这边文章发表之前,技术介从来没有使用过 MaterialDesign + Prsim + ABP 三大框架结合的开发工作,作为尝螃蟹第一人,很开心将今年的技术融合在这里与大家分享,希望我的尝试,能够帮助到大家!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容