Система модулей и плагинов ASP.NET MVC Core

419
22 января 2017, 13:29

Мы делаем CMS, и хотим сделать возможность плагинов для неё. Например: есть статья, и плагин с помощью которого к статье можно ставить лайки. Так вот, как организовать плагинность проекта.

Я понимаю как я могу делать встраивание плагина в действие+вьюшку. Можно сделать так: У плагина есть функция, например AddLikestToArticle У неё аттрибут [PluginModule(ToAction: "ActionName", ToController: "ControllerName")] Далее при подключении плагина, все функции с данным атрибутом регистрируются в системе. В момент вызова дейтсивя ActionName после того как оно уже веруно HTML результатя парсю в HTML DOM этот результат и вызываю AddLikestToArticle применяю его к полученному результату.

Но как сделать плагин к классам, и в особенности к классам которые хранятся в базе данных черезе EF. Плагин может расширять классы (добавлять столбы в таблицы), или даже добавлять новые классы. Как быть с DbContext, как его расширять плагином?

Меня интересуют все подходы которые могут быть. Есть ли какие-то готовые системы для плагинности/модульности?

Как пока я думаю это можно сделать. Расширять классы через наследование. При этом у каждого модуля может быть свой класс наследник. Остаётся вопрос как теперь собрать (максимально широкий) DbContext. Я думаю можно собрать этот файл через код, то есть собрать его код автоматически и потом на-лету скомпилировать, и через IoC использовать именно его.

READ ALSO
Что не так с моим кодом? MVVM

Что не так с моим кодом? MVVM

При нажатию на кнопки в ItemsControl'е слева должно генерироваться поле в соответствии с данными в левом поле размерами,но поле не генерируются...

360
Остановка стороннего метода по таймеру c#

Остановка стороннего метода по таймеру c#

Есть метод сторонней библиотекиОн обращается к серверу и либо получает данные и завершается, либо через 10 секунд автоматически закрывается

381
Обработка xml-файла linq и добавление его в DataGridView

Обработка xml-файла linq и добавление его в DataGridView

Необходимо обработать xml файл через Linq и добавить его в dgwFirstTable(DataGridView), например, добавить все записи, где YEAR>=1985Не могу сообразить как обращаться...

493
Пропадает текст из яйчейки в DataGridView

Пропадает текст из яйчейки в DataGridView

Собственно не могу понять почему происходит непонятное явление, при инициализации грида текст в ячейке появляется и сразу же исчезает

351