Создание веб-приложения, которое можно расширить с помощью плагинов/модулей.
-
24-09-2019 - |
Вопрос
В настоящее время я занимаюсь разработкой веб-приложения, подобного C# CMS, которое будет использоваться для стандартизации разработки веб-сайтов.С самого начала идея заключалась в том, чтобы сделать ядро как можно более простым, чтобы избежать сложности и перегрузки меню/опций, которая портит многие системы CMS.Теперь это простое ядро готово и работает очень хорошо.
Мы предполагали, что система сможет принимать плагины или модули, которые расширят базовую функциональность в соответствии с потребностями конкретного проекта.Их также можно будет повторно использовать в разных проектах.Например, может потребоваться базовый каталог и корзина для покупок.Весь код таких расширений должен находиться в отдельных сборках.Они должны иметь возможность предоставлять свои собственные интерфейсы администратора и внешний код из этой библиотеки.Система должна выполнить поиск доступных плагинов и предоставить администратору возможность включить/отключить эту функцию.(Все это очень похоже на плагины WordPress)
Крайне важно правильно решить эту проблему, поэтому я стараюсь провести как можно более тщательную проверку, прежде чем приступить к делу.
Мне известен шаблон плагина (http://msdn.microsoft.com/en-us/library/ms972962.aspx) и прочитал несколько статей о его использовании.Это кажется разумным, но я не уверен, что это обязательно правильный/лучший метод для данной ситуации.Кажется, он больше подходит для обработки приложений (манипуляции с изображениями/аудио, математика и т. д.).
Существуют ли какие-либо другие варианты достижения такой функциональности расширяемости пользовательского интерфейса?Или лучше использовать шаблон плагина?
Мне также было бы интересно, есть ли у кого-нибудь ссылки на статьи, в которых объясняется использование шаблона плагина для этой цели?
Решение
Платформа управляемой расширяемости (MEF) обеспечивает способ, специально ориентированный на создание компонуемых и расширяемых приложений.Он находится в Codeplex для .net 3.5 и будет включен в состав .net 4, когда он будет выпущен здесь через пару недель.Это поможет обеспечить сантехнику, которая вам понадобится для того, что вы пытаетесь сделать.