mcpField
M
moai-lang-csharp

moai-lang-csharp

github.com/modu-ai开发1.2k78 次安装今天更新
代码仓库

关于 moai-lang-csharp

moai-lang-csharp 是面向 C# 项目的开发技能,提供 C# 12、.NET 8 及常见应用架构的实践指导。内容覆盖 ASP.NET Core、Entity Framework Core、Blazor 和测试。

主要功能

  1. 01C# 12 语言特性
  2. 02ASP.NET Core 8 API 模式
  3. 03Entity Framework Core 数据访问
  4. 04Blazor Server 与 WASM 组件
  5. 05CQRS 与验证模式
  6. 06xUnit、NUnit 与 Moq 测试

适用场景

  1. 01构建 .NET 8 Web API
  2. 02创建 Blazor Web 应用
  3. 03配置 EF Core 数据模型与迁移
  4. 04为应用添加 CQRS 和验证

MCP 相关

README 提到可使用 Context7 MCP 工具查询 ASP.NET Core、Entity Framework Core 和 .NET Runtime 文档。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/modu-ai/moai-adk --skill moai-lang-csharp

安装后在 Claude Code 中输入/moai-lang-csharp确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

modules/
aspnet-core.md
blazor-components.md
cqrs-validation.md
csharp12-features.md
efcore-patterns.md
references/
examples.md
reference.md

详细介绍

C# 12 / .NET 8 开发专家

使用 ASP.NET Core、Entity Framework Core、Blazor 和企业级模式进行现代 C# 开发。

快速参考

自动触发条件:.cs、.csproj、.sln 文件、C# 项目、.NET 解决方案、ASP.NET Core 应用程序

核心技术栈:

  • C# 12:主构造函数、集合表达式、任意类型别名、默认 Lambda 参数
  • .NET 8:Minimal API、Native AOT、性能改进、WebSocket
  • ASP.NET Core 8:控制器、终结点、中间件、身份验证
  • Entity Framework Core 8:DbContext、迁移、LINQ、查询优化
  • Blazor:Server/WASM 组件、InteractiveServer、InteractiveWebAssembly
  • 测试:xUnit、NUnit、FluentAssertions、Moq

快速命令:

若要创建新的 .NET 8 Web API 项目,请运行 dotnet new webapi,并使用 -n 标志指定项目名称,使用 --framework net8.0 指定目标框架。

若要创建 Blazor Web App,请运行 dotnet new blazor,并使用 -n 标志指定项目名称,使用 --interactivity Auto 指定交互模式。

若要添加 Entity Framework Core,请运行 dotnet add package Microsoft.EntityFrameworkCore.SqlServer,然后运行 Microsoft.EntityFrameworkCore.Design。

若要添加 FluentValidation 和 MediatR,请运行 dotnet add package FluentValidation.AspNetCore 和 dotnet add package MediatR。


模块索引

本技能采用渐进式披露,并提供专门模块以深入介绍相关内容:

语言特性
  • C# 12 特性 - 主构造函数、集合表达式、类型别名、默认 Lambda
Web 开发
数据访问
架构模式
  • CQRS 和验证 - MediatR CQRS、FluentValidation、处理程序模式
参考资料
  • API 参考 - 完整 API 参考、Context7 库映射
  • 代码示例 - 可用于生产环境的示例、测试模板

实现快速入门

项目结构(整洁架构)

在 src 文件夹中组织项目,包含四个主要项目。MyApp.Api 包含 ASP.NET Core Web API 层,其中 Controllers 文件夹用于存放 API 控制器,Endpoints 文件夹用于存放 Minimal API 终结点,Program.cs 是应用程序入口点。MyApp.Application 包含业务逻辑,其中 Commands 文件夹用于存放 CQRS 命令,Queries 文件夹用于存放 CQRS 查询,Validators 文件夹用于存放 FluentValidation 验证器。MyApp.Domain 包含领域实体,其中 Entities 文件夹用于存放领域模型,Interfaces 文件夹用于存放仓储接口。MyApp.Infrastructure 包含数据访问,其中 Data 文件夹用于存放 DbContext,Repositories 文件夹用于存放仓储实现。

核心模式

通过 DI 使用主构造函数:定义一个 public class UserService,其构造函数参数为 IUserRepository 和 ILogger of UserService。创建 GetByIdAsync 等异步方法,接收 Guid id,使用 logger 进行结构化日志记录并记录 UserId,然后返回 repository.FindByIdAsync 的结果。

Minimal API 终结点:使用 app.MapGet,路由模式类似 "/api/users/{id:guid}",并提供一个接收 Guid id 和 IUserService 的异步 Lambda。调用服务方法,检查结果是否为 null;若找到实体,则返回 Results.Ok,否则返回 Results.NotFound。使用 WithName 链式调用以命名路由,并使用 WithOpenApi 链式调用以生成 OpenAPI 文档。

实体配置:创建一个实现 IEntityTypeConfiguration of your entity type 的类。在接收 EntityTypeBuilder 的 Configure 方法中,调用 HasKey 设置主键,使用 Property 配置字段并设置 HasMaxLength 和 IsRequired,使用 HasIndex 和 IsUnique 设置唯一约束。


Context7 集成

如需获取最新文档,请使用 Context7 MCP 工具。

对于 ASP.NET Core 文档,先使用 mcp__context7__resolve-library-id 并传入 "aspnetcore" 解析库 ID,然后使用解析出的库 ID 和类似 "minimal-apis middleware" 的主题,通过 mcp__context7__get-library-docs 获取文档。

对于 Entity Framework Core 文档,使用 "efcore" 解析,并使用类似 "dbcontext migrations" 的主题获取文档。

对于 .NET Runtime 文档,使用 "dotnet runtime" 解析,并使用类似 "collections threading" 的主题获取文档。


快速故障排除

构建和运行时:运行 dotnet build 并添加 --verbosity detailed,以获取详细输出。运行 dotnet run 并添加 --launch-profile https,以使用 HTTPS 配置文件。运行 dotnet ef database update 以应用 EF 迁移。运行 dotnet ef migrations add 并指定迁移名称,以创建新迁移。

常见模式:

处理空引用时,从上下文中获取变量后,使用 ArgumentNullException.ThrowIfNull,并传入该变量和 nameof 表达式。

对于异步可枚举流式处理,创建返回 IAsyncEnumerable(类型为你的类型)的异步方法。为 CancellationToken 参数添加 EnumeratorCancellation 特性。使用 await foreach 配合 AsAsyncEnumerable 和 WithCancellation 进行迭代,并逐项生成结果。


配合使用效果良好

  • moai-domain-backend - API 设计、数据库集成模式
  • moai-platform-deploy - Azure、Docker、Kubernetes 部署
  • moai-workflow-testing - 测试策略和模式
  • moai-foundation-quality - 代码质量标准
  • moai-essentials-debug - 调试 .NET 应用程序

评论

支持 Markdown