csharp-dotnet

star 1

Bootstrap C# .NET projects with modern tooling. Use when creating .NET applications, Web APIs, console apps, Blazor apps, or when the user wants to set up a C# development environment.

Kadajett By Kadajett schedule Updated 1/13/2026

name: csharp-dotnet description: Bootstrap C# .NET projects with modern tooling. Use when creating .NET applications, Web APIs, console apps, Blazor apps, or when the user wants to set up a C# development environment.

C# .NET Project Bootstrapper

Creates production-ready .NET 8+ projects with modern C# features and best practices.

Prerequisites

# Check .NET SDK (8.0+ recommended)
dotnet --version
dotnet --list-sdks

Install .NET SDK

Linux (Ubuntu/Debian):

wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0

macOS:

brew install --cask dotnet-sdk

Project Templates

Template Command Description
Console App dotnet new console Command-line application
Web API dotnet new webapi REST API with controllers
Minimal API dotnet new web Lightweight HTTP API
Blazor Server dotnet new blazorserver Server-side Blazor app
Blazor WebAssembly dotnet new blazorwasm Client-side Blazor app
Class Library dotnet new classlib Reusable library
xUnit Tests dotnet new xunit Unit test project
Worker Service dotnet new worker Background service

Create Projects

Console Application

dotnet new console -n MyApp -o MyApp
cd MyApp

Web API (Minimal API - Recommended)

dotnet new web -n MyApi -o MyApi
cd MyApi

Solution with Multiple Projects

dotnet new sln -n MySolution
dotnet new web -n MyApi -o src/MyApi
dotnet new classlib -n MyCore -o src/MyCore
dotnet new xunit -n MyTests -o tests/MyTests
dotnet sln add src/MyApi src/MyCore tests/MyTests
dotnet add src/MyApi reference src/MyCore
dotnet add tests/MyTests reference src/MyCore

Project Structure

MySolution/
├── MySolution.sln
├── src/
│   ├── MyApi/
│   │   ├── MyApi.csproj
│   │   └── Program.cs
│   └── MyCore/
│       └── MyCore.csproj
├── tests/
│   └── MyTests/
│       └── MyTests.csproj
├── .editorconfig
├── Directory.Build.props
└── Directory.Packages.props

Modern .csproj Configuration

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <AnalysisLevel>latest-recommended</AnalysisLevel>
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
  </PropertyGroup>
</Project>

Directory.Build.props

Create at solution root:

<Project>
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <AnalysisLevel>latest-recommended</AnalysisLevel>
  </PropertyGroup>
</Project>

Minimal API Example

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.MapGet("/", () => "Hello World!");
app.MapGet("/items/{id}", (int id) => new Item(id, $"Item {id}"));
app.MapPost("/items", (Item item) => Results.Created($"/items/{item.Id}", item));

app.Run();

record Item(int Id, string Name);

Common NuGet Packages

dotnet add package Serilog.AspNetCore
dotnet add package FluentValidation.AspNetCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package xunit
dotnet add package Moq
dotnet add package FluentAssertions

Development Commands

dotnet restore
dotnet build
dotnet run
dotnet watch run          # Hot reload
dotnet test
dotnet format
dotnet publish -c Release -o ./publish

GitHub Actions CI

name: CI
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: 8.0.x
      - run: dotnet restore
      - run: dotnet build --no-restore -c Release
      - run: dotnet test --no-build -c Release

Post-Setup Checklist

  1. Create solution and project structure
  2. Configure Directory.Build.props
  3. Add .editorconfig for code style
  4. Configure logging (Serilog)
  5. Set up dependency injection
  6. Add unit test project
  7. Configure CI/CD pipeline
Install via CLI
npx skills add https://github.com/Kadajett/pl4te.dev --skill csharp-dotnet
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator