DotNetCleanTemplate 0.0.2

dotnet new install DotNetCleanTemplate::0.0.2
                    
This package contains a .NET Template Package you can call from the shell/command line.

Clean Architecture API Template

Современный шаблон для создания .NET API с использованием Clean Architecture, CQRS, DDD, FastEndpoints и MediatR.

📊 Статус проекта

.NET License Last Commit NuGet Build Tests SonarCloud NuGet Publish Code Coverage

Quality Gate

📦 NuGet Template Package

Шаблон также доступен как NuGet пакет для быстрой установки:

dotnet new install DotNetCleanTemplate

После установки можно создавать новые проекты:

dotnet new cleanapi -n MyProject

🚀 Быстрый старт

Установка шаблона

# Локальная установка
git clone <repository-url>
cd DotNetCleanTemplate
dotnet new install .

# Или установка из NuGet (после публикации)
dotnet new install DotNetCleanTemplate

Создание нового проекта

# Базовое использование
dotnet new cleanapi -n MyProject

# С дополнительными параметрами
dotnet new cleanapi -n MyProject --include-tests false

🏗️ Архитектура

Этот шаблон следует принципам Clean Architecture с четким разделением на слои:

  • Domain Layer - бизнес-логика и доменные модели
  • Application Layer - use cases и CQRS с MediatR
  • Infrastructure Layer - внешние зависимости (БД, кэш, внешние API)
  • API Layer - веб-интерфейс с FastEndpoints

🎯 Особенности

  • Clean Architecture - строгое разделение слоев
  • CQRS - Command Query Responsibility Segregation с MediatR
  • DDD - Domain-Driven Design с агрегатами и value objects
  • FastEndpoints - современный веб-фреймворк
  • Entity Framework Core - ORM для работы с БД
  • JWT Authentication - аутентификация и авторизация
  • Redis Caching - кэширование
  • Health Checks - проверка состояния приложения
  • Rate Limiting - ограничение частоты запросов
  • Structured Logging - структурированное логирование
  • Unit & Integration Tests - полное покрытие тестами

📁 Структура проекта

MyProject/
├── MyProject.Api/              # API слой (FastEndpoints)
├── MyProject.Application/      # Слой приложения (CQRS, MediatR)
├── MyProject.Domain/           # Доменный слой (DDD)
├── MyProject.Infrastructure/   # Инфраструктурный слой (EF Core, Redis)
├── MyProject.Shared/           # Общие DTO и модели
└── Tests/
    ├── MyProject.UnitTests/    # Модульные тесты
    └── MyProject.IntegrationTests/ # Интеграционные тесты

⚙️ Параметры шаблона

Параметр Тип По умолчанию Описание
ProjectName string - Имя проекта (обязательный)
IncludeTests bool true Включить тестовые проекты

🔧 После создания проекта

  1. Обновите конфигурацию:

    • Отредактируйте appsettings.json в папке configs/
    • Настройте строки подключения к БД
    • Обновите JWT секреты
  2. Запустите миграции:

dotnet ef database update --project MyProject.Infrastructure --startup-project MyProject.Api
  1. Запустите приложение:
dotnet run --project MyProject.Api
  1. Проверьте Swagger:
    • Откройте https://localhost:7001/swagger

🧪 Тестирование

# Запуск всех тестов
dotnet test

# Запуск unit тестов
dotnet test Tests/MyProject.UnitTests/

# Запуск integration тестов
dotnet test Tests/MyProject.IntegrationTests/

📚 Документация

🤝 Поддержка

Если у вас есть вопросы или проблемы:

  1. Создайте issue в репозитории
  2. Проверьте документацию
  3. Изучите примеры в папке Features

📄 Лицензия

MIT License

  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.2 420 7/21/2025
0.0.1 70 7/19/2025