标题:" Cratis Arc: ASP.NET 的 CQRS 框架 心脏 说明: Cratis Arc是ASP.NET的CQRS框架. 核心在HTTP上暴露命令和查询,生成TypeScript客户端,而不需要事件源代码.
Cratis Arc: ASP.NET 的 CQRS 框架 核心
Cratis Arc是ASP.NET Core的开源(MIT)CQRS应用框架. CQRS将更改某事(命令)的请求与读取(queries)的请求分开. Arc通过HTTP曝光这些合同,处理验证和授权,并生成前端的TypeScript客户端. 它与当前状态存储或可选的 Cratis Chronicle 事件源代码合作.
构建一个特征作为垂直切片:保持其命令,读取模型,查询,前端,并相接相接. 后端定义了合同;生成的TypeScript代理将合同带入前端,而没有为这些合同提供手写API客户端. 可观察的查询让屏幕在结果变化时订阅,并配置了观测源.
选择您的特性需要的软件包 。 Arc包括身份和租赁,React集成,MongoDB和实体框架核心适配器,OpenAPI,分析器,以及测试帮助器. 纪事事件源代码和 Cratis 组件是可选集成. 免费 人工智能技能 为与堆栈一起建造提供指导.
从这里开始
- 浏览Arc文档
- 读取Arc存在的原因
- 绘制 MedietR 和 MVC 的熟悉概念
- 尝试可运行的样本 - 包括Idea Loom和图书馆
- 选择有文档的应用程序路径
- 理解Arc的独立边界
- 启动 Arc 主机
- 检查软件包和仓库布局
亚克拥有的
| 边界 | 弧提供 |
|---|---|
| 托管 | ASP.NET (英语). 核心托管加一Arc. 为工人、控制台和定制服务提供的核心HTTP主机 |
| 图标 | 基于模式的和基于控制器的执行,验证,授权,过滤,范围,打出的结果,并生成了端点 |
| 查询 | 基于模型的、基于控制器的读取、呼呼和排序、可观察的更新、WebSocket或Server-Sent Events传输以及查询诊断 |
| 验证 | 数据说明、流利Validation、概念/命令/命令校验器、生成客户端规则以及从React表格中选择服务器预飞 |
| 身份和租赁 | 可累积认证、身份细节、基于角色的授权以及标题、查询、索偿、子域、固定或开发租户解析 |
| 生成的合同 | TypeScript 代理,参考类型,验证元数据,身份细节,增量输出清理,以及包/类型映射 |
| 前端软件包 | TypeScript 命令/静态运行时间,反应钩和形式,对话框,可观察-静态组成,以及可选反应/MVVM集成 |
| 持久性一体化 | MongoDB 和实体框架 核心当前状态适配器加可选纪事支持的事件源行为 |
| 评价和工具制定 | OpenAPI, 运行时间回顾, 分析器, 源生成器, 命令方案, 代理生成检查, Vite 帮助器, 以及 ESLint 规则 |
使用此表查找您需要的能力, 然后检查您的主机、 提供者、 浏览器和版本的软件包和文档 。 各行不为每个组合建立相容性.
选择路径
弧形文档围绕您需要完成的工作排列 :
- 执行命令 ——以模型为主或以控制器为主的改变,管线,验证,授权,过滤,以及反应处理.
- 从内置副作用中分离命令决定 ——更喜欢在模式约束命令中已经决定的工作,可选的最佳补偿. 直接服务呼叫仍然支持;操作不需要"纪事"或前端恢复代码.
- 公开查询和可观测结果 请求/答复读取、呼呼、排序、流出更新、诊断和生成客户端.
- 构建前端 ——TypeScript运行时间,反应钩和形式,对话框,身份,消息,以及可选的MVVM包.
- 配置身份和访问 ——认证,身份细节,授权,角色,以及前端能见度边界.
- 解决租户问题 ——请求解析者,范围化租户上下文,以及提供商特有的数据库或命名空间映射.
- 使用当前状态持久性 - 应用程序服务、MongoDB或实体框架 核心不需要事件日志.
- 添加纪事事件来源 ——事件,预测,还原器,总量,反应堆,货币,以及"纪事"特有测试.
- 检查并验证应用程序边界 ——内向,OpenAPI,分析器,生成元数据,以及命令情景.
首先,在下面启动主机,然后遵循命令和查询指南。 如果您已有应用程序,请选择您想要Arc处理的部分的路径 .
Arc 不需要事件源代码
弧. 核心不依赖于"纪事". 一个命令可以调用一个应用程序服务或将当前状态写入一个数据库;一个查询可以在没有事件日志的情况下读取该状态.
在要记录事件并从中获取状态时选择可选的"纪事"集成. Arc仍然处理命令,查询,验证,授权,并生成前端合同.
纪事 是克拉蒂斯的存储-不可知事件包数据库和运行时间——麻省理工学院获得许可并可自由使用;见 纪事文档 为它自己的范围和设置.
与组件的关系
组件是一个与Arc应用模式一致的React组件库. 见 组成部分文件 它的包和设置.
应用程序可能使用无组件Arc,并继续负责自己的前端,可访问性,浏览器和设计系统验证.
启动 Arc 主机
Arc的.NET包嵌入了这个产品-家族的README. 下面的例子使用 Cratis.Arc 软件包,Arc的 ASP.NET 核心集成;在从一个专门的软件包页面查看这个README时,使用该软件包的表单和参考文档进行自己的安装范围.
使用由Arc当前声明的.NET SDK global.json创建 ASP.NET 核心项目和安装软件包:
dotnet new web -n MyApp
cd MyApp
dotnet add package Cratis.Arc
替换 Program.cs 运行主机 :
var builder = WebApplication.CreateBuilder(args);
builder.AddCratisArc();
var app = builder.Build();
app.UseCratisArc();
await app.RunAsync();
启动主机确认基本的Arc设置. 适用于没有ASP.NET的工人、控制台或服务 核心,轻量级主机是 ArcApplication.CreateBuilder(args) 从单独的 Cratis.Arc.Core 软件包; 不将其与 Cratis.Arc,其ASP.NET 它没有注册核心服务。 见 以轻量级主机开始继续 弧文档,并使用 GitHub 问题 当观察到的行为与文档不符时.
软件包和仓库布局
| 表面 | 作用 |
|---|---|
Cratis.Arc 编号 : Cratis.Arc.Core | .NET托管、指挥/管道、验证、身份、租赁、HTTP、内测和应用惯例 |
Cratis.Arc.ProxyGenerator.Build | 用于公认应用文物的构建时 TypeScript 代理生成 |
Cratis.Arc.MongoDB 编号 : Cratis.Arc.EntityFrameworkCore* | 可选的电流状态持久性和观测适配器 |
Cratis.Arc.Chronicle | 可选事件源指令、预测、减少、聚合、反应堆、租赁和合规一体化 |
Cratis.Arc.OpenApi 编号 : Cratis.Arc.Swagger | 用于Arc概念和终点的可选 OpenAPI 文档转换 |
Cratis.Arc.Testing 编号 : Cratis.Arc.Chronicle.Testing | 命令事件和可选的纪事事件/读取-模型测试助手 |
@cratis/arc | TypeScript 命令, 查询, 验证, 身份, 以及生成代理所用的消息运行时间 |
@cratis/arc.react | Arc 合同的反钩、表单、对话框、身份、信件和查询组成 |
@cratis/arc.react.mvvm | 可选反应/MVVM和依赖性注射融合 |
@cratis/arc.vite 编号 : @cratis/eslint-plugin-arc | Vite 元数据/ query 助手和 Arc 专用前端林特规则 |
Source/DotNET | .NET 框架来源 |
Source/JavaScript | 类型脚本和反应包源 |
Documentation | 在cratis.io上提供产品自有文件 |
Samples | 仓库检查使用的样本和整合应用程序 |
软件包的存在并不意味着与每个前端,运行时间,持久性提供者,或产品版本相兼容. 检查您使用的版本的软件包清单和文件.
文件地图
捐款
Arc是一个框架-图书馆寄存器. 对公共API的修改,分析器,生成出输出,以及包形可以影响消费者,需要自有寄存器的相容性和放出审查.
仓库开发目前需要 SDK 和工具链版本,由 global.json 财务报告和审定财务报表 package.json。跟踪 克拉蒂斯捐款指南 和本存储库的项目背景AGENTS.md 在改变公共表面之前.
在提交仅限文件的工作之前,明确核查其链接、锚地和实例;当前自动文件检查是路径扫描。 源更改必须经过自有寄存器的可应用构建,规格,TypeScript,以及文档门.
- .NET SDK 10.0.400+ (韩语). Arc 分析器和源生成器已经建成
对罗斯林5.9.0, 船与.NET SDK 10.0.400 和更新的。 在更古老的SDK频段上,编译器
拒绝加载(CS9057),沉默地使代理生成和ARC*/ARCCHR*分析器失效.
拥有
Cratis.Arc软件包带同一层。 升起这层楼是一个小的版本起伏. - 节点 23+
- 雅伦
Trim 和 原生AOT 诊断
Arc尚不相容(#2204号) (中文(简体) ). 调取更改请求 Source/DotNET 运行一个建立 Cratis.Arc.Core, (中文(简体) ), Cratis.Arc, (中文(简体) ), Cratis.Arc.MongoDB, (中文(简体) ), Cratis.Arc.EntityFrameworkCore 财务报告和审定财务报表 Cratis.Arc.Chronicle 将每个代码、文件和目标框架的诊断与 Source/DotNET/aot-baseline.json在添加诊断或修剪/AOT抑制时,以及在不缩小基线的情况下去除时,则失效。 用 Python 3 和 .NET SDKs 本地运行 :
python3 scripts/aot-ratchet.py # compare with the baseline
python3 scripts/aot-ratchet.py --update # rewrite the baseline after fixing diagnostics, then commit it
通过取代不安全的道路而不是压制它来修复新的诊断. 分析船与. NET SDK,所以运行 --update 与SDK global.json 选择,像 CI 那样;基准记录它制作的 SDK 版本。 当一个新的 SDK 改变分析器报告的内容时, 以 --update 在自己的拉力请求。 正常构造不受影响; 分析器只在脚本通过时运行 CratisAotAnalysis=true项目由进口涵盖 Source/DotNET/AotAnalysis.props,则脚本发现,运行失败,除非每个覆盖的项目报告每个目标框架。 MongoDB、EF核心和纪事集成按当前计数进行,直至附加注释 [RequiresUnreferencedCode] 财务报告和审定财务报表 [RequiresDynamicCode]。 。 。 .
社区和储存处
| 路径 | 目标 |
|---|---|
| 问题和讨论 | 克拉蒂斯迪斯科尔 |
| 错误和特性请求 | GitHub 问题 |
| 释放 | GitHub 发布 |
| 文档 | www.cratis.io/arc (中文(简体) ) |
| 博客 | 校对:soup |
| 安保报告 | 私营安保报告 |
| 许可证 | LICENSE |
克拉蒂斯生态系统
弧为 克拉蒂斯语Name ——构建事件源代码和CQRS应用程序的平台.
- 纪事 ——事件外包数据库和运行时间. 基于奥尔良的内核,可插件存储(MongoDB默认;PostgreSQL,SQL服务器,SQLite, in-memory),语言-不可知GRPC合同. 文档
- 纪事客户端 一等舱 .NET SDK 软件附加时 类型脚本, (中文(简体) ), 科特林/贾瓦,以及 埃利克斯尔· ; 蟒 马上就来 人工智能代理通过 纪事 MCP 服务器。 。 。 .
- 弧形 (这个储存库)——对ASP.NET的CQRS框架有意见 核心包含命令,查询,验证,授权,以及TypeScript代理生成. 工作没有活动来源. 文档
- 构成部分 ——反应组件与Arc图案一致. 文档
- 国 际 + 工作台 ——从终端或浏览器检查和诊断"纪事". 文档
- 第一层模型 - 工作室, - 工作室, 剧本, (中文(简体) ), 阶段, (中文(简体) ), 场景, (中文(简体) ), 方案
- 支助 —— 说 基本要素, (中文(简体) ), 规格, (中文(简体) ), 概要, (中文(简体) ), 镜头, (中文(简体) ), 叙述者免费 AI 工具; 即将到来
- 样本 整个堆栈的可运行事件来源和CQRS样本
Arc是麻省理工学院的许可,可以自由使用. 其他Cratis产品有自己的许可证和准入条件.
发布说明和通知: 克拉提斯博客。 。 。 .