Fork me on GitHub

04 2022 档案

摘要:在.net6发布时,带来了一个新的模板框架,mini api,那与之前的mvc api性能对比是什么样的呢? 建了基于.net 6的两种模板项目,都实现了一个get /test01的api请求,代码如下: mini api: app.MapGet("/test01", () => { var arr 阅读全文
posted @ 2022-04-27 15:31 桂素伟 阅读(166) 评论(0) 推荐(1) 编辑
摘要:在古时候,引用类型是的默认值就是null,值类型是不可以赋值null的,所以那时候,“未将对象引用到实例”这个错误,是引用类型的。后来,值类型也可以赋值null了,只要在值类型变量定义的时候,加个?就可以,比如 int? i=null。到了c#8.0,引用类型又引入了可null引用类型,这里的意思不 阅读全文
posted @ 2022-04-27 15:12 桂素伟 阅读(68) 评论(0) 推荐(0) 编辑
摘要:有时,后台处理批量数据,需要一定的时间,如果处理一部分往前台送一部分,用户体验要好一些,这样就用到这个知识点了。 后台代码中下: [HttpGet("/getents")] public async IAsyncEnumerable<Entity> GetEntitys() { for (var i 阅读全文
posted @ 2022-04-27 15:00 桂素伟 阅读(88) 评论(0) 推荐(0) 编辑
摘要:string内插是指用$"日期:{DateTime.Now.ToString("yyyy年MM月dd日")}。",这种使用方式,在c#10.0时,引进了这种string内插的处理,可以写自定义的处理程序,来提升使用体验。具体用法见下面的代码: /// <summary> /// string内插处理 阅读全文
posted @ 2022-04-27 14:57 桂素伟 阅读(91) 评论(0) 推荐(0) 编辑
摘要:A、namespace是c#用来管理类型隔离的关键字,在不同的namespace下可以相同名称的类型,并且namespace是可以嵌套的。 Demo01.cs namespace NameSpaceDemo { internal class Demo01Class { } namespace NSD 阅读全文
posted @ 2022-04-26 17:22 桂素伟 阅读(198) 评论(0) 推荐(0) 编辑
摘要:C#10引入了日期DateOnly,时间TimeOnly: //从DateTime转换 Console.WriteLine(DateOnly.FromDateTime(DateTime.Now)); //从字会串转换 Console.WriteLine(DateOnly.Parse("2021-10 阅读全文
posted @ 2022-04-25 20:44 桂素伟 阅读(273) 评论(0) 推荐(0) 编辑
摘要:接上一篇最后的场景,为了解决相同帐户并发引起的数据库行级锁,可以引入Actor的串机制,相同ActorID的实例,串行,这样就能在应用层把读取余额的资源争抢解决掉,剩下的工作就是一定时间间隔,把内存中的数据批量更新到数据库中,大大减少了数据库的资源占用。 不废话了,看实现代码吧。 IAccountA 阅读全文
posted @ 2022-04-25 20:25 桂素伟 阅读(82) 评论(0) 推荐(0) 编辑
摘要:Actor模型是一种避免线程共享数据,相同Actor实体串行化的方案,所以不便dapr的其他功能,几乎都是非编程入侵的,相反,Dapr Acror深度定制的,关于Actor,.net中有一些通用框架,比如Akka.net,微软的Orleans,还有最近复活的Proto actor。Dapr下的Act 阅读全文
posted @ 2022-04-21 20:23 桂素伟 阅读(82) 评论(0) 推荐(1) 编辑
摘要:分布式跟踪在dapr里是开箱即用的,不需要对应用作任何一丁点的侵入式编程。之前的开发,如果想实现分式跟踪,就得在应用中埋点,这是一个与业务无关系的动作。dpar通过sidecar可以轻松做到这点,从而让程序员更多精力投入到业务中,又让运维得到可观测性能数据,对服务运维保驾护航。从此以后,开发和运维再 阅读全文
posted @ 2022-04-21 19:55 桂素伟 阅读(50) 评论(0) 推荐(0) 编辑
摘要:绑定有点像订阅发布,但又不一样,绑定更简单,绑定输出(调用方)-绑定输入(被调用方)。 本例是用docker compose编排,并且用rabbitMQ来支持,因为rabbitMQ支持输入和输出绑定。 demo的目录结构: binding.yaml,放在components目录下 apiVersio 阅读全文
posted @ 2022-04-19 21:08 桂素伟 阅读(65) 评论(0) 推荐(0) 编辑
摘要:queue,是很好的削峰填谷工具,在业内也是主流;发布订阅,可以有效的解耦两个应用,所以dapr把他们进行了有效的封装,我们使用起来更简单高效。 本篇的案例是下完订单后,会把消息发布到redis(当然也可以是其他)中,通知系统和支付系统会订单这个消息,同时,通知系统和支付系统的两个实例中,只会有一个 阅读全文
posted @ 2022-04-19 20:58 桂素伟 阅读(64) 评论(0) 推荐(0) 编辑