MASA Auth - 权限设计
权限术语
Subject:用户,用户组
Action:对Object的操作,如增删改查等
Object:权限作用的对象,也可以理解为资源
Effect:规则的作用,如允许,拒绝
Condition:生效条件
Permission:允许(拒绝)用户(用户组)在条件允许下对对象(资源)的动作
Role:权限集合,权限数量>=1
Subject:用户,用户组
Action:对Object的操作,如增删改查等
Object:权限作用的对象,也可以理解为资源
Effect:规则的作用,如允许,拒绝
Condition:生效条件
Permission:允许(拒绝)用户(用户组)在条件允许下对对象(资源)的动作
Role:权限集合,权限数量>=1
年初我们在找一款框架,希望它有如下几个特点:
学习成本低
只需要学.Net 每年主推的技术栈和业务特性必须支持的中间件,给开发同学减负,只需要专注业务就好
个人见解:一款好用的框架应该是补充,而不是颠覆或过度创新
对扩展开放
可以按照业务需求任意调整依赖实现,而不被捆绑在一个架构思路上
功能强大却不限制架构,从单体到 SOA 再到微服务都可以适应
因为一个系统中总有复杂的也有简单的,最好能全面覆盖我们的业务场景
行业不限
既能支持传统行业的业务特殊性,又可以支持互联网行业的高并发特性
稳定性
有严格的测试标准,用起来更安心
MASA Blazor
是一个Blazor
的 UI 组件库。就像大家写前端熟知的 Bootstrap, Ant Design 一样。
MASA Blazor 官网地址:https://blazor.masastack.com
MASA Blazor Github 地址:https://github.com/BlazorComponent/MASA.Blazor
MASA Blazor Gitee 地址:https://gitee.com/blazorcomponent/MASA.Blazor
MASA Blazor Pro 演示地址:https://blazor-pro.masastack.com/dashboards/ecommerce
MASA Blazor Pro Github 地址:https://github.com/BlazorComponent/MASA.Blazor.Pro
Redis OM 是 Redis 官方推出的对象映射框架,即:Object Mapping。让开发人员更简单、方便的操作 Redis 数据。Redis 存储的数据抽象为对象映射,支持基于对象的 Redis 数据持久化、流式查询操作。
目前只支持 4 种开发语言:
本讲解,如何借助 [.NET Core Template Engine](dotnet templating 定制自己的项目模板) 创建一个简单的项目模板。
我们的项目代码运行时最频繁的错误之一就是 System.NullReferenceException 异常,c#8.0 增加的可为空引用类型就是用来帮助开发者降低甚至消除NULL异常。我们需要注意的是可空引用类型是语法级别的功能,也就是代码编写的时候就会受到编程约束,这个与可为空值类型是不一样的。项目支持 c#8.0 请参见C# 语言版本控制。
手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序
通过Tracing(跟踪)、Metrics(指标)、Logs(日志)和Health(运行状况)监控应用程序。
Dapr 使用 Zipkin
协议进行分布式跟踪 和 Metrics 收集。由于 Zipkin 协议的普遍性,许多后端都是开箱即用的,例如 Stackdriver、Zipkin、New Relic 等。结合 OpenTelemetry Collector
,Dapr 可以将跟踪导出到许多其他后端,包括但不限于 Azure Monitor、Datadog、Instana、Jaeger 和 SignalFX。
Dapr 在 Dapr Sidecar 中添加了一个 HTTP/gRPC 中间件。中间件拦截所有 Dapr 和应用程序流量,并自动注入关联 ID 以跟踪分布式事务。这种设计有几个好处:
使用绑定,您可以使用来自外部系统的事件触发您的应用程序,或与外部系统交互。这个构建块为您和您的代码提供了几个好处:
Actor模式将Actor描述为最低级别的“计算单元
”。换句话说,您在一个独立的单元(称为actor)中编写代码,该单元接收消息并一次处理一个消息,没有任何并发或线程。
再换句话说,根据
ActorId
划分独立计算单元后,相同的ActorId
重入要排队,可以理解为lock(ActorId)
注
:这里有个反例,就是重入性
的引入,这个概念目前还是Preview,它允许同一个链内可以重复进入,判断的标准不止是ActorId
这么简单,即自己调自己是被允许的。这个默认是关闭的
,需要手动开启,即默认不允许自己调自己
。
当您的代码处理一条消息时,它可以向其他参与者发送一条或多条消息,或者创建新的参与者。底层运行时管理每个参与者运行的方式、时间和地点,并在参与者之间路由消息。
大量的Actor可以同时执行,Actor彼此独立执行。
Dapr 包含一个运行时,它专门实现了 Virtual Actor 模式。 通过 Dapr 的实现,您可以根据 Actor 模型编写 Dapr Actor,而 Dapr 利用底层平台提供的可扩展性和可靠性保证。
Actor 设计模式非常适合许多分布式系统问题和场景,但您首先应该考虑的是该模式的约束。一般来说,如果出现以下情况,请考虑使用Actors模式来为您的问题或场景建模:
小的、独立且孤立的状态和逻辑单元
。不
需要与外部组件
进行大量交互
的单线程对象,包括跨一组Actors查询状态。不
会通过发出 I/O 操作来阻塞
具有不可预测延迟的调用者。