|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
Описание задачи: есть приложение, генерящее много (100) разных экселей идея - сделать каждый генерящий эксель модуль плагином и выкладывать отдельно, не затрагивая всё приложение и прочие модули сами плагины описаны здесь https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/creating-app-with-plugin-support а вот как их публиковать независимо от прочих модулей? как настроить деплой именно этого отдельного плагина (не руками, а из студии) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 11:47 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
В принципе, можно публиковать каждый отчёт как отдельное приложение... Но как на иисе скажется пара тысяч потенциальных аппликейшенов по всем задачам? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 12:54 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
не стоит городить огород, тем более, что плагины тут нафиг не нужны. Плагины нужны тогда, когда на этапе компиляции не известно, какие модули необходимо загрузить и использовать, потому, что их порядок и количество определяется, к примеру, пользователем или конфигурацией, а не на этапе компиляции. Вам нужно просто сделать инверсию зависимостей. Каждый генератор должен быть изолирован, а взаимодействие с ними осуществляется через единый интерфейс (контракт взаимодействия с генераторами). В котором, к примеру, будет метод Generate(); В класс клиент (класс который использует генераторы), условно это медиатор, эти генераторы передаются в виде списка в конструктор. Либо использовать Builder, который сконфигурирует этот медиатор и передаст в него все генераторы, которые вы в методе построения добавили. Сам класс посредник ничего не знает о реализациях и типах которые в него добавляют, он знает только о контракте и взаимодействует с генераторами через него. Если это ASP.NET Core, можно их оформить как сервисы которые регистрируются в Startup через IServiceCollection, а потом вы их получаете через конструктор и используйте с помощью IoC, в качестве параметра конструктора можно задать IEnumerable<IGenerator>, тогда все сервисы зарегистрированные для этого интерфейса вернутся в виде "списка". Вряд ли в момент выполнения вашей программы этот список необходимо менять. Так все генераторы будут изолированы друг от друга, класс клиент не будет ничего знать о их реализации, он будет знать только то, что можно запустить генерацию. При этом сам класс клиент ничего не инстанцирует, напрямую от них не зависит. Любой генератор можно будет быстро добавить или удалить в конкретном и единственном месте в программе. А плагины вам 100% нафиг не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 13:15 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
нынешняя система клиент-серверная 2003-го года построена в микросервисной, так сказать, архитектуре На момент запуска никто не знает, сколько там будет форм и отчётов Эти настройки в бд Отдеплоили длл или отчёт, внесли инфу в таблицы менюхи - остальной части системы от этого ни холодно ни жарко ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 13:49 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
andreymx а вот как их публиковать независимо от прочих модулей? Смотря какие инструменты у вас есть. Какие у вас есть инструменты для девопс? andreymx как настроить деплой именно этого отдельного плагина (не руками, а из студии) За деплой из студии нужно бить по рукам. Закидываете в репу, билд сервер собирает в нугет, паблишит на сервер артефактов. Хреновина, которая отвечает за делой, получает команду на деплой, или триггерится на появление артефакта и катит куда надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 22:09 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
andreymx Отдеплоили длл или отчёт, внесли инфу в таблицы менюхи - остальной части системы от этого ни холодно ни жарко Вообще, для этого существуют сервера и порталы отчётности. Отчёт вообще можно дизайнить прям в веб и не заниматься хернёй ) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 22:10 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
hVostt andreymx а вот как их публиковать независимо от прочих модулей? Смотря какие инструменты у вас есть. Какие у вас есть инструменты для девопс? andreymx как настроить деплой именно этого отдельного плагина (не руками, а из студии) За деплой из студии нужно бить по рукам. Закидываете в репу, билд сервер собирает в нугет, паблишит на сервер артефактов. Хреновина, которая отвечает за делой, получает команду на деплой, или триггерится на появление артефакта и катит куда надо. что деплой из студии только на дев а все остальное по процессу но как настроить процесс для выкладывания одного плагина? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 22:21 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
hVostt andreymx Отдеплоили длл или отчёт, внесли инфу в таблицы менюхи - остальной части системы от этого ни холодно ни жарко Вообще, для этого существуют сервера и порталы отчётности. Отчёт вообще можно дизайнить прям в веб и не заниматься хернёй ) как юзеру навебдизайнить эксель? SSRS ему не подходит, и даже павербиай ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 22:22 |
|
публикация плагинов в нет кор 3.0
|
|||
---|---|---|---|
#18+
andreymx но как настроить процесс для выкладывания одного плагина? Я ж описал. В общих чертах. А конкретно как, можете только вы сказать, так как знаете что у вас там и как. andreymx ок как юзеру навебдизайнить эксель? SSRS ему не подходит, и даже павербиай Ну как. Если совсем прям просто и тупо... Берём FastReport. Создаём отчёт, цепляемся к источнику данных, дизайним отчёт, сохраняем файл frx. Заходим на портал в раздел отчётов. Нажимаем "добавить отчёт". Заливаем свой frx. Видим появившийся отчёт, нажимаем опубликовать. Это вообще пользовательский сценарий, где никакого деплоя не нужно. Каждый юзер с правами, может сказать файл отчёта, поправить и залить новую версию, или создать с нуля и завести новый отчёт. Так как frx файлы могут содержать в принципе любой код на C#, продвинутый юзер может много чего наворотить при желании. Вариантов дофига, зависит от целей, возможностей и требований. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 22:32 |
|
|
start [/forum/topic.php?fid=18&fpage=6&tid=1354647]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 386ms |
0 / 0 |