moai-adk-main/.claude/skills/moai-lang-csharp/SKILL.md
Enterprise C# 13 development with .NET 9, async/await, LINQ, Entity Framework Core, ASP.NET Core, and Context7 MCP integration for modern backend and enterprise applications.
npx skillsauth add ajbcoding/claude-skill-eval moai-lang-csharpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Field | Value | | ----- | ----- | | Skill Name | moai-lang-csharp | | Version | 4.0.0 (2025-11-12) | | Allowed tools | Read, Bash, Context7 MCP | | Auto-load | On demand when keywords detected | | Tier | Language Enterprise | | Context7 Integration | ✅ C#/.NET/ASP.NET Core/EF Core |
Enterprise C# 13 development featuring async/await for modern concurrency, LINQ for powerful data queries, Entity Framework Core for ORM, ASP.NET Core for web applications, and production-ready patterns for scalable backend services. Context7 MCP integration provides real-time access to official C#/.NET documentation.
Key capabilities:
Automatic triggers:
Manual invocation:
| Component | Version | Purpose | Status | |-----------|---------|---------|--------| | C# | 13.0.0 | Core language | ✅ Current | | .NET | 9.0.0 | Runtime & SDK | ✅ Current | | ASP.NET Core | 9.0.0 | Web framework | ✅ Current | | Entity Framework Core | 9.0.0 | ORM | ✅ Current | | xUnit | 2.9.0 | Testing framework | ✅ Current | | LINQ | Built-in | Data queries | ✅ Current |
using System;
using System.Threading.Tasks;
public class HelloWorld
{
public async Task<string> GreetAsync(string name)
{
await Task.Delay(100);
return $"Hello, {name}!";
}
}
// Usage
var greeter = new HelloWorld();
var greeting = await greeter.GreetAsync("C#");
Console.WriteLine(greeting);
Async/Await - Modern asynchronous programming
async - Returns Taskawait - Waits for resultthrowsLINQ - Language-Integrated Query
Entity Framework Core - ORM framework
ASP.NET Core - Web application framework
Dependency Injection - Inversion of control
MyApp/
├── Program.cs # Application entry
├── Models/ # Data models
├── Services/ # Business logic
├── Controllers/ # API endpoints
├── DbContext/ # Database context
├── Migrations/ # Database migrations
├── Tests/ # Unit tests
└── appsettings.json # Configuration
public async Task<User> GetUserAsync(int id)
{
using var client = new HttpClient();
var response = await client.GetAsync($"https://api.example.com/users/{id}");
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsAsync<User>();
}
// Concurrent operations
public async Task<(Users, Posts)> GetUserDataAsync(int id)
{
var users = GetUsersAsync(id);
var posts = GetPostsAsync(id);
await Task.WhenAll(users, posts);
return (await users, await posts);
}
// Fluent syntax
var results = _users
.Where(u => u.Age > 18)
.OrderBy(u => u.Name)
.Select(u => new { u.Name, u.Email })
.ToList();
// Lazy evaluation - query not executed until ToList()
var query = _users.Where(u => u.IsActive);
var count = query.Count(); // Executes here
public class ApplicationDbContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Post> Posts { get; set; }
}
// CRUD operations
var user = await context.Users.FirstOrDefaultAsync(u => u.Id == id);
context.Users.Add(newUser);
await context.SaveChangesAsync();
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/users/{id}", async (int id, ApplicationDbContext db) =>
await db.Users.FindAsync(id) is User user
? Results.Ok(user)
: Results.NotFound());
app.Run();
Get latest C#/.NET documentation on-demand:
# Access C# documentation via Context7
from context7 import resolve_library_id, get_library_docs
# C# Language Documentation
csharp_id = resolve_library_id("csharp")
docs = get_library_docs(
context7_compatible_library_id=csharp_id,
topic="async-await-patterns",
tokens=5000
)
# Entity Framework Core Documentation
ef_id = resolve_library_id("entity-framework-core")
ef_docs = get_library_docs(
context7_compatible_library_id=ef_id,
topic="querying-data",
tokens=4000
)
# ASP.NET Core Documentation
aspnetcore_id = resolve_library_id("aspnetcore")
aspnetcore_docs = get_library_docs(
context7_compatible_library_id=aspnetcore_id,
topic="dependency-injection",
tokens=3000
)
Language Integration:
Quality & Testing:
Security & Performance:
Official Resources:
Problem: NullReferenceException
Solution: Use null-coalescing operator ?? and null-conditional ?.
Problem: Async deadlock
Solution: Use .ConfigureAwait(false) in library code or ensure all calls are awaited
Problem: N+1 query problem
Solution: Use .Include() for eager loading or projection with Select
Problem: Configuration not loading Solution: Ensure appsettings.json is in correct location and properly configured
For working examples: See examples.md
For API reference: See reference.md
For advanced patterns: See full SKILL.md in documentation archive
Last updated: 2025-11-12 | Maintained by moai-adk team
content-media
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube. Also use when user wants to transcribe or get captions/subtitles from a YouTube video.
development
Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework. Use when user wants to turn advice, lessons, or educational content into concrete action steps, reps, or a learning quest.
tools
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
tools
Replace with description of the skill and when Claude should use it.