Расширяемое ПО: пишем поддержку плагинов в .NET приложении | OpenSource продукт QueryPressure с нуля
- Видео
- О видео
- Скачать
- Поделиться
Расширяемое ПО: пишем поддержку плагинов в .NET приложении | OpenSource продукт QueryPressure с нуля
4, 318 | 2 год. назад | 170 - 0
Есть программы, что запакавали поставили и все. Но настоящии экосистемы создают программы, что поддеживают расширяемость, позволяя создавать плагины и расширения. Иногда это выростает в целые маркетплейсы даже.
Примеров тьма: от многострадальной и патченной перепатченной GTA Vice City, до могучего и ужасного MS Office с Visual Studio, Jira, Adobe Premiere и еще сотен продуктов где-то посередине.
По сути, если копаться, то плагины для конечной программы это реализация того же Open Closed из SOLID.
Это стрим из цикла, где пилим QueryPressure - тулу для нагрузочного тестирования заточенную под базы данных.
Там уже есть фундамент: разные профили нагрузки, пара метрик. В этом стриме придется уже добавить архитектуру. Иначе поддержку плагинов не получить.
Потому этот стрим будет из двух частей:
1. О плагинах в целом и как их делать в .NET, заодно пример приведения приложения в состояние в котором соблюден Open-Closed на примере чего-то простого. О том как плагины взаимодействуют с хостовым приложением и как могут взаимодействовать между собой.
2. Добавляем поддержку этой системы в Query Pressure на примере 2х плагинов: плагин метрик и плагин-коннектор к какой-то базе, например MySQL.
Прошлые стримы:
- первый стрим - выстраиваем фундамент
- второй стрим - выстраиваем вертикаль
Таймкоды:
0:00 - вступление
1:10 - Тема стрима и презентация.
4:09 - Примеры софта с плагинами и аддонами.
7:40 - Включили свет.
10:53 - Мониторы бутербродом?
11:13 - MEF и MAF который умер.
13:50 - Component Object Model (COM) .
15:04 - Cпособы разработки plug-in.
18:50 - Language Server Protocol .
21:38 - Взаимодействие plug-in и приложения.
30:16 - Инструменты для разработки плагинов в .NET.
35:00 - Плагин для кастомного калькулятора.
41:25 - Динамическая загрузка сборок в .NET и Mono.Cecil .
44:45 - Обзор модулей калькулятора.
46:54 - Как выглядит plug-in?
51:28 - Debug plug-in.
53:22 - Добавление Operands и IInputService .
57:16 - Имплементация паттерна - Strategy .
1:00:25 - DI и Декоратор.
1:03:00 - Шина приложения и MediatR .
1:11:17 - PropertyProvider .
1:19:46 - Обзор войны в Украине, ситуации в городе и жизни после.
1:23:46 - Обзор Query Pressure tool .
1:32:25 - @Ivan Tsaryov зашел в чат.
1:33:56 - Добавляем поддержку плагинов и пропитый DI.
1:34:45 - Делаем нормальный DI при помощи Autofac .
1:40:17 - Чем полезно это видео?
1:47:43 - My Ass
1:48:39 - class AppModule .
1:55:50 - Исправление ошибок после имплементации DI.
1:59:27 - Подпишись, стань спонсором и лайк.
2:00:48 - Commit и Push.
2:01:05 - Добавляем поддержку MySql в виде plug-in.
2:02:49 - Конкурс на сертификат от JetBrains.
2:12:12 - class MySqlExecutor .
2:15:30 - развертывание MySQL в Docker.
2:22:41 - Добавление функционала загрузки плагинов в QueryPressure .
2:28:21 - class ConnectionProviderBase и ConnectionPool .
2:37:06 - Обобщение братьев-Executor’ов .
2:43:54 - Подвод итогов стрима, commit и push.
2:45:03 - Анонс следующего стрима.
2:49:33 - Краткий обзор дискуссии в чате.
2:51:27 - Благодарность спонсорам.
2:53:15 - Ответ на вопрос из чата.
Чтобы скачать видео "Расширяемое ПО: пишем поддержку плагинов в .NET приложении | OpenSource продукт QueryPressure с нуля" передвинте ползунок вправо
- Комментарии
Комментарии ФБ