Мы делаем CMS, и хотим сделать возможность плагинов для неё. Например: есть статья, и плагин с помощью которого к статье можно ставить лайки. Так вот, как организовать плагинность проекта.
Я понимаю как я могу делать встраивание плагина в действие+вьюшку. Можно сделать так:
У плагина есть функция, например AddLikestToArticle
У неё аттрибут [PluginModule(ToAction: "ActionName", ToController: "ControllerName")]
Далее при подключении плагина, все функции с данным атрибутом регистрируются в системе.
В момент вызова дейтсивя ActionName
после того как оно уже веруно HTML результатя парсю в HTML DOM этот результат и вызываю AddLikestToArticle
применяю его к полученному результату.
Но как сделать плагин к классам, и в особенности к классам которые хранятся в базе данных черезе EF
. Плагин может расширять классы (добавлять столбы в таблицы), или даже добавлять новые классы. Как быть с DbContext
, как его расширять плагином?
Меня интересуют все подходы которые могут быть. Есть ли какие-то готовые системы для плагинности/модульности?
Как пока я думаю это можно сделать. Расширять классы через наследование. При этом у каждого модуля может быть свой класс наследник. Остаётся вопрос как теперь собрать (максимально широкий) DbContext. Я думаю можно собрать этот файл через код, то есть собрать его код автоматически и потом на-лету скомпилировать, и через IoC использовать именно его.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При нажатию на кнопки в ItemsControl'е слева должно генерироваться поле в соответствии с данными в левом поле размерами,но поле не генерируются...
Есть метод сторонней библиотекиОн обращается к серверу и либо получает данные и завершается, либо через 10 секунд автоматически закрывается
Необходимо обработать xml файл через Linq и добавить его в dgwFirstTable(DataGridView), например, добавить все записи, где YEAR>=1985Не могу сообразить как обращаться...
Собственно не могу понять почему происходит непонятное явление, при инициализации грида текст в ячейке появляется и сразу же исчезает