Бекенд на C# Web Api
Структура приложения
Для создания проекта в Visual Studio выбираем шаблон ASP.NET Core Web API и выставляем галочки как на картинке ниже.


В результате будет создан шаблон проекта с тестовым контроллером, Dockerfile'ом, а также базовой конфигурацией в Program.
Хорошей практикой считается разбиение решения на разные проекты.

В данном примере основной проект — DemoWebApi, который является ASP.NET Core Web API. Остальные проекты - обычные Class Library.
DemoWebApi — содержит в себе все контроллеры и описывает весь API сервиса.
Service — содержит в себе классы, которые описывают основную бизнес логику.
Entities — описывает структуру базы данных.
Contracts и Repository — изолирует базу данных.

Рассмотрим структуру проекта DemoWebApi. Класс Program содержит код для запуска и конфигурации приложения. Помимо этого тут добавляются различные сервисы, используемые приложением, а также регистрируются зависимости для внедрения с помощью DI.
В Program будет очень много специфичного кода для конфигурации, однако этот код должен быть максимально чистым и читабельным. Хорошей практикой считается вынесение всех деталей конфигурации в отдельный класс с методами расширения. В таком случае, Program будет состоять из однострочных вызовов методов конфигураций, которые легко читать и понимать. Картинка ниже демонстрирует этот подход.

Также в проекте присутствует папка Controllers и файл конфигурации appsettings.json.
Таким образом структура основного проекта должна выглядеть следующим образом:
Класс Program
Файл appsettings.json
Папка Controllers
Папка Extentions
Папка Filters

Все остальные классы, не относящиеся к контроллерам, должны быть вынесены в другие проекты.
Пример структуры проекта можно посмотреть в демо-проекте.
Microsoft — Tutorial: Create a web API with ASP.NET Core
Code Maze — ASP.NET Core Web API Best Practices
Автор документа: Артём Ветик