Проходил 21 марта в 20:00

Открытый вебинар
C#: Singleton: подводные камни и Best Practices

Открытый вебинар онлайн

Часто возникает необходимость, чтобы все обращения от операционной системы обрабатывались одной копией приложения. На практическом открытом вебинаре вы узнаете:
– как выявить и предотвратить повторный запуск приложения;
– какие приёмы позволяют избежать повторного запуска приложения: их положительные & отрицательные стороны;
– а также поговорим о другой копии запущенного приложения.

Запись

О курсе

Разработчик C#
40 000 ₽
Начало в декабре 2025 года
Наша программа – микс полезных теоретических знаний и практических навыков для разработчиков C#, имеющих 1-2 года опыта программирования. Вас ждут 32 интенсивных онлайн-занятия, где мы изучим популярные технологии и важные особенности С#. За 5 месяцев мы: – изучим архитектурные понятия, шаблоны и паттерны проектирования, которыми пользуются профессиональные разработчики; – научимся применять "синтаксический сахар" языка; – рассмотрим и попробуем полезные инструменты ...
Программа курса
Модуль 1
Сахар. Соль. Суть
Модуль 2
Радости корпоративной разработки
Модуль 3
Кроссплатформенный Web
Модуль 4
Ещё быстрее, ещё сполчёнее
Модуль 5
Самое вкусное
Сахар. Соль. Суть
В данном модуле мы рассмотрим синтаксический сахар и особенности современной реализации языка начиная с 5 ревизии. Кроме того, будут рассмотрены наиболее часто используемые компоненты библиотек и технологии, которые предоставляет современный C#
Универсальные шаблоны и их ограничения. Инвариантность, ковариантность и контравариантность
Освоение понятия шаблона и понимание границ его применения
Анонимные и динамические типы, кортежи, локальные функции. Преобразование типов Explicit и Implicit.
Получить понимание, когда стоит использовать автоматическое приведение типов, а когда это приведёт к сбоям в программе
Домашние задания: 1
ДЗ
Разработать приложение для создания сложных отчётов. Необходимо описать сущность "здание", как иерархию классов, например дом состоит из этажей, окон, дверей, стен, мебели, может объединяться на площадках, и участки. Затем вывести в консоль несколько выборок, например: все окна здания, или все объекты второго этажа. На ваш выбор можно придумать любую другую сущность, например интернет магазин, банк.
Пользовательские и системные коллекции. Работа с индуктивными функциями и введение в LINQ.
Понимание индуктивных и агрегаторных функций.
Entity Framework и язык запросов LINQ, интерфейс IQueryable
Ускорение доступа к объектам данных, упрощение процесса разработки
Домашние задания: 1
ДЗ
Object-Relational Mapping. Можете использовать сущности из предыдущего задания или взять любые свои. Вам необходимо реализовать Object-Relational Mapping между базой данных и вашей иерархией классов или наоборот.
Файлы конфигурации, настройка приложений, системный реестр и работа с XML. Атрибуты и сериализация
Автоматизация процесса сериализации объектов с помощью аттрибутов
Домашние задания: 1
ДЗ
Опции для любого приложения. Разработать классы для хранения настроек приложения, групп пользователей и прав доступа для вашего приложения, продемонстрировать несколько способов сохранения конфигурации: база данных, XML, JSON, NoSQL. Приложение должно быть кроссплатформенным.
Библиотека Task Parallels Library, PLINQ
Понять механизмы асинхронной и параллельной работы в C# 5+
Домашние задания: 1
ДЗ
Скачивание файлов с разных ресурсов. Необходимо реализовать Download Manger с помощью которого можно скачивать 2,3 и более файлов с разных ресурсов. Приложение должно реализовывать ProgressBar, на котором отображается общий процесс скачивания информации.
Мультимедийные возможности WPF: геометрия, примитивы, кисти, трансформации, градиентная заливка
Освоить построение красивых и функциональных интерфейсов
Создание анимаций WPF. Возможности 3D графики WPF: трехмерные графические примитивы
Построение красивых и функциональных приложений (продолжение)
Домашние задания: 1
ДЗ
Отображение полигональной модели в окне. Необходимо найти и распарсить файл PLY, его содержимое вывести в виде 3D модели. Разрешается использовать любой другой известный вам формат файлов с моделью.
Радости корпоративной разработки
Разработка и обслуживание различных систем документооборота.
Проектировании системы электронного документооборота
Разработка концепции системы электронного документооборота на базе Web
Разработка базы данных и архитектуры системы
Понять, как строятся распределённые системы хранения и обработки документов
Домашние задания: 1
ДЗ
Проектируем систему документооборота. В этом модуле будем проектировать систему документооборота. Начнём с базы данных и архитектуры системы. Нужно будет сделать "рыбу" системы, продумать модель данных, мигацию, архитектуру.
Аутентификация, организационная структура
Рассмотреть механизмы аутентификации пользователя в корпоративной среде и способы разграничения доступа к информации
Обмен сообщениями, push-уведомления, Workflow
Разработать способы мгновенного взаимодействия в корпоративной среде, рассмотреть плюсы и минусы различных способов
Домашние задания: 1
ДЗ
Система обмена сообщениями. Разрабатываем систему обмена сообщениями внутри системы документооборота в режиме реального времени с push-уведомлениями.
API для интеграции с другими системами, интеграция с другими системами
Понимание механизмов работы REST и JSON
Работа с файлами и документами. Подписывание документов ЭЦП
Оптимизация загрузки и выгрузки больших объёмов данных
Разграничение прав доступа
Контроль ошибок и доступа
Домашние задания: 1
ДЗ
Просмотр и ЭЦП. Реализовать просмотр документов и подписывание их простой не защищённой ЭЦП.
Работа с документами .docx, .rtf, .html
Генерация документов в формате Microsoft word и в Веб-формате
Печать, генерация PDF и XPS
Домашние задания: 1
ДЗ
Работа с докментами. Создание и работа с документами docx, rtf, html. Печать и генерация отчётов, документов PDF и XPS.
Кроссплатформенный Web
Web разработка под Windows, Linux и не только
Реализация концепции MVC в ASP.NET Core. Модель-представление-контроллер. Маршрутизация, Dependency Injection
Введение в концепцию MVC. Особенности ее реализации в ASP.NET Core.
Тестирование модульной структуры ASP.NET Core приложений
Изучить встроенные в Visual Studio возможности Unit тестирования
Домашние задания: 1
ДЗ
Проектирование приложения "Онлайн продажа билетов на ЧМ по футболу 2018". Создание контроллеров и представлений. Написание Unit тестов приложения..
Понимание архитектурной концепции REST сервисов. Реализация REST сервисов в ASP.NET Core - ASP.NET Core Web Api
Выработать понимание концепции REST сервисов, особенностями ее реализации в ASP.NET Core
Углубленное взгляд на архитектуру ASP.NET Core. Промежуточные слои, фильтры
Сформировать более полное представление архитектуры ASP.NET Core в части назначения и работы механизмов промежуточных слоев и фильтров
Домашние задания: 1
ДЗ
Добавление в приложение Web Api сервиса бронирования и покупки билетов. Написание пользовательских промежуточных слоев и фильтров..
Использование кросcплатформенных ORM – EF Core и Dapper в ASP.NET Core
Выработать понимание концепции ORM и научить применению концепции на примере EF Core и Dapper в приложениях ASP.NET Core
Безопасность в ASP.NET Core. ASP.NET Core Identity. CORS, SSL, Data Protection API, JWT
Познакомиться со встроенными механизмы организации системы безопасности на различных уровнях в ASP.NET Core
Домашние задания: 1
ДЗ
Проектирование и создание модели базы данных.Добавление системы аутентификации, авторизации и защиты данных..
Оптимизация и производительность приложений ASP.NET Core. Асинхронные методы
Изучение встроенных в технологию ASP.NET Core механизмов кэширования, сжатия данных, асинхронных методов
Использование сервисов ASP.NET Core Web Api на примере Angular и JQuery
Знакомство с примерами использования разрабатываемых ASP.NET Core Web Api
Домашние задания: 1
ДЗ
Применение асинхронных методов в приложении.Создание "стороннего" приложения, имеющего функцию бронирования билетов на сайте..
Ещё быстрее, ещё сполчёнее
В данном модуле описываются инструменты интеграции, профилирования, командной работы
Использование Visual Studio Team Services в процессе групповой разработки
Знакомство с инструментами групповой разработки VSTS
Интеграция Visual Studio Team Services и Git. Ветви (branches). Слияние изменений и разрешение конфликтов
Продолжить изучение средств VSTS, углубить понимание процесса групповой разработки, получить опыт работы с ветвями проекта, слиянием изменений кода проектов и разрешения конфликтов при слиянии изменений
Домашние задания: 1
ДЗ
Создание проекта в VSTS, совместная работа в группе.
Конвейеры сборки и релиза версий
Понимание процесса сборки и релиза версий групповых проектов
Хостинг приложений в среде Windows, Linux, в системе Docker
Знакомство с вариантами хостинга ASP.NET Core Web приложений в средах Windows, Linux, в системе Docker
Разворачивание приложений в Microsoft Azure
Получение понимания работы со средой Microsoft Azure в части разворачивания Web приложений
Домашние задания: 1
ДЗ
Разворачивание своего проекта в средах Windows, Docker, Microsoft Azure.
Мониторинг приложений, развернутых в Microsoft Azure
Знакомство с инструментами мониторинга производительности, правильности функционирования приложений, развернутых в среде Microsoft Azure
Взаимодействие приложений на основе систем брокеров сообщений
Понимание технологии информационного обмена в системах брокеров сообщений на примере RabbitMQ
Домашние задания: 1
ДЗ
Создание приложения, взаимодействующего со сторонними системами посредством брокера сообщений.
Использование средств профилирования и диагностики в Visual Studio
Знакомство со встроенными в Visual Studio инструментами профилирования и диагностики приложений
Домашние задания: 1
ДЗ
Проведение анализа производительности своего приложения средствами профилирования и диагностики Visual Studio.
Самое вкусное
Итак, мы долго и плодотворно (надеюсь) рассматривали различные сильные стороны языка и платформы. Пришло время сделать что-то интересное.

В этом модуле вас ждёт ещё более интенсивное общение с преподавателем, и в несколько иной форме: теперь консультации, никаких лекций. Вас ждёт Проект!

Что может быть в проекте? Всё, что вам интересно и подпадает под программу курса. Это может быть проблема по работе, давно волновавшая идея или что-то ещё. В конце концов, вы можете продолжить то, что начали делать в ваших ДЗ. И, пожалуйста, оценивайте реально свои силы - проект по времени планируется примерно как 4 домашних задания.

Вот примеры проектов (базовый VPS с нас):

- облачный десктопный клиент
- редактор документов
- формирователь отчётов
- 3D графический универсальный рисователь чего-нибудь :)
- Web service (инфоресурс, сбор статистики, планировщик)
- программа/сайт бронирования и покупки билетов
- чат-мессенджер на основе Rabbit MQ
- система программных средств, взаимодействующих через брокера сообщений
- и так далее, и тому подобное.

Мы рады будем любой вашей идее.