编程之家(jb51.cc)编程语言栏目主要收集最新编程资料,例如:php教程、asp教程、.net教程、Java教程等。
应用程序在某些时刻总是需要一些外挂配置,云原生应用的实践是在容器化之前就将应用程序配置保留在代码之外。 12-Factors App:Store config in the environment ① 外挂配置文件:业务配置 appsettings.json 可以在代码中要求加载appsetting
引言 长话短说,今天聊一聊分布式定时任务,我的流水账笔记: ASP.NET Core+Quartz.Net实现web定时任务 AspNetCore结合Redis实践消息队列 细心朋友稍一分析,就知道还有问题: 水平扩展后的WebApp的Quartz.net定时任务会多次触发, 因为webapp实例使
hello,最近在对一个使用.NET5项目的认证授权系统进行重构,对.NET 5的授权中间件的源码有些看法。 也希望同学们能帮我理解。 一个朴素的需求 这是一个api项目,默认所有的api都需要授权, 少数散落在Controller各处的api不需要授权访问,故这里有个全局授权访问+特例匿名访问的矛
这篇文章行文结构对照微软博客, 结合本人意译和多年实践的回顾思考形成此次读书笔记。 Domian-driven Design 领域-驱动-设计(DDD)提倡基于(用例相关的现实业务)进行建模。 1. DDD的视角 DDD将现实问题视为领域; DDD将独立的问题描述为有界限的上下文(一个有界上下文对应
背景 ASP.NET Core 在 2.1 之后推出了具有弹性 HTTP 请求能力的 HttpClient 工厂类 HttpClientFactory。 替换的初衷还是简单摆一下:① using(var client = new HttpClient()) 调用的 Dispose() 方法并不会立即
在早期的.NET Framework程序员心里,重定向Redirect其实分为两种: Response.Redirect: Response对象的Redirect方法提供了一种实现客户端重定向的方法 Server.Transfer: Server对象的Transfer方法使用服务
图片上传是很常见的功能,里面有些固定的操作也可以沉淀下来。
本文记录使用Abp vNext做图片上传的姿势。
好久不见,前两周经历了人生第一次"伪牛市",基金和股市大起大落,更加坚信“你永远赚不到超出你认知范围之外的钱,除非靠着运气”,老韭菜诚不欺我也。 当能力与野心不匹配,只能多看书,收割那些不求甚解的韭菜。 言归正传,本文聊一聊在ASP.NET Core3.1中集成ElasticSe
上文我们演示了使用NLog向ElasticSearch写日志的基本过程(输出的是普通文本日志),今天我们来看下如何向ES输出结构化日志、并利用Kibana中分析日志。 什么是结构化日志? 当前互联网、物联网、大数据突飞猛进,软件越复杂,查找任何给定问题的起因就越困难(且成本更高)。 在实践中我们开发
最好的总会在不经意间出现。 作为后端程序员,免不了与前端同事对接API, 一个书写良好的API设计文档可有效提高与前端对接的效率。 为避免联调时来回撕逼,今天我们聊一聊正确使用Swaager的姿势。 swagger 项目在2015年捐献给OpenAPI倡议,swagger 和openapi的叫法通常
什么叫路由? routing vs proxy? proxy: 强调的是流量将被接收并被透明转发给upstream 应用处理,强调的是流量被转发的行为, 是处理链路上处于应用层的行为。 路由:用于在网络内或者跨网络为流量选择一个处理路径, 强调的是流量在进程内是以怎样的策略来为流量选择处理对象。 路
长话短说, 今天分享如何在nuget.org创建并发布.NET Standard package。 前置 安装勾选.NET Core开发套件的Visual Studio; 安装dotnet Cli 从VS2017开始,dotnet Cli已经自动在.NET开发套件中被安装; 使用SDK-style
宝物简介 grpcur是一个与grpc服务器交互的命令行工具,可认为是gRPC的curl工具。 grpcurl用于从命令行调用gRPC服务器支持的RPC方法,gRPC使用二进制编码(protobuf), 不能利用常规的curl工具(早期的curl版本还不支持HTTP/2)。 grpcurl工具接受j
马甲哥继续写一点大前端,阅读耗时5 minute,行文耗时5 Days 今天我们来了解一下如何拦截axios请求/响应? 这次我们举一反三,用一个最舒适的姿势插入这个技能点。 axios是一个基于 promise 的网络请求库,可以用于浏览器和 node.js; promise 类似于C#的Task
最近入职了新公司,尝试阅读祖传代码,记录并更新最近的编程认知。 思绪由Q1引发,后续Q2、Q3基于Q1的发散探究。 Q1. Task.Run、Task.Factory.StartNew 的区别? 我们常使用`Task.Run`和`Task.Factory.StartNew`创建并启动任务,但是他们的
之前码甲哥写了两篇有关线程安全的文章: - [你管这叫线程安全?](https://www.cnblogs.com/JulianHuang/p/14720042.html) - [.NET八股文:线程同步技术解读](https://www.cnblogs.com/JulianHuang/p/1176
.NET运行时内置了常用的缓存模块: MemoryCache 标准的MemoryCache暴露了如下几个属性和方法: public int Count { get; } public void Compact(double percentage); public ICacheEntry Create
早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和 路由,其核心目的是将 请求落地点与路由寻址方式解耦。 这里面有几个容易混淆的函数 MapControllerRoute MapDefaultControllerRoute MapControllers 有什么不同?什么时候
> 本文的知识点其实由golang知名的for循环陷阱发散而来, 对应到我的主力语言C#, 其实牵涉到闭包、foreach。为了便于理解,我重新组织了语言,以倒叙结构行文。 先给大家提炼出一个C#题:观察for、foreach闭包的差异 ![](https://files.mdnice.com
有小伙伴问我每天忽悠的TPL是什么?☹️ 这次站位高一点,严肃讲一讲。 引言 俗话说,不想开飞机的程序员不是一名好爸爸;作为微软技术栈的老鸟,一直将代码整洁之道奉为经典, 优秀的程序员将优雅、高性能的代码看成自己的脸面。 今天探讨下我对.NET并行编程库Task Parallel Library的理
之前两次signalr、 websocket实时推送相关: .NET WebSockets 核心原理初体验 SignalR 从开发到生产部署避坑指南 tag: 浏览器 >nginx--> server 其中提到nginx默认不会为客户端转发Upgrade、Connection标头, 因为
今天来聊一聊面试八股文:布隆过滤器。 说道布隆过滤器,就免不了说到缓存穿透。 缓存穿透 在高并发下,查询一个并不存在的值时,缓存不会被命中,导致大量请求直接落到数据库。 数据库的响应能力肯定没有缓存大,出线这样的情况,一般是黑客攻击,拖慢了系统的响应速度。 头脑风暴 朴素的分析思路: 在缓存前加一道
> Thread-safe code only manipulates shared data structures in a manner that ensures that all threads behave properly and fulfill their design speci
好久不见,马甲哥封闭居家半个月,记录之前遇到的一件小事。 ConcurrentDictionary<TKey,TValue>绝大部分api都是线程安全且原子性的, 唯二的例外是接收工厂委托的api:AddOrUpdate、GetOrAdd,这两个api不是原子性的,需要引起重视。 All
1.荒腔走板 前几天有个童鞋在群里面问:怎么使用HttpClient发送文件? 之前我写了一个ABP上传文件,主要体现的是服务端,上传文件的动作是由前端小姐姐完成的, 我还真没有用HttpClient编程方式发送过文件。 不过想来,Web协议都是一样的,类比前端发送文件,httpclient按照mu
- 共享内存 - Actor并发编程模型 - 202309反省: 求素数和不适合体现Actor模型 吃点好的,很有必要。今天介绍常见的两种并发模型: 共享内存&Actor ## 共享内存编程模型 面向对象编程中,万物都是对象,数据+行为=对象; 多核时代,可并行多个线程,但是受限于资源对象,
开局两张图,内容全靠刷! 马甲哥看到这样的现象,一开始还是有点懵逼。 这个例子,string是纯粹的引用类型,但是在函数传值时类似于值传递; 我之前给前后示例的内存变化图吧: 根因就是大多数高级语言都把String对象设计成不可变的:由一个字符串拘留池管理字符串面值。 对字符串的修改,会导致产生新的
长话短说,本文带大家抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext 引言 C#异步编程语法糖async/await,使开发者很容易就能编写异步代码。 零散看过很多文章,很多是填鸭式灌输 (有的翻译文还有偏差)。 遵守以上冷冰冰的②③条的原则,可以确保
最近在看许世伟的架构课, 面向对象五大设计原则(SOLID),扣理论找出处。 早期我跟着大家人云亦云, 回过头来,抠字眼找出处, 五大设计原则真的很有功力。 注意区分设计原则和设计模式。 设计原则更为抽象和泛化; 设计模式也是抽象或泛化的良好实践,但是它们提供了更具体和实用的底层建议。 | 面向对象
大家常听到“MD5加密”、“对称加密”、“非对称加密”,那么MD5属于哪种加密算法? 面试问这样的问题,准是在给你挖坑。 "MD5加密"纯属口嗨,MD5不是加密算法,是摘要算法。 今天小码甲带大家梳理加密算法、摘要算法的定义和场景: 伸手党先看答案: 加密算法的目的,在于使别人无