📌 Что это такое
- Приложение-пример на .NET, которое реализует веб-сайт электронной коммерции (eCommerce) с архитектурой, основанной на сервисах.
- Использует .NET 9.
- Код лицензирован по MIT.
📌 Как запустить
- Клонировать репозиторий.
- Установить .NET 9 SDK.
- Для Windows: можно использовать Visual Studio (2022 17.10+).
- Можно запустить через Docker Desktop.
- Через терминал:
```bash
dotnet run --project src/eShop.AppHost/eShop.AppHost.csproj
📌 Особенности
Пример данных каталога хранится в catalog.json, описания продуктов и брендов — вымышленные.
Изображения продуктов сгенерированы с помощью DALL·E 3.
Есть версия приложения, подготовленная для деплоя в Azure.
📌 Почему полезно
- Подходит как учебный материал для изучения структуры реального .NET-приложения.
- Демонстрирует современные практики: архитектура, CI/CD, микросервисы.
- Можно использовать как стартовую точку для собственных проектов.
#dotnet #eCommerce #ReferenceApp #MIT #Architecture #SampleProject #Microservices
Репозиторий: https://github.com/dotnet/eShop
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡ .NET Channel Publisher — простой способ строить настоящий async messaging
📌 Как это работает:
- Использует
- Сообщения пишутся в канал и обрабатываются в фоне, не блокируя поток
- Поддержка
🔥 Плюсы:
- Минимум кода — максимум гибкости
- Высокая производительность и низкая задержка
- Удобно для event-driven архитектуры и микросервисов
На скриншоте:
- Пример класса
- Трейсинг вызова
#dotnet #csharp #async #messaging
📌 Как это работает:
- Использует
System.Threading.Channels для асинхронной публикации событий - Сообщения пишутся в канал и обрабатываются в фоне, не блокируя поток
- Поддержка
CancellationToken для безопасной отмены 🔥 Плюсы:
- Минимум кода — максимум гибкости
- Высокая производительность и низкая задержка
- Удобно для event-driven архитектуры и микросервисов
На скриншоте:
- Пример класса
ChannelPublisher для отправки нотификаций - Трейсинг вызова
Order.Service: POST orders показывает прозрачную обработку и асинхронность #dotnet #csharp #async #messaging
🧩 Несколько DbContext в одном приложении на EF Core — когда это нужно
Использовать несколько DbContext в одном приложении — не ошибка, а часто отличное архитектурное решение.
Вот когда это оправдано:
- 🗃 Работа с несколькими базами данных
- 🧠 Разделение областей ответственности
- 🧩 Архитектура modular monolith
- ⚡ Использование read replicas
Автор применил это при создании модульного монолита:
каждый модуль имел собственную схему в БД и отдельный DbContext в коде.
Самое интересное — как EF Core справляется с миграциями и разными схемами баз данных.
Разбор и пошаговое решение — здесь:
🔗 https://milanjovanovic.tech/blog/using-multiple-ef-core-dbcontext-in-single-application
#DotNet #EFCore #CSharp #Backend #Architecture #DesignPatterns
Использовать несколько DbContext в одном приложении — не ошибка, а часто отличное архитектурное решение.
Вот когда это оправдано:
- 🗃 Работа с несколькими базами данных
- 🧠 Разделение областей ответственности
- 🧩 Архитектура modular monolith
- ⚡ Использование read replicas
Автор применил это при создании модульного монолита:
каждый модуль имел собственную схему в БД и отдельный DbContext в коде.
Самое интересное — как EF Core справляется с миграциями и разными схемами баз данных.
Разбор и пошаговое решение — здесь:
🔗 https://milanjovanovic.tech/blog/using-multiple-ef-core-dbcontext-in-single-application
#DotNet #EFCore #CSharp #Backend #Architecture #DesignPatterns