随笔分类 - C#/.net/.netcore
摘要:写在前面 其实很多公司或者资深的开发都有自己快速创建项目的脚手架的,有的是魔改代码生成器实现,有的直接基于T4,RazorEngine等模板引擎打造;但无论如何,其最终目的其实就是搭建一个自定义项目模板(脚手架)。 今天我们聊聊:如何基于官方的cli donet new 命令创建自己的项目模板。 什
阅读全文
摘要:# 背景 我们有很多这样的序列帧:  我这边要把这些序列帧裁切最后合并成gi
阅读全文
摘要:概念解析 啥是熔断 而对于微服务来说,熔断就是我们常说的“保险丝”,意为当服务出现某些状况时,切断服务,从而防止应用程序不断地尝试执行可能会失败的操作造成系统的“雪崩”;或者大量的超时等待导致系统卡死等情况,很多地方也将其成为“过载保护”。 一个典型的应用场景: 这个报错的本质就是服务端流量过大,直
阅读全文
摘要:# 背景 如题,这可能算是.net 做小程序的服务端时,绕不开的一个问题,老生常谈了。同样的问题,我记得我2018/19年的一个项目的解决方案是: **修改官方的SignalR.js的客户端**:把里面用到浏览器的Websocket改成微信小程序的官方api的。目前网上也有不少这样的方案,已经改好开
阅读全文
摘要:写在前面 大部分一定规模的团队都有搭建私有nuget的需求;例如: MyGet BaGet 而我们使用的Azure DevOps 平台本身就提供了Artifacts, Artifacts不单只支持nuget包,还支持Npm、Maven、pip等; 这里简单说说nuget的Azure Devops A
阅读全文
摘要:背景 最近搭建个nacos环境,用的镜像是2.2版本的,yaml如下: nacos-conf apiVersion: v1 kind: ConfigMap metadata: name: nacos-cm namespace: nacos data: mysql.host: "122.122.100
阅读全文
摘要:写在前面 我在前文: 《微软Azure配置中心 App Configuration (一):轻松集成到Asp.Net Core》已经介绍了Asp.net Core怎么轻易的接入azure 配置中心App Configuration(下称azure 配置中心); 《微软Azure配置中心 App Co
阅读全文
摘要:写在前面 Web服务开发过程中我们经常有这样的需求: 某些功能我必须我修改了配置才启用,比如新用户注册送券等; 某个功能需到特定的时间才启用,过后就失效,比如春节活动等; 某些功能,我想先对10%的用户开放,验证没问题后再逐步全量开放等; 这就是功能开关。 日常开发中功能开关我们一般是写到配置文件里
阅读全文
摘要:写在前面 在日常开发中,我这边比较熟悉的配置中心有,携程Apollo,阿里Nacos(配置中心,服务治理一体) 之前文章: Asp.Net Core与携程阿波罗(Apollo)的第一次亲密接触 总体来说,Apollo和Nacos社区都比较活跃,可能是后发优势或者我们技术选型的原因,我们生产选用的是N
阅读全文
摘要:背景 我用了一个叫Unchase.Swashbuckle.AspNetCore.Extensions的库来加强Swagger的文档,我一般写法是这样的: builder.Services.AddSwaggerGen(c => { //文档 c.SwaggerDoc("v1", new OpenApi
阅读全文
摘要:写在前面 昨天五一,广州暴雨一整天; 我本想发一篇之前写好的博客园随笔,用的是晓晨大佬写的dotnet-cnblogs-tool,不过报了个错: 用的是公司的电脑,我自己电脑装旧版本的是没有问题的,本想想拉下源码找找bug,看着看着感觉原来上传博客园图片再去发文的操作方式确实有一点点不便,就萌生自己
阅读全文
摘要:写在前面 前几天看了园友的一篇文章被广泛使用的OAuth2.0的密码模式已经废了,放弃吧 被再次提起: Implicit Flow Password Grant,均已被标记为Legacy,且OAuth2.1里面已经删除了,目前OAuth2.1只剩三种flow: Authorization Code+
阅读全文
摘要: 写在前面 因为最近在忙别的,好久没水文了 今天来水一篇; 在学习或者做权限系统技术选型的过程中,经常有朋友有这样的疑问 : “IdentityServer4的能不能做到与传统基于角色的权限系统集成呢?” “我的公司有几百个接口,IdentityServer4能不能做到关联用户,给这些用户授予不同
阅读全文
摘要:stream1 写在前面 我一直以来使用redis的时候,很多低烈度需求(并发要求不是很高)需要用到消息队列的时候,在项目本身已经使用了Redis的情况下都想直接用Redis来做消息队列,而不想引入新的服务,kafka和RabbitMQ等; 奈何这兄弟一直不给力; 虽然 Redis 的Pub/Sub
阅读全文
摘要: 写在前面 现每个后端的同学的日常都在跟服务(接口)打交道,维护老的比较大单体应用、按业务拆得相对比较细的新服务、无论企业内部用的,面向用户的前端的服务。流量大的有流量小的,有重要的有不那么重要的。 但是,不管怎样的服务,我们总思考过这样的问题:我能不能实时监控/查看服务的运行情况呢,服务一挂掉我
阅读全文
摘要: 写在前面 Api网关我们之前是用 .netcore写的 Ocelot的,使用后并没有完全达到我们的预期,花了些时间了解后觉得kong可能是个更合适的选择。 简单说下kong对比ocelot打动我的: 1、kong可以直接代替Nginx/OpenRestry做前端服务器。 2、kong的功能强大,
阅读全文
摘要: 写在前面 很多neter都有在用Ocelot做Api网关,但是Ocelot又不像kong或者其他网关一样,开箱即用。它需要你单独开一个web项目来部署,这样很多同学都在做重复的事了。 这里[Hei.Ocelot.ApiGateway] 就把这件事给做了,以后有同学要用的话可以单独拉下代码来部署,
阅读全文
摘要: 写在前面 头发掉得多了,总有机会接触/调到各种各样的接口,各种面向Api编程实际上已经嵌入到我们的习惯中,没办法现在服务端通信还得是http(s),其他协议还未能成为通用的。 大厂的开发平台api我先不敢说,各种小公司、或者不少大公司内部之间,各种各样的的接口签名/授权方式可以说是尽显劳动人民智
阅读全文
摘要:写在前面 为了不违反广告法,我竭尽全力,不过“最佳实践”确是标题党无疑,如果硬要说的话 只能是个人最佳实践。 问题引出 可能很多新手都会遇到同样的问题:我要我的Asp.net Core 应用传统方式直接部署(host),docker部署(docker-compose),kubernetes(以下
阅读全文
摘要:写在前面 说起来比较丢脸。我们有个手机的验证码发送逻辑需要使用验证码,这块本来项目里面就有验证码绘制逻辑,.Net Framework的,使用的包是System.Drawing,我把这验证码绘制逻辑复制到.Net Core的新项目引用对比包System.Drawing.Common,windows下
阅读全文
