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.
📊 Статус проекта
📦 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 | Включить тестовые проекты |
🔧 После создания проекта
Обновите конфигурацию:
- Отредактируйте
appsettings.json
в папкеconfigs/
- Настройте строки подключения к БД
- Обновите JWT секреты
- Отредактируйте
Запустите миграции:
dotnet ef database update --project MyProject.Infrastructure --startup-project MyProject.Api
- Запустите приложение:
dotnet run --project MyProject.Api
- Проверьте Swagger:
- Откройте
https://localhost:7001/swagger
- Откройте
🧪 Тестирование
# Запуск всех тестов
dotnet test
# Запуск unit тестов
dotnet test Tests/MyProject.UnitTests/
# Запуск integration тестов
dotnet test Tests/MyProject.IntegrationTests/
📚 Документация
🤝 Поддержка
Если у вас есть вопросы или проблемы:
- Создайте issue в репозитории
- Проверьте документацию
- Изучите примеры в папке
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.