• 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开源链接

    转场效果

    样例如下

    细节动画

    Alt

    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 三大框架结合的开发工作,作为尝螃蟹第一人,很开心将今年的技术融合在这里与大家分享,希望我的尝试,能够帮助到大家!

  • 相关阅读:
    P2949 [USACO09OPEN]工作调度Work Scheduling
    P1279 字串距离 (动态规划)
    P2634 [国家集训队]聪聪可可
    点分治模板
    网站收集
    P1131 [ZJOI2007]时态同步
    P1446 [HNOI2008]Cards
    P1437 [HNOI2004]敲砖块
    蓝桥杯-k倍区间
    atom / vscode (配置c++环境流程)
  • 原文地址:https://www.cnblogs.com/yuyue5945/p/14178784.html
Copyright © 2020-2023  润新知