刷新
.NET分布式Orleans - 6 - 事件溯源

博主头像 基本概念 事件溯源(Event Sourcing)是一种设计模式,它记录并存储了应用程序状态变化的所有事件。 其核心思想是将系统中的每次状态变化都视为一个事件,并将这些事件以时间顺序的方式持久化存储。 这样,通过重放这些事件,我们可以重建系统在任何特定时间点的状态。 每个事件通常都包含了描述状态变化 ...

深度探索.NET Feature Management功能开关的魔法

博主头像 前言 .NET Feature Management 是一个用于管理应用程序功能的库,它可以帮助开发人员在应用程序中轻松地添加、移除和管理功能。使用 Feature Management,开发人员可以根据不同用户、环境或其他条件来动态地控制应用程序中的功能。这使得开发人员可以更灵活地管理应用程序的功 ...

.NET分布式Orleans - 5 - 持久化

博主头像 在分布式系统中,数据的持久化是至关重要的一环。 Orleans 7 引入了强大的持久化功能,使得在分布式环境下管理数据变得更加轻松和可靠。 本文将介绍什么是 Orleans 7 的持久化,如何设置它以及相应的代码示例。 什么是 Orleans 7 的持久化? Orleans 7 的持久化是指将 Or ...

.NET Core 简介

微软于2016年推出了新一代的开发平台,并且将其命名为.NET Core。相较于旧的.NET Framework。 .NET Core有如下优点: 1).NET Core采用模块化开发。不再像.NET Framework那样需要安装整个安装包。.NET Core核心只包含很少的文件,所有其他模块都需 ...

.NET分布式Orleans - 4 - 计时器和提醒

博主头像 Timer是什么 Timer 是一种用于创建定期粒度行为的机制。 与标准的 .NET System.Threading.Timer 类相似,Orleans 的 Timer 允许在一段时间后执行特定的操作,或者在特定的时间间隔内重复执行操作。 它在分布式系统中具有重要作用,特别是在处理需要周期性执行的 ...

权限管理系统--系统权限篇(源码)

博主头像 一、前言 随着网络的发展,企业对于信息系统数据的保密工作愈发重视,不同身份、角色对于数据的访问权限都应该大相径庭。 列如 1、不同登录人员对一个数据列表的可见度是不一样的,如数据列、数据行、数据按钮等都可能不太一样。 2、表单的灵活设计及呈现。 3、流程的灵活设计及呈现。 4、接口的调用信息者及性能 ...

.NET Emit 入门教程:第四部分:构建类型(Type)

博主头像 构建类型是动态代码生成过程中的关键一环,通过灵活运用 TypeBuilder 和相关工具,我们可以实现各种复杂类型的动态生成,为程序的灵活性和可扩展性提供有力支持。总的来说,本章节通过演示如何使用 Emit 来动态创建类型,包括定义字段、方法、属性和事件等, 帮助读者理解如何在运行时生成和操作类型信... ...

dotNet符号文件(pdb),符号包(snupkg)和SourceLink

博主头像 前言 本文的主题是 Visual Studio 调试 NuGet 包,以及符号包的概念,如何去发布一个 NuGet 包,让我们的 NuGet 包支持 SouceLink,这些都是我们开发中比较容易忽视的内容,但是熟悉了以后可以让我们在调试中得心应手,也是开源项目开发的基础篇。 demo 源代码在文末 ...

.NET分布式Orleans - 3 - Grain放置

博主头像 在Orleans 7中,Grain放置是指确定将Grain对象放置在Orleans集群中的哪些物理节点上的过程。 Grain是Orleans中的基本单位,代表应用程序中的逻辑单元或实体。Grain放置策略是一种机制,用于根据不同的因素,将Grain对象放置在合适的节点上,以实现负载均衡、最小化网络延 ...

.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 内置的依赖注入 ...