使用 xunit 编写测试代码

使用 xunit 编写测试代码 Intro xunit 是 .NET 里使用非常广泛的一个测试框架,有很多测试项目都是在使用 xunit 作为测试框架,不仅仅有很多开源项目在使用,很多微软的项目也在使用 xunit 来作为测试框架。 Get Started 在 xunit 中不需要标记测试方法,所有 ... »

.NET gRPC 核心功能初体验,附Demo源码

gRPC是高性能的RPC框架, 有效地用于服务通信(不管是数据中心内部还是跨数据中心)。 由Google开源,目前是一个Cloud Native Computing Foundation(CNCF)孵化项目。 其功能包括: 双向流 强大的二进制序列化 可插拔的身份验证,负载平衡和运行状况检查 在gR ... »

C# 使用 Index 和 Range 简化集合操作

C# 使用 Index 和 Range 简化集合操作 Intro 有的语言数组的索引值是支持负数的,表示从后向前索引,比如:arr[-1] 从 C# 8 开始,C# 支持了数组的反向 Index,和 Range 操作,反向 Index 类似于其他语言中的负索引值,但其实是由编译器帮我们做了一个转换, ... »

【.NET 与树莓派】控制舵机

不管是小马达,还是大马达,嗯,也就是电机,相信大伙伴们也不会陌生。四驱车是一种很优秀的玩具,从老周小时候就开始流行(动画片《四驱兄弟》估计很多大朋友都看过),直到现在还能看到很多卖四驱车的。为啥会想起四驱车呢?因为小时候玩四驱车让老周认识了很多奇葩马达,什么“红魔鬼”、“蓝芯”、“紫魔鬼”……也不知 ... »

让 gRPC 提供 REST 服务

让 gRPC 提供 REST 服务 Intro gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。 gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。 ... »

Dapr 正式发布1.0

年前我写了一篇博客《Dapr 已在塔架就位 将发射新一代微服务》, 今天Dapr 正式发布了1.0 : Dapr Runtime v1.0.0 Dapr dotnet SDK v1.0.0 随着Dapr 发布1.0 版本, .NET团队编写的《Dapr for .NET Developers》:ht ... »

Dapr 正式发布1.0

年前我写了一篇博客《Dapr 已在塔架就位 将发射新一代微服务》, 今天Dapr 正式发布了1.0 : Dapr Runtime v1.0.0Dapr dotnet SDK v1.0.0 随着Dapr 发布1.0 版本, .NET团队编写的《Dapr for .NET Developers》:htt ... »

Dapr 交通控制示例

Dapr 已在塔架就位 将发射新一代微服务牛年 dotnet云原生技术趋势Dapr是如何简化微服务的开发和部署 前面几篇文章都是从大的方面给大家分享Dapr 能帮助我们解决什么问题,微软从开源到1.0 也是经过2年的时间开发,因此我写了这几篇文章也只能是带领大家对Dapr 有个大的印象,真正对Dap ... »

.NET中使用DebuggerDisplay轻松定制调试

前言 对于调试的方式有多种,不过在今天我们将看到的监视窗口对变量的监视,当然在这里我们是定制内部的变量值,或者说变量的显示与计算的内容。 注:监视窗口在调试时可以一次显示多个变量。“快速监视”对话框一次显示一个变量。 DebuggerDisplayAttribute 在下面示例中,我们在类上添加De ... »

【.NET 与树莓派】让喇叭播放音乐

如果你和老周一样,小时候特别喜欢搞破坏(什么电器都敢拆),那下面这样小喇叭你一定见过。 这种喇叭其实以前很多录音机都用,包括上小学时买来做英语听力的便携录音机。嗯,就是放录音带的那种,录音带也叫磁带或卡带,有两个轮子,录音机的动力转轴会带动轮子转动,然后就能听到声音了。 小时候,放学从学校走回家,途 ... »

【.NET 与树莓派】PWM 调节LED小灯的亮度

在开始本文内容之前,老周先纠正一个错误。在上一篇中,提到过 Arduino 开发板的 Vin 引脚,文中老周说这个供电口的输入电压不能高于 5.5V。这里有错,被卖家给的使用说明忽悠了,上 Arduino 官网看了一下说明和原理图,Vin 引脚的有效电压是 7 - 12V,和DC输入口一样;输入电压 ... »

微服务业务生命周期流程管控引擎

将业务的流程管控和事件功能抽象剥离,切断事件功能方法内的链式调用,提权至流程引擎统一协调管控,事件功能作为独立处理单元嵌入业务流程之中,由流程引擎处理事件的触发与消息传递,在系统编码层级将事件内调用的”隐式导向”转变为事件外的“显式导向”。 ... »

自定义 ocelot 中间件输出自定义错误信息

自定义中间 ocelot 输出自定义错误信息 Intro ocelot 中默认的 Response 中间件在出错的时候只会设置 StatusCode 没有具体的信息,想要展示自己定义的错误信息的时候就需要做一些自定义了,对 ocelot 中的 Response 中间件做了一些小改动,实现了输出自定义 ... »

2020年终总结

时间一晃而过,转眼间2020年已接近尾声,回首繁忙充实的2020年心中不禁感慨万千,2020年实属不易,今年是非常特殊和不平凡的一年,年初疫情肆虐的阴影依然在脑海中挥散不去,2020年6月中旬结束两年沪漂生活的我来到广州,在7月初,我很荣幸加入了XX这个大家庭,过去的一年中通过自身的不断努力,使得技 ... »

小心 Enum Parse 中的坑

小心 Enum Parse 中的坑 Intro 最近使用枚举的时候,踩了一个小坑,分享一下,主要是枚举从 int 值转成枚举时可能会遇到 Sample 来看下面的示例: 首先定义一个枚举: public enum Color : byte { Red = 0, Green = 1, Blue = 2 ... »

【.NET 与树莓派】i2c(IIC)通信

i2c(或IIC)协议使用两根线进行通信(不包括电源正负极),它们分别为: 1、SDA:数据线,IIC 协议允许在单根数据线上进行双向通信——这条线既可以发送数据,也可以接收数据。 2、SCL:时钟线,注意了,这个时钟线跟我们平时所说的时钟没什么关系,不要以为这根线是用来接手表的。其实,这里所说的“ ... »