Расширяемое ПО: пишем поддержку плагинов в .NET приложении | OpenSource продукт QueryPressure с нуля

  • Видео
  • О видео
  • Скачать
  • Поделиться

Расширяемое ПО: пишем поддержку плагинов в .NET приложении | OpenSource продукт QueryPressure с нуля

Есть программы, что запакавали поставили и все. Но настоящии экосистемы создают программы, что поддеживают расширяемость, позволяя создавать плагины и расширения. Иногда это выростает в целые маркетплейсы даже. Примеров тьма: от многострадальной и патченной перепатченной GTA Vice City, до могучего и ужасного MS Office с Visual Studio, Jira, Adobe Premiere и еще сотен продуктов где-то посередине. По сути, если копаться, то плагины для конечной программы это реализация того же Open Closed из SOLID. Это стрим из цикла, где пилим QueryPressure - тулу для нагрузочного тестирования заточенную под базы данных. Там уже есть фундамент: разные профили нагрузки, пара метрик. В этом стриме придется уже добавить архитектуру. Иначе поддержку плагинов не получить. Потому этот стрим будет из двух частей: 1. О плагинах в целом и как их делать в .NET, заодно пример приведения приложения в состояние в котором соблюден Open-Closed на примере чего-то простого. О том как плагины взаимодействуют с хостовым приложением и как могут взаимодействовать между собой. 2. Добавляем поддержку этой системы в Query Pressure на примере 2х плагинов: плагин метрик и плагин-коннектор к какой-то базе, например MySQL. Прошлые стримы: https://youtu.be/idmPIzlw2WU - первый стрим - выстраиваем фундамент https://youtu.be/TVhfflXoZyA - второй стрим - выстраиваем вертикаль Таймкоды: 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 - Ответ на вопрос из чата.
4, 318   |   2 год. назад  |   170 - 0
 

Расширяемое ПО: пишем поддержку плагинов в .NET приложении | OpenSource продукт QueryPressure с нуля

Скачайте изображение (превью) выбрав качество


320x180 480x360 640x480 1280x720

Есть программы, что запакавали поставили и все. Но настоящии экосистемы создают программы, что поддеживают расширяемость, позволяя создавать плагины и расширения. Иногда это выростает в целые маркетплейсы даже.
Примеров тьма: от многострадальной и патченной перепатченной 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 с нуля

Чтобы скачать видео "Расширяемое ПО: пишем поддержку плагинов в .NET приложении | OpenSource продукт QueryPressure с нуля" передвинте ползунок вправо



Покажите вашим друзьям, добавьте в соцсети

Ссылка на страницу с видео:

 

Ссылка HTML на страницу с видео:

 

Код для вставки плеера:


  • Комментарии

Комментарии ФБ


Уважаемые друзья!

Источником всего видеоконтента, в том числе проигрывающегося на страницах ресурса ruslar.me, является сторонний видео ресурс, а именно общедоступный видеохостинг YouTube.com, предоставляющий открытый доступ к своему видеоконтенту (используя открытую и общедоступную технологию video API3 youtube.com)!

Проблемы с авторскими правами

Если вам принадлежат авторские права на данное видео, которое было загружено без вашего согласия на YouTube.com, перейдите на страницу этого видео сайта YouTube.com , нажмите на ссылку под проигрывателем Ещё -> "Пожаловаться" -> "Нарушение моих прав" и в выпадающем меню, выбирите, что именно нарушается и нажмите кнопку "Отправить".



Неприемлемый контент

Чтобы сообщить о неприемлемом видео, перейдите на YouTube, нажмите на ссылку под проигрывателем Ещё -> "Пожаловаться" и выберите в "Сообщить о нарушении" что именно вас не устраивает в этом видео. Подробнее о наших правилах читайте в Условиях использования.