摘要:
创新引导 1 概念 英文为innovation,拆分开,in,novation。in为进入,novation为革新,新的。即进入新的领域,进行新的革新。故,创新不仅可以是技术研发,也可以是管理理念,商业模式,营销模式等等。 2 在老旧的基础上 创新 是 成熟知识 结合具体需求 的 实践应用。 创新不 阅读全文
摘要:
Net Core(Net5) 部署到不同操作系统的解决方法 1 系统版本升级补丁 1.1应用程序部署时VC无法安装,导致应用程序缺少配置文件,需将wins7600升级到7601. 原因是运行时可能会有依赖vc库 1.2查看:cmd 输入 winver.exe看到现场异常版本是7600 Windows 阅读全文
摘要:
敏捷式开发管理 1.背景 在现代软件开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷式开发管理概念应运而生。 2.敏捷开发 阅读全文
摘要:
abp.zero 9.0框架的前端Angular使用说明 摘要 某宝可自行购买 abp.zero 框架,本文相关的Abp Zero Angular 培训 B站视频有需要的可前往B站观看。 1 部署及启动 1.1 依赖包安装 安装nodejs(自包含npm包管理); yarn包管理; 备注:已经安装的 阅读全文
摘要:
物联网产品设计中的设备升级功能 一、背景 在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样一经出售就不再变更。 物联网平台支持通过在线升级方式进行设备固件升级,是智能设备修复系统漏洞、实现系统升级的手段,为用户通过固件升级提供更 阅读全文
摘要:
线程(一)——线程,线程池,Task概念+代码实践 摘要 线程中的概念很多,如果没有代码示例来理解,会比较晦涩,而且有些概念落不到实处,因此,本文以一些运行示例代码,结果来阐述线程中的一些基础概念。让自己跟读者一起把线程中的概念理解地更深刻。 1 线程安全 1.1 未出现线程抢占 class Thr 阅读全文
摘要:
深入理解C#中的异步(一)——APM模式EAP模式 1 使用异步编程的原因 同步编程,服务器在响A服务的数据库读取,网页请求或者文件请求(这里我们统称为IO操作),如果延迟很大,此时如果来了B服务的IO请求,可能无法及时响应(阻塞),此时异步编程模式(非阻塞)应运而生。 异步编程模式是为了避免性能瓶 阅读全文
摘要:
DotNetty关键概念及简单示例(基于NET5) 1.DotNetty 设计的关键 异步和事件驱动是Netty设计的关键。 1.1 核心组件 1.1.1 Channel Channel:一个连接就是一个Channel。 Channel是Socket的封装,提供绑定,读,写等操作,降低了直接使用So 阅读全文
摘要:
WEB组态可视化软件 1 B/S组态软件 它是一个独立的产品,包含编辑器(设计时)和运行环境(运行时)两大模块,我们将其命名为——WEB组态可视化软件(下称“组态软件”)。 2 组态概念 组态(Configure)的概念来自于20世纪70年代中期出现的第一代集散控制系统(Distributed C 阅读全文
摘要:
C# 中大端序与小端序 static void Main(string[] args) { uint value = 0x12345678; Console.WriteLine("原始字节序:0x12345678"); byte[] bigLittleEndian = BitConverter.Ge 阅读全文
摘要:
IL角度理解for 与foreach的区别——迭代器模式 1 最常用的设计模式 1.1 背景 如果问你最常用的设计模式是哪种?你可能会说单例模式,工厂模式。但根据我在项目里的经验,一个完整的应用,应该是迭代器模式。 1.2 摘要 本文不讲怎么去实现迭代器模式,但介绍迭代器模式到底是什么?为什么迭代器 阅读全文
摘要:
System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 Net 类库自带了邮件发送功能。笔者对该类库,从使用的角度进行了二次封装,nuget上可搜索EazyEmail,注入容器时通过委托来获得邮箱服务器的配置地址以及发送地址直接调用send方法即可。 容器注入代码。这里定义的委 阅读全文
摘要:
IL角度理解C#中字段,属性与方法的区别 1.字段,属性与方法的区别 字段的本质是变量,直接在类或者结构体中声明。类或者结构体中会有实例字段,静态字段等(静态字段可实现内存共享功能,比如数学上的pi就可以存在静态字段)。一般来说字段应该带有private 或者 protected访问属性。一般来说字 阅读全文
摘要:
#从IL角度彻底理解回调_委托_指针 #1.创作此文的背景 又是一个月的时间没写博文,瞎忙活,来武汉重新上班了,武汉这边中小学都开学了,很安全,大家可以放心 来商务出差个人游玩,重新招了个后端进团队,一个是在QQ技术群认识的,在他身上放佛看到了过去的自己,希 望以后能帮我分担更多的工作,得组织培训, 阅读全文
摘要:
#abp框架Excel导出——基于vue #1.技术栈 ##1.1 前端采用vue,官方提供 UI套件用的是iview ##1.2 后台是abp——aspnetboilerplate 即abp v1,https://github.com/aspnetboilerplate/aspnetboilerp 阅读全文
摘要:
#数据库对应EFCore操作 #1,查某个id在某个集合被包含的数据 例如: 查 Id 在ids里的结合 //实现的sql是实体Id in ids,也就是ids跟Id 两个集合的交集 var _ainfcfgs = await _ainfcfgServices.GetListAsync(x => i 阅读全文
摘要:
#1 linq介绍 ##1.1 linq产生背景 一个应用服务后台程序,肯定会需要格式各样的数据检索跟操作,而这些数据在过去的这些年里一般都会包含在关系型数据库或者xml文件中。 .Net3.5版本发行之前,传统的数据源访问方式就是直接对数据库或者xml文件进行检索操作。在.Net3.5 Visua 阅读全文
摘要:
#物联网海量设备心跳注册,脱网清除——多线程高并发互斥锁落地 #1.应用背景 在物联网应用场景中,需要维护很多个设备的连接,比如基于TCP socket通信的长连接,目的是为了获取设备采集的信息,反向控制设备的数字开关或者模拟量。我们把这些TCP长连接都放入了基于线程安全的ConcurrentDic 阅读全文
摘要:
#1.粘包现象 每个TCP 长连接都有自己的socket缓存buffer,默认大小是8K,可支持手动设置。粘包是TCP长连接中最常见的现象,如下图 socket缓存中有5帧(或者说5包)心跳数据,包头即F0 AA 55 0F(十六进制),通过数包头数据我们确认出来缓存里有5帧心跳包,但是5帧数据彼此 阅读全文
摘要:
[toc] 1.背景 接上篇文章 "深入浅出C 结构体——封装以太网心跳包的结构为例" ,使用结构体性能不佳,而且也说明了原因。本篇文章详细描述了以类来封装网络心跳包的优缺点,结果大大提升了解析性能。 2.用类来封装以太网心跳包的优缺点 2.1.优点 + 可以在类里直接new byte[],即直接实 阅读全文