对项目版本自动控制——利用gitversion

对项目版本自动控制——利用gitversion 1 为什么需要自动版本控制 笔者很多年以前是从事fpga芯片设计工作的,那时需要将fpga的固件下载进fpga芯片,而某个文件夹下会放历史的固件,那时笔者就在编译时将编译时刻的时刻写进了fpga的某个寄存器,方便测试人员跟开发人员查看区分。同时将此时刻 ... »

创新引导

创新引导 1 概念 英文为innovation,拆分开,in,novation。in为进入,novation为革新,新的。即进入新的领域,进行新的革新。故,创新不仅可以是技术研发,也可以是管理理念,商业模式,营销模式等等。 2 在老旧的基础上 创新 是 成熟知识 结合具体需求 的 实践应用。 创新不 ... »

敏捷式开发管理

敏捷式开发管理 1.背景 在现代软件开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷式开发管理概念应运而生。 2.敏捷开发 ... »

IL角度理解for 与foreach的区别——迭代器模式

IL角度理解for 与foreach的区别——迭代器模式 1 最常用的设计模式 1.1 背景 如果问你最常用的设计模式是哪种?你可能会说单例模式,工厂模式。但根据我在项目里的经验,一个完整的应用,应该是迭代器模式。 1.2 摘要 本文不讲怎么去实现迭代器模式,但介绍迭代器模式到底是什么?为什么迭代器 ... »

System.Net邮件发送功能踩过的坑

System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 Net 类库自带了邮件发送功能。笔者对该类库,从使用的角度进行了二次封装,nuget上可搜索EazyEmail,注入容器时通过委托来获得邮箱服务器的配置地址以及发送地址直接调用send方法即可。 容器注入代码 servic ... »

IL角度理解C#中字段,属性与方法的区别

IL角度理解C#中字段,属性与方法的区别 1.字段,属性与方法的区别 字段的本质是变量,直接在类或者结构体中声明。类或者结构体中会有实例字段,静态字段等(静态字段可实现内存共享功能,比如数学上的pi就可以存在静态字段)。一般来说字段应该带有private 或者 protected访问属性。一般来说字 ... »

物联网海量设备心跳注册,脱网清除——多线程高并发互斥锁落地

物联网海量设备心跳注册,脱网清除——多线程高并发互斥锁落地 [toc] 1.应用背景 在物联网应用场景中,需要维护很多个设备的连接,比如基于TCP socket通信的长连接,目的是为了获取设备采集的信息,反向控制设备的数字开关或者模拟量。我们把这些TCP长连接都放入了基于线程安全的Concurren ... »

类与结构体性能对比测试——以封装网络心跳包为例

[toc] 1.背景 接上篇文章 "深入浅出C 结构体——封装以太网心跳包的结构为例" ,使用结构体性能不佳,而且也说明了原因。本篇文章详细描述了以类来封装网络心跳包的优缺点,结果大大提升了解析性能。 2.用类来封装以太网心跳包的优缺点 2.1.优点 + 可以在类里直接new byte[],即直接实 ... »

深入浅出C#结构体

[toc] 1.应用背景 底端设备有大量网络报文(字节数组):心跳报文,数据采集报文,告警报文上报。需要有对应的报文结构去解析这些字节流数据。 2.结构体解析 由此,我第一点就想到了用结构体去解析。原因有以下两点: 2.1.结构体存在栈中 类属于引用类型,存在堆中;结构体属于值类型,存在栈中,在一个 ... »

基于Modbus三种CRC16校验方法的性能对比

[toc] 1.背景介绍 主要应用场景在物联网中,底端设备注册报文的上报,需要对报文的有效载荷(data)进行CR16C的复验,验证与设备端的CRC校验是否相等,如果相等,报文有效,设备上报就会注册成功,不是第一次则会刷新心跳时间,避免通信中断告警。设备的报文结果以及设备的CRC16位置如下: 平台 ... »

Git在公司内部的使用规范

Git在公司内部的使用规范 [toc] 1.版本定义 版本号使用x.x.x.x进行定义. + 第一个x代表大版本只有在项目有重大变更时更新; + 第二个x保留; + 第三个x代表常规版本有新求会更新; + 第四个x代表紧急Bug修正; 一个常见的版本号类似于:0.0.10.11 2.系统开发环境 | ... »

abp框架运行——前后端分离(基于VUE)

[toc] 1.介绍abp 全称:aspnetboilerplate。 官网:https://aspnetboilerplate.com/ 由美国人发起的开源项目。 web应用框架 2.abp如何工作 微服务框架,可以使用 net core版本,也可使用net framework两种框架 3.运行D ... »