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

  • 相关阅读:
    windows的80端口被占用时的处理方法
    Ansible自动化运维工具安装与使用实例
    Tomcat的测试网页换成自己项目首页
    LeetCode 219. Contains Duplicate II
    LeetCode Contest 177
    LeetCode 217. Contains Duplicate
    LeetCode 216. Combination Sum III(DFS)
    LeetCode 215. Kth Largest Element in an Array(排序)
    Contest 176 LeetCode 1354. Construct Target Array With Multiple Sums(优先队列,递推)
    Contest 176
  • 原文地址:https://www.cnblogs.com/yuyue5945/p/14178784.html
Copyright © 2011-2022 走看看