
Аноним
Маска Организаторов
Организатор
- Сообщения
- Монеты
- +89.5
- Оплачено
- 5
- Купоны
- 0
- Кешбэк
- 0
- Баллы
- 0
- @Skladchiki
- #1
Складчина: Реляционные базы данных в веб приложениях (Кирилл Сачков)
- Ссылка на картинку
-
Освойте работу с PostgreSQL, Entity Framework Core и Dapper
Изучите оптимизацию и архитектуру БД
Фундаментальное изучение работы с реляционными базами данных в .NET приложениях на практике. Освойте PostgreSQL, Entity Framework Core и Dapper для создания эффективных и масштабируемых решений с правильной архитектурой доступа к данным и производительными запросами.
Почему этот интенсив?
Урок 1. Основы PostgreSQL и теория баз данных
Урок 2. Проектирование доменных моделей и связей между сущностями
Урок 3. Настройка окружения и начало работы с базой данных
Урок 4. Конфигурации Entity Framework Core и создание миграций
Урок 5. Работа с DbContext, ChangeTracker и операции вставки
Урок 6. Операции обновления и удаления, массовые операции
Урок 7. Правильная архитектура репозиториев и управление транзакциями
Урок 8. Реализация функционала бронирования и бизнес-логики
Урок 9. Параллельные операции и изоляция транзакций
Урок 10. Практическое применение пессимистичной блокировки
Урок 11. Сидирование базы данных и автоматизация
Урок 12. Архитектура запросов на чтение данных
Урок 13. Сложные SQL запросы и оптимизация
Урок 14. Фильтрация, пагинация и агрегация данных
Урок 15. Продвинутые техники работы с Dapper
Урок 16. Гибкая сортировка и продвинутые запросы
Урок 17. Работа с индексами и оптимизация запросов
Программа подробнее:
Урок 1. Основы PostgreSQL и теория баз данных
Урок 18. CQRS
Урок 19. Работа с деревьями и иерархическими структурами
Урок 20. Паттерн Спецификация (Specification)
Изучите оптимизацию и архитектуру БД
Фундаментальное изучение работы с реляционными базами данных в .NET приложениях на практике. Освойте PostgreSQL, Entity Framework Core и Dapper для создания эффективных и масштабируемых решений с правильной архитектурой доступа к данным и производительными запросами.
Почему этот интенсив?
- Глубокое понимание баз данных: от теории ACID до практической реализации сложных запросов
- Два подхода к работе с данными: изучите как ORM (Entity Framework Core), так и микро-ORM (Dapper)
- Практические кейсы: реальный проект системы бронирования мест с решением типичных проблем
- Производительность и оптимизация: научитесь писать эффективные SQL запросы и управлять транзакциями
- Современные подходы: Repository pattern, CQS, управление транзакциями и блокировки, индексы
- Правильная архитектура: Clean Architecture, CQRS
- Разработчики, которые хотят научиться работать с реляционными базами данных в .NET приложениях.
- Все, кто хочет научиться проектировать и реализовывать сложные схемы баз данных с правильными связями и ограничениями.
- Разработчики, которые хотят углубить знания в работе с базами данных в .NET приложениях.
- Те, кто хочет научиться проектировать эффективную архитектуру доступа к данным.
- Разработчики, работающие с Entity Framework Core и желающие освоить альтернативные подходы.
- Все, кто хочет понять, как решать проблемы производительности и параллельного доступа к данным.
- Вы сможете проектировать и реализовывать сложные схемы баз данных с правильными связями и ограничениями.
- Освоите как Entity Framework Core, так и Dapper с SQL запросами для разных сценариев использования.
- Научитесь оптимизировать запросы, управлять транзакциями и решать проблемы параллельного доступа.
- Получите практический опыт создания масштабируемой архитектуры доступа к данным.
Урок 1. Основы PostgreSQL и теория баз данных
Урок 2. Проектирование доменных моделей и связей между сущностями
Урок 3. Настройка окружения и начало работы с базой данных
Урок 4. Конфигурации Entity Framework Core и создание миграций
Урок 5. Работа с DbContext, ChangeTracker и операции вставки
Урок 6. Операции обновления и удаления, массовые операции
Урок 7. Правильная архитектура репозиториев и управление транзакциями
Урок 8. Реализация функционала бронирования и бизнес-логики
Урок 9. Параллельные операции и изоляция транзакций
Урок 10. Практическое применение пессимистичной блокировки
Урок 11. Сидирование базы данных и автоматизация
Урок 12. Архитектура запросов на чтение данных
Урок 13. Сложные SQL запросы и оптимизация
Урок 14. Фильтрация, пагинация и агрегация данных
Урок 15. Продвинутые техники работы с Dapper
Урок 16. Гибкая сортировка и продвинутые запросы
Урок 17. Работа с индексами и оптимизация запросов
Программа подробнее:
Урок 1. Основы PostgreSQL и теория баз данных
- PostgreSQL - что это и почему выбирают эту СУБД
- Разница между СУБД и БД, понятие схемы
- Устройство таблиц и хранение данных в PostgreSQL
- Ключи: Primary Key и Foreign Key
- SERIAL vs UUID (GUID) - выбор типа идентификатора
- Отношения между таблицами: один ко многим, один к одному, многие ко многим
- Принципы ACID: Atomicity, Consistency, Isolation, Durability
- Что такое транзакции и зачем они нужны
- Индексы: назначение, виды, плюсы и минусы
- B-tree индексы и составные индексы
- Подход Code First в проектировании моделей
- Создание проекта ASP.NET Core Web API
- Проектирование сущностей с использованием богатых моделей
- Установка связей между классами
- Работа с nullable reference types
- Проектирование связей
- Реализация связей между модулями
- Проектирование системы бронирования
- Группировка классов по модулям
- Запуск PostgreSQL с помощью Docker
- Обзор и настройка docker-compose файла
- Работа с pgAdmin для управления базой данных
- Сравнение подходов Database First и Code First
- Понятие миграций в Entity Framework
- Создание DbContext для работы с базой данных
- Паттерн Repository
- Работа с базой данных без ORM: чистый SQL
- Параметризованные SQL-запросы для безопасности
- Глубокое понимание разницы Code First от Database First
- Конфигурирование доменных моделей через Fluent API
- Entity vs Value Object: концепции и различия
- Способы хранения Value Objects в базе данных
- Конфигурация через ComplexProperty и OwnsOne
- Работа с комплексными объектами и типизированными Id
- Регистрация DbContext в Dependency Injection
- Понимание Scoped vs Singleton для DbContext
- Создание и применение миграций
- Работа с JSON объектами (OwnsMany, JSONB)
- Настройка связей между таблицами и модулями
- Конфигурирование связей один к одному и многие ко многим
- Создание слоя Application и проекта Contacts
- Реализация фичи создания сущности
- Различные подходы работы с базой данных
- Создание доменных моделей в фичах
- Способы работы с базой данных из слоя Application
- Настройка логирования для отладки SQL-запросов
- Понимание работы ChangeTracker в Entity Framework
- Добавление связанных сущностей при создании основной
- Работа с прямыми навигационными связями
- Анализ генерируемых SQL-запросов
- Реализация Repository pattern vs прямое использование DbContext
- Регистрация зависимостей и работа с фабриками
- Необходимость транзакций при работе с данными
- Реализация обновления через Dapper (чистый SQL)
- Первый способ обновления через Entity Framework Core
- Сравнение работы обновлений в Dapper vs EF Core
- Массовые обновления в Entity Framework Core
- Массовые обновления через Dapper
- Обновление через доменные сущности (второй способ)
- Ограничения Dapper при работе с доменными сущностями
- Анализ работы Change Tracker
- Плюсы и минусы различных подходов к обновлению
- Полное обновление сущностей (третий способ)
- Различия между IQueryable и IEnumerable
- Проблемы массовых обновлений с получением сущностей
- Обновление навигационных сущностей: два способа
- Комбинированный подход для оптимальной работы
- Когда нужны и не нужны множественные реализации репозитория
- Случаи использования нескольких реализаций репозитория
- Комбинированный подход в архитектуре репозиториев
- Проблемы транзакционности в распределенных операциях
- Стратегии управления транзакциями
- Создание и реализация TransactionManager
- Паттерн TransactionScope и его применение
- Решение проблем транзакционности в фичах обновления
- Правильное использование using с транзакциями
- Анализ работы транзакций в действии
- Анализ предметной области системы бронирования
- Создание контроллера для операций бронирования
- Создание фичи бронирования в слое Application
- Создание специализированного репозитория
- Правильное использование SaveChanges и обработка ошибок
- Использование репозитория в обработчиках (handlers)
- Реализация проверки доступности мероприятия
- Проверка принадлежности мест к мероприятию
- Реализация проверки статуса бронирования мест
- Анализ генерируемых SQL-запросов
- Выявление проблем параллельного доступа
- Проблемы нескольких одновременных запросов
- Влияние транзакций на параллельные операции
- Подробный анализ уровней изоляции транзакций
- Феномены в базах данных: dirty read, phantom read
- Изменение уровня изоляции транзакций
- Способы решения проблем параллельности
- Решение через database constraints (ограничения БД)
- Реализация проверки максимальной вместимости
- Проблемы проверки вместимости при параллельных запросах
- Pessimistic locking (пессимистичная блокировка)
- Optimistic locking (оптимистичная блокировка)
- Реализация обоих типов блокировок
- Углубленный пример использования Pessimistic locking
- Реализация бронирования нескольких мест одновременно
- Получение и блокирование связанных сущностей
- Запросы для получения всех доступных мест
- Реализация сложной доменной логики
- Анализ производительности и SQL-запросов
- Различные способы реализации сидирования
- Размещение логики сидирования в проекте
- Реализация сидирования данных
- Использование Cursor AI для генерации кода сидеров
- Автоматизация процесса наполнения данными
- Различия между операциями чтения и записи
- Типы запросов в приложениях
- Запрос получения информации о мероприятии и карте мест
- Выбор правильных моделей для возврата из бэкенда
- Использование AsNoTracking для оптимизации
- Паттерн CQS (Command Query Separation)
- Работа с интерфейсом IQueryable
- Создание IReadDbContext для операций чтения
- Усложнение запросов для получения мероприятий
- Проблемы множественных запросов (N+1 problem)
- Проекции данных с помощью Select
- Оптимизация запросов в один JOIN
- Использование Dapper для прямых SQL-запросов
- Маппинг объектов в Dapper
- Усложнение SQL с LEFT JOIN
- Эквивалентные запросы в Entity Framework Core и LINQ
- LINQ Query syntax для сложных соединений
- Реализация LEFT JOIN в EF Core
- Подсчет количества свободных мест
- Запросы на EF Core с LINQ для агрегации
- Использование оконных функций в SQL
- Запросы с фильтрами и пагинацией
- Фильтрация по датам и времени
- Усложнение логики: минимальное количество свободных мест
- Реализация пагинации в Entity Framework Core
- Фильтрация и пагинация в Dapper через SQL
- Написание сложных SQL-запросов
- Анализ планов выполнения запросов
- Использование CTE (Common Table Expressions)
- Сравнение производительности различных подходов
- Реализация фильтров и пагинации в Dapper
- Оптимальные способы подсчета общего количества (total count)
- Реализация гибкой сортировки в Entity Framework Core
- Гибкая сортировка в Dapper
- Усложнение запросов: сортировка по популярности
- Улучшение запросов с помощью CTE (WITH AS)
- Расчет популярности через Entity Framework Core
- Оптимизация сложных аналитических запросов
Урок 18. CQRS
Урок 19. Работа с деревьями и иерархическими структурами
Урок 20. Паттерн Спецификация (Specification)
Показать больше
Зарегистрируйтесь
, чтобы посмотреть авторский контент.