Мы используем cookie для стабильной работы сервиса. Подробнее

Программа: C# Desktop-разработчик [ WPF + Git + SQL ]

ФорматОнлайн
Объём26 занятий
О курсе

Подробнее

Эта программа создана для тех, кто хочет стать desktop-разработчиком на C#. Вы освоите создание клиент-серверных десктоп-приложений с использованием WPF для клиентской части и ASP.NET Core для серверной, научитесь работать с базами данных на всех уровнях — от чистого SQL до продвинутых возможностей, а также освоите Git для контроля версий.   🎯 Цель программы Сформировать у вас навыки для уверенной работы в качестве C# desktop-разработчика. Вы научитесь создавать полноценные клиент-серверные приложения с нуля, проектировать базы данных, управлять версиями кода и разбираться в полном цикле desktop-разработки.   ✨ Почему стоит выбрать именно её? Клиент-серверный подход: Вы изучите как клиентскую часть на C# WPF с паттерном MVVM, так и серверную на ASP.NET Core — станете специалистом, понимающим полный цикл. SQL от А до Я: Три последовательных курса по SQL от Pragmatic Programmer проведут вас от первых запросов до продвинутых транзакций, процедур и оптимизации. Git как у профессионалов: Полноценный курс по Git и GitHub научит работать в команде, управлять ветками и проходить код-ревью. Практический проект: В главном курсе программы вы создадите реальное клиент-серверное десктоп-приложение с нуля. Экономия на пакете: Покупка программы выгоднее, чем приобретение всех 5 курсов по отдельности.   🔥 Особенности программы 5 взаимодополняющих курсов: WPF + ASP.NET Core, Git и 3 уровня SQL — от новичка до продвинутого. Сквозной практический проект: В курсе Руслана Шишмарева вы разработаете полноценное клиент-серверное приложение, имитирующее реальный процесс разработки. Современный стек: WPF, ASP.NET Core, MVVM с PRISM, unit-тестирование, Postman. Поддержка от авторов: Доступ в комментарии и Telegram-сообщества для вопросов и помощи.   📅 Что нужно будет делать Создавать интерфейсы на XAML с использованием паттерна MVVM Разрабатывать Web API на ASP.NET Core для серверной части Писать SQL-запросы любой сложности с JOIN, оконными функциями и подзапросами Работать с транзакциями, представлениями, процедурами и триггерами Управлять версиями кода через Git и GitHub (ветки, Pull Requests) Тестировать API-запросы с помощью Postman Писать unit-тесты для проверки работоспособности кода
Требования

Что нужно для старта

  • Что нужно знать для старта:
  • Основы C# (переменные, циклы, условия, функции — всё, что обычно проходят в первых уроках)
  • Немного XAML (достаточно понимать, что такое элементы и атрибуты)
  • Базовое понимание, как работают запросы к серверу (не углубляясь)
  • Общее представление о таблицах и данных (например, как в Excel)
  • Чему вы научитесь с нуля в программе:
  • WPF и созданию клиентской части
  • Созданию Web API на ASP.NET Core
  • SQL: от простых запросов до сложных
  • Git и работе в команде
  • Паттерну MVVM и unit-тестам
  • Технические требования:
  • Компьютер с выходом в интернет (Windows, macOS или Linux)
  • Возможность устанавливать программы (всё бесплатно)
  • 4 ГБ оперативной памяти (хватит для старта)
  • Главное: если вы уже писали простые программы на C# и имеете общее представление о XAML — этого достаточно. Всему остальному научим по ходу. Не бойтесь, если что-то пока не знаете — курс ведёт от простого к сложному.
Результат

Что вы получите

  • Разрабатывать клиент-серверные десктоп-приложения на C# WPF с нуля
  • Создавать Web API на ASP.NET Core для серверной части приложения
  • Проектировать интерфейсы на XAML с использованием паттерна MVVM
  • Применять DI-контейнер PRISM для внедрения зависимостей
  • Писать SQL-запросы любой сложности: от простых выборок до оконных функций и CTE
  • Использовать продвинутые возможности SQL: транзакции, представления, процедуры, триггеры
  • Оптимизировать запросы с помощью EXPLAIN и настраивать права доступа в БД
  • Управлять версиями кода с Git и GitHub: ветки, слияние, Pull Requests, командная работа
  • Тестировать API-запросы с помощью Postman
  • Писать unit-тесты для проверки работоспособности кода
Аудитория

Для кого этот курс

  • 👨‍💻 Начинающие C# разработчики - Освоите desktop-разработку: от клиентской части на WPF до серверной на ASP.NET Core и работы с базами данных.
  • 🎯 Разработчики, переходящие в desktop-разработку - Уже знаете основы C#, но хотите научиться создавать клиент-серверные приложения с нуля, используя WPF и паттерн MVVM.
  • 📚 Студенты и выпускники IT-специальностей - Получите практические навыки desktop-разработки, которые дополнят академические знания и помогут на старте карьеры.
  • 🔄 Разработчики на других языках - Переходите в экосистему .NET и осваивайте востребованную desktop-специализацию с нуля через единую программу.
  • 💻 Backend-разработчики на C# - Расширите кругозор до клиентской части на WPF и углубите знания SQL — от простых запросов до оптимизации и транзакций.
  • 🚀 Фрилансеры и независимые разработчики - Научитесь самостоятельно создавать полный цикл десктоп-приложений: от клиента на WPF до API на ASP.NET Core и проектирования базы данных.
Содержание

Программа курса

26 занятий
№ТемаЧто внутри
01Git [1] Основы Git

- Знакомство
- О курсе
- Обзор систем контроля версий
- Установка и настройка Git
- Первый репозиторий
- Первый коммит
- Индекс
- Подробнее о коммита
- Откат изменений
- Удаление файлов
- Переименование/перемещение файлов
- Просмотр изменений
- История коммитов
- Машина времени (изменение истории)
- Игнорирование файлов
- Домашнее задание

02Git [2] GitHub

- Создание удаленного репозитория
- Клонирование репозитория
- SSH аутентификация
- Копирование чужого репозитория (fork)
- GitHub Copilot
- Файл Readme.md и разметка Markdown
- Альтернативы GitHub
- Домашнее задание

03Git [3] Ветвление и командная работа

- Введение в ветки
- Переключение между ветками
- Создание, просмотр, удаление веток
- Слияние веток
- Конфликты при слиянии
- Экстренное переключение между задачами
- Безопасное обновление репозитория
- Поиск автора кода
- Запросы на слияние (Pull Request)
- Большая шпаргалка

04WPF [1] Начало работы

- Что такое класс
- Подготавливаем классы
- Что такое Entity Framework
- Создаем таблицы из моделей

05WPF [2] Создание контроллера

- Что такое REST API
- Что такое ASP.NET Core
- Создаем первый контроллер, паттерн DTO
- Тестируем запрос
- Добавляем новые end-points

06WPF [3] Ограничение прав доступа

- Что такое токен
- Создание токена и организация UsersService
- Применение токена, атрибут Authorize

07WPF [4] Сервисы

- Расширение сервиса UsersService
- Cервис ProjectsService
- Расширение сервиса ProjectsService и рефакторинг
- Тестирование сервиса ProjectsService
- Сервис DesksService
- Тестирование сервиса DesksService
- Сервис TasksService
- Тестирование сервиса TasksService
- Доработка сервиса TasksService

08WPF [5] Начало работы с UI

- Что такое WPF
- Паттерн MVVM
- Что такое PRISM

09WPF [6] Разработка UI сервисов

- Создание проекта, создание сервиса, тестирование сервиса
- Расширение сервиса для работы с пользователями
- UsersRequestService. Доработка сервиса и тестирование запросов
- ProjectsRequestService. Сервис для работы с проектами
- ProjectsRequestService. Тестирование сервиса
- DesksRequestService. Сервис для работы с досками
- DesksRequestService. Тестирование сервиса
- TasksRequestService. Создание и тестирование

10WPF [7] Окно Login

- Создание окна Login. Верстка xaml
- Класс ViewModel для Login. Получение информации по пользователю
- Сохранение информации по логину и паролю

11WPF [8] Главное окно MainWindow

- Создание кнопок с командами в виде изменяемого списка
- Кнопка управления пользователями
- Страница с информацией о пользователе
- Кнопка Logout
- Отображение задач списком

12WPF [9] Страница с проектами

- Создание страницы с проектами
- Отображение участников в проекте
- Создание и редактирование проекта
- Добавление пользователей в проект

13WPF [10] Страница с досками

- Отображение досок
- Создание досок
- Редактирование досок, создание нового сервиса

14WPF [11] Страница с задачами

- Открытие досок с задачами
- Открытие задач и колонок
- Окно создания задачи
- Debugging. Отображение исполнителя и создателя
- Перетаскивание задач между колонками

15WPF [12] Дополнение функционала

- Импорт из excel, редактирование проекта, исправление багов
- Ограничение работы в программе по времени

16SQL [1.1] Установка рабочего окружения

- Установка MySQL сервера
- Работа в терминале
- Графические IDE (Workbench, DBeaver)
- Взаимодействие с сервером
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

17SQL [1.2] Проектирование БД (команды DDL)

- Первичные ключи
- Особенности типов данных и именование объектов
- Руководство по стилю SQL · SQL Style Guide
- Индексы
- Внешние ключи
- Подробнее про ALTER TABLE
- Особенности синтаксиса MySQL
- Виды связей между таблицами (1х1, 1хМ, МхМ)
- Таблицы-справочники
- ER-диаграмма
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

18SQL [1.3] Работа с данными (команды DML, CRUD)

- Команда INSERT
- Команда SELECT
- Команда UPDATE
- Команда DELETE
- Бонус: Сервисы для генерации данных
- Импорт-экспорт данных
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

19SQL [2.1] Базовые возможности SELECT запросов

- Простые примеры SELECT запросов
- Фильтрация (WHERE + LIKE)
- Сортировка (ORDER BY)
- Агрегирующие функции (COUNT, MIN, MAX, AVG, SUM)
- Группировка (GROUP BY)
- Фильтрация (HAVING)
- Отсутствие значения (NULL)
- Пейджинг (LIMIT + OFFSET)
- Условия, ветвления (IF, CASE)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

20 SQL [2.2] Продвинутые SELECT-запросы

- Вложенные запросы (подзапросы)
- Объединения (JOIN) - Теория
- Объединения (CROSS JOIN, INNER JOIN)
- Объединения (LEFT JOIN, RIGHT JOIN)
- Объединения (FULL OUTER JOIN)
- Вложенные запросы VS объединения
- Соединения (UNION)
- Оконные функции
- Общие табличные выражения (CTE)
- Рекурсивные табличные выражения
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Решаем задачи. Пишем SQL код. Часть 3
- Решаем задачи. Пишем SQL код. Часть 4

21SQL [2.1] Продвинутые фичи SQL

- Полнотекстовый поиск
- Представления (View)
- Хранимые процедуры
- Пользовательские функции
- Переменные
- Триггеры
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

22SQL [2.2] Транзакции

- Введение в транзакции
- Обработка исключений (ошибок)
- Уровни изоляции транзакций
- Блокировки таблиц
- Взаимная блокировка (deadlock)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

23SQL [2.3] Права доступа

- Пользователи
- Роли
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

24SQL [2.4] Вопросы оптимизации

- Лишний JOIN
- Денормализация
- Настройки сервера
- Анализ запросов (EXPLAIN)
- Графический план исполнения запроса
- Исправление проблемных мест
- Графический план: показательные примеры
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

25SQL [2.5] Дополнительные темы

- Работа с логами
- Циклы
- Курсоры
- SQL инъекции
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

26Завершение учебной программы

- Подведение итогов

01Git [1] Основы Git

- Знакомство
- О курсе
- Обзор систем контроля версий
- Установка и настройка Git
- Первый репозиторий
- Первый коммит
- Индекс
- Подробнее о коммита
- Откат изменений
- Удаление файлов
- Переименование/перемещение файлов
- Просмотр изменений
- История коммитов
- Машина времени (изменение истории)
- Игнорирование файлов
- Домашнее задание

02Git [2] GitHub

- Создание удаленного репозитория
- Клонирование репозитория
- SSH аутентификация
- Копирование чужого репозитория (fork)
- GitHub Copilot
- Файл Readme.md и разметка Markdown
- Альтернативы GitHub
- Домашнее задание

03Git [3] Ветвление и командная работа

- Введение в ветки
- Переключение между ветками
- Создание, просмотр, удаление веток
- Слияние веток
- Конфликты при слиянии
- Экстренное переключение между задачами
- Безопасное обновление репозитория
- Поиск автора кода
- Запросы на слияние (Pull Request)
- Большая шпаргалка

04WPF [1] Начало работы

- Что такое класс
- Подготавливаем классы
- Что такое Entity Framework
- Создаем таблицы из моделей

05WPF [2] Создание контроллера

- Что такое REST API
- Что такое ASP.NET Core
- Создаем первый контроллер, паттерн DTO
- Тестируем запрос
- Добавляем новые end-points

06WPF [3] Ограничение прав доступа

- Что такое токен
- Создание токена и организация UsersService
- Применение токена, атрибут Authorize

07WPF [4] Сервисы

- Расширение сервиса UsersService
- Cервис ProjectsService
- Расширение сервиса ProjectsService и рефакторинг
- Тестирование сервиса ProjectsService
- Сервис DesksService
- Тестирование сервиса DesksService
- Сервис TasksService
- Тестирование сервиса TasksService
- Доработка сервиса TasksService

08WPF [5] Начало работы с UI

- Что такое WPF
- Паттерн MVVM
- Что такое PRISM

09WPF [6] Разработка UI сервисов

- Создание проекта, создание сервиса, тестирование сервиса
- Расширение сервиса для работы с пользователями
- UsersRequestService. Доработка сервиса и тестирование запросов
- ProjectsRequestService. Сервис для работы с проектами
- ProjectsRequestService. Тестирование сервиса
- DesksRequestService. Сервис для работы с досками
- DesksRequestService. Тестирование сервиса
- TasksRequestService. Создание и тестирование

10WPF [7] Окно Login

- Создание окна Login. Верстка xaml
- Класс ViewModel для Login. Получение информации по пользователю
- Сохранение информации по логину и паролю

11WPF [8] Главное окно MainWindow

- Создание кнопок с командами в виде изменяемого списка
- Кнопка управления пользователями
- Страница с информацией о пользователе
- Кнопка Logout
- Отображение задач списком

12WPF [9] Страница с проектами

- Создание страницы с проектами
- Отображение участников в проекте
- Создание и редактирование проекта
- Добавление пользователей в проект

13WPF [10] Страница с досками

- Отображение досок
- Создание досок
- Редактирование досок, создание нового сервиса

14WPF [11] Страница с задачами

- Открытие досок с задачами
- Открытие задач и колонок
- Окно создания задачи
- Debugging. Отображение исполнителя и создателя
- Перетаскивание задач между колонками

15WPF [12] Дополнение функционала

- Импорт из excel, редактирование проекта, исправление багов
- Ограничение работы в программе по времени

16SQL [1.1] Установка рабочего окружения

- Установка MySQL сервера
- Работа в терминале
- Графические IDE (Workbench, DBeaver)
- Взаимодействие с сервером
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

17SQL [1.2] Проектирование БД (команды DDL)

- Первичные ключи
- Особенности типов данных и именование объектов
- Руководство по стилю SQL · SQL Style Guide
- Индексы
- Внешние ключи
- Подробнее про ALTER TABLE
- Особенности синтаксиса MySQL
- Виды связей между таблицами (1х1, 1хМ, МхМ)
- Таблицы-справочники
- ER-диаграмма
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

18SQL [1.3] Работа с данными (команды DML, CRUD)

- Команда INSERT
- Команда SELECT
- Команда UPDATE
- Команда DELETE
- Бонус: Сервисы для генерации данных
- Импорт-экспорт данных
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

19SQL [2.1] Базовые возможности SELECT запросов

- Простые примеры SELECT запросов
- Фильтрация (WHERE + LIKE)
- Сортировка (ORDER BY)
- Агрегирующие функции (COUNT, MIN, MAX, AVG, SUM)
- Группировка (GROUP BY)
- Фильтрация (HAVING)
- Отсутствие значения (NULL)
- Пейджинг (LIMIT + OFFSET)
- Условия, ветвления (IF, CASE)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

20 SQL [2.2] Продвинутые SELECT-запросы

- Вложенные запросы (подзапросы)
- Объединения (JOIN) - Теория
- Объединения (CROSS JOIN, INNER JOIN)
- Объединения (LEFT JOIN, RIGHT JOIN)
- Объединения (FULL OUTER JOIN)
- Вложенные запросы VS объединения
- Соединения (UNION)
- Оконные функции
- Общие табличные выражения (CTE)
- Рекурсивные табличные выражения
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Решаем задачи. Пишем SQL код. Часть 3
- Решаем задачи. Пишем SQL код. Часть 4

21SQL [2.1] Продвинутые фичи SQL

- Полнотекстовый поиск
- Представления (View)
- Хранимые процедуры
- Пользовательские функции
- Переменные
- Триггеры
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

22SQL [2.2] Транзакции

- Введение в транзакции
- Обработка исключений (ошибок)
- Уровни изоляции транзакций
- Блокировки таблиц
- Взаимная блокировка (deadlock)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

23SQL [2.3] Права доступа

- Пользователи
- Роли
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код

24SQL [2.4] Вопросы оптимизации

- Лишний JOIN
- Денормализация
- Настройки сервера
- Анализ запросов (EXPLAIN)
- Графический план исполнения запроса
- Исправление проблемных мест
- Графический план: показательные примеры
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2

25SQL [2.5] Дополнительные темы

- Работа с логами
- Циклы
- Курсоры
- SQL инъекции
- Контрольные вопросы
- Решаем задачи. Пишем SQL код

26Завершение учебной программы

- Подведение итогов

Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Программа: C# Desktop-разработчик [ WPF + Git + SQL ]» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 7 сентября 2026 г.

Продолжить выбор

Похожие курсы

Фреймворк Apache Spark для разработчиков: продвинутый уровень
−10%32 академ. часов
Фреймворк Apache Spark для разработчиков: продвинутый уровень

Глубокое погружение в внутреннее устройство Apache Spark и его компонентов. Этот курс поможет вам понять, как устроены и работают различные модули Spark, такие как Spark Core, Spa…

ОнлайнПродвинутый
55 500 ₽−10%
49 950 ₽
Программа: Твой JavaScript
Программа: Твой JavaScript

Цель курса - дать вам исчерпывающее понимание JavaScript. Мы не обещаем сделать из вас сеньора за две недели, это сказки. Наша задача - предоставить самую подробную и глубокую баз…

Онлайн21 занятий
4 250 ₽
SQL практикум. Полный курс
4-5 часов в неделю
SQL практикум. Полный курс

Загляни в Телеграм канал курса. Там обсуждение и новости. В конце курса студентов ждет приятный бонус! 🎁 Цель курса Научить вас работать с базами данных на профессиональном уровне…

Онлайн12 занятий
890 ₽
Начать без затрат

Бесплатные курсы

Python для решения практических задач
Бесплатно
Python для решения практических задач

Научились решать простые задачи на питоне, но не можете понять, как сделать что-то полезное? Наш курс научит вас правильно гуглить! На примерах задач сбора данных (Data Scraping)…

Онлайн5 занятий
Бесплатно
Python для геймеров: базовый курс на игровых примерах
Бесплатно4 часа в неделю
Python для геймеров: базовый курс на игровых примерах

Здесь не будет сложных задач «про шахматы»! Здесь не будет абстрактных задач и сложных математических вычислений. Зато есть: теория простым и понятным языком игровые механики логи…

Онлайн12 занятий
Бесплатно