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