刷新
.NET分布式Orleans - 2 - Grain的通信原理与定义

博主头像 Grain 是 Orleans 框架中的基本单元,代表了应用程序中的一个实体或者一个计算单元。 每个Silo都是一个独立的进程,Silo负责加载、管理和执行Grain实例,并处理来自客户端的请求以及与其他Silo之间的通信。 通信原理 在相同的Silo中,Grain与Grain之间的通信通过直接的方 ...

Orleans - 1 .NET生态构建分布式系统的利器

博主头像 在当今数字化时代,构建高效、可靠的分布式系统是许多企业和开发团队面临的挑战。微软的 Orleans 框架为解决这些挑战提供了一个强大而简单的解决方案。本文将介绍 Orleans 的核心概念,并通过一个简单的示例代码来演示其用法。 什么是 Orleans? Orleans 是由微软开发的一个开源分布式 ...

.NET Emit 入门教程:第三部分:构建模块(Module)

博主头像 嗯,构建模块,一行代码的事情,愣是让我写成了一篇教程,太难了。在这个入门教程的第三部分中,我们学习了如何使用.NET Emit 构建模块(Module)。通过创建和定义模块,我们可以更好地组织和管理我们的代码。在这个过程中,我们了解了如何使用 AssemblyBuilder 和 ModuleBuil... ...

前端优化 之 preload

博主头像 为了优化我们公司网站的性能,我最近引入了浏览器预加载技术(Preload)。 这项技术可以显著减少级联情况,提高资源加载的并行度,从而加速网站的加载速度。 Preload的原理 Preload的原理是在浏览器解析HTML文档时,提前加载页面所需的关键资源,如样式表、脚本文件和字体等。 通过预加载这些 ...

.Net MinimalApis响应返回值

博主头像 前言 文本主要讲 MinimalApis 中的使用自定义IResultModel和系统自带IResult做响应返回值。 MinimalApis支持以下类型的返回值: string - 这包括 Task<string> 和 ValueTask<string> T(任何其他类型)- 这包括 Task<T ...

Newtonsoft.Json/Json.NET忽略序列化时的意外错误

博主头像 在.NET中Newtonsoft.Json(Json.NET)是我们常用来进行Json序列化与反序列化的库。 而在使用中常会遇到反序列化Json时,遇到不规则的Json数据解构而抛出异常。 Newtonsoft.Json 支持序列化和反序列化过程中的错误处理。 允许您捕获错误并选择是处理它并继续序列 ...

C# 12 拦截器 Interceptors

博主头像 拦截器Interceptors是一种可以在编译时以声明方式替换原有应用的方法。 这种替换是通过让Interceptors声明它拦截的调用的源位置来实现的。 您可以使用拦截器作为源生成器的一部分进行修改,而不是向现有源编译添加代码。 演示 使用 .NET 8 创建一个控制台应用程序。并在Propert ...

.Net依赖注入神器Scrutor(上)

博主头像 前言 从.Net Core 开始,.Net 平台内置了一个轻量,易用的 IOC 的框架,供我们在应用程序中使用,社区内还有很多强大的第三方的依赖注入框架如: Autofac DryIOC Grace LightInject Lamar Stashbox Simple Injector 内置的依赖注入 ...

.Net Core 使用 TagProvider 与 Enricher 丰富日志

博主头像 TagProvider [LogProperties] 与 [LogPropertyIgnore] 如果用在DTO不存在任何问题,如果用在Domain实体上,可能有点混乱。 您可能不希望因日志记录问题而使您的域模型变得混乱。对于这种情况,可以使用[TagProvider]属性来丰富日志。 我们仍然使 ...

借助HttpWebRequest 调用第三方接口,获取Token和数据

博主头像 在一次项目中,在给客户做系统时,需要调用客户的系统获取数据,客户提供了获取Token和获取数据的接口,用户名和密码,认证方式是基于Bearer的,通过学习和找资料,提供一个C#示例 一个C#示例 1、传入语句获取数据 /// <summary> /// 传入语句获取数据 /// </summary> ...

CYQ.Data 操作 Json 性能测试:对比 Newtonsoft.Json

博主头像 在 CYQ.Data 版本更新的这么多年,中间过程的版本都在完善各种功能。基于需要支持或兼容的代码越多,很多时候,常规思维,都把相关功能完成,就结束了。实现过程中,无法避免的会用到大量的反射、锁等对性能有所影响的逻辑代码。CYQ.Data 从V5.9 版本开始,开始大规模的优化调整代码,目前稳定在 ... ...

.NET Core使用 CancellationToken 取消API请求

博主头像 您是否曾经访问过一个网站,它需要很长时间加载,最终你敲击 F5 重新加载页面。 即使用户刷新了浏览器取消了原始请求,而对于服务器来说,API也不会知道它正在计算的值将在结束时被丢弃,刷新五次,服务器将触发 5 个请求。 为了解决这个问题,ASP.NET Core 为 Web 服务器提供了一种机制,就 ...

.Net Core 你必须知道的source-generators

博主头像 源生成器是 C# 9 中引入的一项功能,允许在编译过程中动态生成代码。 它们直接与 C# 编译器集成(Roslyn)并在编译时运行,分析源代码并根据分析结果生成附加代码。 源生成器提供了一种简化的自动化代码生成方法,无需外部工具或单独的预编译步骤。 通过无缝集成到编译过程中,源生成器可以提高生产力、 ...

dotNet8 全局异常处理

博主头像 前言 异常的处理在我们应用程序中是至关重要的,在 dotNet 中有很多异常处理的机制,比如MVC的异常筛选器, 管道中间件定义try catch捕获异常处理亦或者第三方的解决方案Hellang.Middleware.ProblemDetails等。MVC异常筛选器不太灵活,对管道的部分异常捕获不到 ...

轻盈高效:深入了解.NET中的ValueStopwatch计时器

博主头像 概述:ValueStopwatch是.NET中轻量级计时器,用于高性能时间测量。作为值类型,避免了装箱拆箱开销,内存占用小。通过简单的使用方法,轻松实现代码块执行时间测量,且相比Stopwatch更为高效。 在.NET中,ValueStopwatch是一个轻量级的计时器类,用于测量代码块的执行时间。 ...

<1···345···23>