随笔分类 - .net
.net 系列文章
摘要:首先简化了Program文件,引入了全局命名空间,但顶级语句由于Main函数的特性[STAThread]没有引用进来。 namespace WinFormsDemo { internal static class Program { /// <summary> /// The main entry
阅读全文
摘要:在.net6发布时,带来了一个新的模板框架,mini api,那与之前的mvc api性能对比是什么样的呢? 建了基于.net 6的两种模板项目,都实现了一个get /test01的api请求,代码如下: mini api: app.MapGet("/test01", () => { var arr
阅读全文
摘要:在古时候,引用类型是的默认值就是null,值类型是不可以赋值null的,所以那时候,“未将对象引用到实例”这个错误,是引用类型的。后来,值类型也可以赋值null了,只要在值类型变量定义的时候,加个?就可以,比如 int? i=null。到了c#8.0,引用类型又引入了可null引用类型,这里的意思不
阅读全文
摘要:有时,后台处理批量数据,需要一定的时间,如果处理一部分往前台送一部分,用户体验要好一些,这样就用到这个知识点了。 后台代码中下: [HttpGet("/getents")] public async IAsyncEnumerable<Entity> GetEntitys() { for (var i
阅读全文
摘要:string内插是指用$"日期:{DateTime.Now.ToString("yyyy年MM月dd日")}。",这种使用方式,在c#10.0时,引进了这种string内插的处理,可以写自定义的处理程序,来提升使用体验。具体用法见下面的代码: /// <summary> /// string内插处理
阅读全文
摘要:A、namespace是c#用来管理类型隔离的关键字,在不同的namespace下可以相同名称的类型,并且namespace是可以嵌套的。 Demo01.cs namespace NameSpaceDemo { internal class Demo01Class { } namespace NSD
阅读全文
摘要:C#10引入了日期DateOnly,时间TimeOnly: //从DateTime转换 Console.WriteLine(DateOnly.FromDateTime(DateTime.Now)); //从字会串转换 Console.WriteLine(DateOnly.Parse("2021-10
阅读全文
摘要:接上一篇最后的场景,为了解决相同帐户并发引起的数据库行级锁,可以引入Actor的串机制,相同ActorID的实例,串行,这样就能在应用层把读取余额的资源争抢解决掉,剩下的工作就是一定时间间隔,把内存中的数据批量更新到数据库中,大大减少了数据库的资源占用。 不废话了,看实现代码吧。 IAccountA
阅读全文
摘要:分布式跟踪在dapr里是开箱即用的,不需要对应用作任何一丁点的侵入式编程。之前的开发,如果想实现分式跟踪,就得在应用中埋点,这是一个与业务无关系的动作。dpar通过sidecar可以轻松做到这点,从而让程序员更多精力投入到业务中,又让运维得到可观测性能数据,对服务运维保驾护航。从此以后,开发和运维再
阅读全文
摘要:为了防止并发对数据修改造成差异,dapr使用了etag标签来作为版本号,对数据修改进行验证。 下面是对etag的一个demo appsettings.json中的url配置 "StateUrl": "http://localhost:3500/v1.0/state/statestore" 在Paym
阅读全文
摘要:在上一篇文章中说到,dapr默认的状态是不可能跨appid的,也就是只能在相同的应用内访问自己设置的状态数据,dapr支持三种状态的共享配置:appid,nam,none,是通过修改components下的statestore.yaml文件中的keyPrefix配置项来实现的。 说明:本篇所有dem
阅读全文
摘要:说明:为了给出demo的全貌,这篇有点长,如果有上一篇的基础,会更容易阅读一些。 在分布式应用,有状态服务是常态,特别是多副本应用,就需要共用缓存来解决数据统一的状况,所以dapr也把状态管理做成一个标准组件。 下面通过docker-compose来发布OrderSystem项目和PaymentSy
阅读全文
摘要:上一篇聊到用两个物理机(一个win,一个mac)来部署dapr和服务 ,实现order调用pay的负载均衡。本篇说一下在windows上的docker部署这三个服务,达到与上一篇的效果。 三个服务的部署架构是这样的 首先要把OrderSystem(服务端口80)项目docker化,Dockerfil
阅读全文
摘要:dpar在同一台电脑上不能run 相同appid,这个在上篇说过,所以就用外部负载均衡nginx来对应,那在不同的host中跑同一服务,看看dapr内部的负载均衡是怎么实现的。 说说现有的服务,两个服务,订单服务,支付服务;下完订单后同步调支付服务。 一、demo项目的mock代码 OrderSys
阅读全文
摘要:原来一直用SortList,SortedDictionary来作为键值对存储的排序集合来用,心中就默认是以key按ascall排序来存放的,在之前的案例中也没有出现问题,在最近一个demo中,打破了原来的自以为是的认识,因为在key中不但有大写小,还有特列符号。 先看一下代码: Console.Wr
阅读全文
摘要:demo运行环境:Windows10,Docker(dapr_zipkin,dapr_redid,dapr_placement) 安装:dapr init 卸载:dapr uninstall,然后删除 C:\Users\当前用户\.dapr dapr在部署时是通过给服务挂载一个sidecar,来辅助
阅读全文
摘要:dapr,一个为分布式应用程序的运行时,为开发者在对接分布式组件时,提供了便利。使用dapr带来的好处可扩展性,因为它是通过sidecar的理概念来集成其他运行时的。同时dapr还提供了多种语言的SDK。 关于dapr更多介绍,官方文档(https://docs.dapr.io/zh-hans/)是
阅读全文
摘要:最近在做一些开发测试代码的工作,就是为了测试中间业务程序,前头调用程序,后头写挡板程序,说白了就是链路调用,因为复杂度在中间的业务程序,所以前后两端的程序应相对简单。 这里就有一个问题:技术选型,或者说成是语言选择,这就上升成为了一个打嘴仗的话题,“世界上最好的编程语言是什么?”。其实大家都知道,没
阅读全文
摘要:in,out,ref都可能作为方法参数据修饰符,从字面意思可就可以理解这三个关键字的含义,那用法是什么样子的呢,通过demo来看一下。 定义一个引用类型Order public class Order { public string OrderNo { get; set; } public over
阅读全文
摘要:最近做项目,用到goreplay来做流量回放,什么是goreplay? GoReplay is an open-source network monitoring tool which can record your live traffic, and use it for shadowing, l
阅读全文

浙公网安备 33010602011771号