AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Dotnet Backend Patterns

skill-tranhieutt-software-development-department-dotnet-backend-patterns · by tranhieutt

Provides .NET and ASP.NET Core patterns for REST APIs, Entity Framework, dependency injection, and middleware. Use when working with C# files (*.cs, *.csproj) or when the user mentions .NET, ASP.NET Core, C#, or Entity Framework.

No reviews yet
0 installs
38 views
0.0% view→install

Install

$ agentstack add skill-tranhieutt-software-development-department-dotnet-backend-patterns

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-tranhieutt-software-development-department-dotnet-backend-patterns)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Dotnet Backend Patterns? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

.NET Backend Development Patterns

C#/.NET patterns for production-grade APIs, MCP servers, and enterprise backends.

API Structure (Minimal API + Controllers)

\\\`csharp // Program.cs - Minimal API var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext(o => o.UseNpgsql(connStr)); builder.Services.AddScoped();

var app = builder.Build(); app.MapGet("/orders/{id}", async (int id, IOrderService svc) => await svc.GetByIdAsync(id) is { } order ? Results.Ok(order) : Results.NotFound()); \\\`

Dependency Injection Patterns

\\\csharp // Register services builder.Services.AddScoped(); builder.Services.AddSingleton(); builder.Services.AddHttpClient(client => { client.BaseAddress = new Uri("https://api.external.com"); }); \\\

Lifetime guide: Singleton (stateless/cache), Scoped (per-request), Transient (stateless utility).

Entity Framework Core

\\\csharp // DbContext with conventions public class AppDbContext : DbContext { public DbSet Orders => Set(); protected override void OnModelCreating(ModelBuilder builder) { builder.Entity().HasIndex(o => o.UserId); builder.Entity().Property(o => o.Total).HasPrecision(18, 2); } } \\\

Performance tips:

  • Use .AsNoTracking() for read-only queries
  • Avoid N+1 with .Include() or projection
  • Use compiled queries for hot paths

Middleware Pipeline

\\\csharp app.UseMiddleware(); app.UseAuthentication(); app.UseAuthorization(); app.UseRateLimiter(); app.MapControllers(); \\\

Error Handling

\\\csharp // Global exception handler app.UseExceptionHandler(err => err.Run(async context => { var exception = context.Features.Get()?.Error; var (status, message) = exception switch { NotFoundException => (404, exception.Message), UnauthorizedAccessException => (403, "Forbidden"), _ => (500, "Internal server error") }; context.Response.StatusCode = status; await context.Response.WriteAsJsonAsync(new { error = message }); })); \\\

Configuration (IOptions pattern)

\\\`csharp builder.Services.Configure( builder.Configuration.GetSection("Stripe"));

// Usage public class PaymentService(IOptions opts) { private readonly string _key = opts.Value.SecretKey; } \\\`

Testing

\\\csharp // Integration test with WebApplicationFactory public class OrderApiTests : IClassFixture> { private readonly HttpClient _client; [Fact] public async Task GetOrder_ReturnsOk() { var response = await _client.GetAsync("/orders/1"); response.StatusCode.Should().Be(HttpStatusCode.OK); } } \\\

Related Skills

  • backend-architect — architecture decisions
  • database-architect — schema design
  • drizzle-orm-expert — Node.js ORM alternative

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.