在前面的文章中,我们介绍了基于Remoting,共享内存等技术的进程间通信方案,今天介绍一款基于.NET的进程间数据交互经典解决方案-管道(Pipes),仅供学习分享使用,如有不足之处,还请指正。 ...
现在软件代码签名已经不能用 pfx 软证书了,需要搭配 FIPS140-2 Level2、Common Criteria EAL4级以上或者同等认证级别的硬件,如 USB 令牌、硬件安全模块 HSM 等才能完成签名 ...
本来老周计划在 10 月 1 日或 2 日写这篇水文的,没打算出去玩(确实没啥好玩)。不过因为买的运动相机到手,急着想试试效果,于是就备了些干粮,骑着山地车在外面鬼混了一天。10 月 2 日,家里来了三位热爱学习的小妹妹,必须传道授业解惑。10 月 3 日去表弟家里挑一只战斗力强的狸花猫,负责家里的 ...
在开始水文章前,老周补充说明一下,在前一篇水文中,老周扯了跟 Owned 关系相关的一些话题,这里补充一句:Owned 关系是不存在“多对多”的,如果 A 实体 Own B 实体,那么,A 对 B 是完全占有,B只属于A,数据不共享,这样就不存在“多”的一端;但A可以同时占用B、C实体,所以一占多是 ...
简单来讲讲C#中的锁 ✨ 前言 今天来说说C#中的锁,锁在日常开发中还是很常用的,但是用的不得当,或者骚操作比较多那么就会导致死锁,从而导致系统崩溃。 后面我会出一系列文章,来讲讲C#里面的代码和技巧,通过不断的学习积累,以达到我的跳槽目标。 文章中有任何错误的地方都可以指出,博主也在不断的学 ...
在很多个世纪前,老周曾写过实体之间普通关系(一对一,一对多,多对多)与 Owned 关系的区别。不过,那次写得比较粗浅,逼格不够高,于是,老周厚着脸皮地决定重新写一下。 首先,为什么这次老周用原单词 Owned 呢,官方文档目前的翻译(怀疑是机器干的)为“从属”,这种说法与普通关系数据库中一对多、多 ...
在实际开发中,数据同步非常重要,特别是跨线程或者进程之间数据交互的时候,如果不能进行数据同步管理,那各个线程或者进程之间就会产生数据错乱问题,比如A程序用的是更新之前的数据,B数据用的是更新之后的数据,这会造成很严重的后果。今天我们以一个简单的小例子,介绍一款线程or进程之间数据同步的解决方案,谨供... ...
在使用外部模型那篇水文中,有大伙伴提出:老周,你那个 Ultraman 类和 Speciality 类的的关系是不是有问题,外键不应该在 Speciality 类上吗,怎么会跑到 Ultraman 类上?因为它们是一对一关系,在配置的时候你也可以反过来,主要区别是谁引用谁的问题,由于是一对一引用,所 ...
本文所讲述内容,大伙伴们不必要完全掌握,毕竟,dotnet ef 工具会帮助咱们生成相关代码。不过,为了让各位能够真正了解它,老周会做一次纯手搓代码。 所谓优化后的模型,相当于把实体的配置进行“硬编码”,程序会执行更少的代码来提升效率。放到实际代码编写上,这个活叫运行时模型,对应的类就是 Runti ...
在实际项目开发中,越是复杂的项目,越是需要很多人协同完成,每一个人根据职责分工不同,负责不同的模块。在这个过程中,由于每一个人的工作经历不同,在不同的职场环境中,会形成不同的编码习惯,比如有人喜欢驼峰命名方式,有人喜欢帕斯卡命名方式,还有人喜欢用下划线分隔单词,更有甚者,有的人喜欢随意命名,那在整个... ...
对于模型的配置,98.757%的情况下,我们使用“数据批注”特性类,或者 Fluent API (重写 DbContext 类的 OnModelCreating 方法)进行配置即可。但在少数情况下,可能会考虑在 DbContext 之外配置模型。比如: 你的实体类和模型,以及 DbContext 派 ...
将数据库数据导出为 Excel 文件,也因此成为实现报表生成、审计追踪、数据迁移和临时分析等需求时的一种高频操作。本文将介绍如何使用 Spire.XLS for .NET 通过 C# 将数据库记录高效导出到 Excel 文件。示例以 SQL Server 数据库为基础,但相同方法也适用于 SQLit... ...
在实际软件开发中,尤其是工业软件,每一款设备都有复杂的状态以及状态之间的切换的功能需求,在这种情况下,如何管理状态以及状态之间切换,和对应状态下的功能控制,成为非常重要的一个问题。如果处理不好,那这种繁复的状态将成为“像面条一样”缠绕耦合,一团乱麻,真的就是“剪不断,理还乱”。那如何解决这个问题呢?... ...
复合(或复杂)属性,即 Complex Property,怎么理解呢?这是相对于常见的基础类型,比如 string、int、byte、long 等类型的属性就是基础类型值,而由多个基础类型构成的类型就是复合类型(当然,复合类型的属性也可以其他复合类型,这里就不套娃了)。 比如,某顿饭由米饭、菜、肉、 ...
C#是区分大小写的,但是我却发现C#中同时存在String与string,于是我很困惑,于是我上网搜索了一下,于是我了解了一些小知识。 MSDN中对string的说明:string is an alias for String in the .NET Framework。string是String的 ...
在实际开发中,一款应用可能有多个应用程序组成,那这款应用各个组成部分之间的数据交互就成了关键,如何才能快速高效的进行数据交互呢?如果是跨服务器的进程交互,可以采用Remoting,WCF,GRPC等远程过程调用技术(RPC),这种方式会经过网卡进行网络传输,存在一定的数据转换及网络传输等性能消耗。如... ...
对于玩 EF 的大伙伴来说,对 DatabaseFacade 类的 EnsureCreated 和 EnsureDeleted 方法应该很熟悉。这对方法可在运行阶段创建或删除数据库。创建数据库时,会连同数据表一起创建;至于说删除数据库时嘛……库都没了,哪还有表呢。 不过,有些时候,不,不是有些时候, ...
上一次老周已介绍了 EF Core 框架自动发现实体和实体成员的原理。涉及到对源码的分析,可能大伙伴们都看得气压升高了。故这一次老周不带各位去分析源码了,咱们聊一聊熟悉又陌生的关键词——主键。说它熟悉,是因为只要咱们创建数据表,99%会用到;说它陌生,是指在 EF Core 中与主键相关的细节。 P ...
在Windows操作系统中,每一个应用程序都是相互独立的,它们拥有独立的内存空间,各个应用程序之间形成一道边界,不能互相访问和操作,这是操作系统为了保护应用程序的安全而设计的。这种看似“井水不犯河水”的设计同样有它的弊端,假如两个应用程序需要相互协作配合才能完成工作,那它们就需要进行通信和数据交互,... ...
.Net Minimal APIs实现动态注册服务 前言 dotnet Minimal APIs实现动态注册端点 上一篇文章讲解了在.Net Minimal APIs如何动态注册端点,这篇文章来讲解一下如何动态注册服务 文件层级结构如下: SharpIcoWeb ├── Endpoints │ ├─ ...