Создание веб-приложения, которое можно расширить с помощью плагинов / модулей - PullRequest
2 голосов
/ 06 апреля 2010

В настоящее время я занимаюсь разработкой C # CMS-подобного веб-приложения, которое будет использоваться для стандартизации нашей разработки веб-сайтов.С самого начала идея состояла в том, чтобы максимально упростить ядро, чтобы избежать сложности и перегрузки меню / опций, которые портят многие системы CMS.Это простое ядро ​​теперь завершено и работает очень хорошо.

Мы предполагали, что система сможет принимать плагины или модули, которые будут расширять функциональность ядра в соответствии с потребностями заданных проектов.Они также могут быть повторно использованы в разных проектах.Например, может потребоваться базовый каталог и корзина для покупок.Весь код для таких расширений должен быть в отдельных сборках.Они должны иметь возможность предоставлять свои собственные интерфейсы администратора и интерфейсный код из этой библиотеки.Система должна найти доступные плагины и дать администратору возможность включить / отключить эту функцию.(Это все очень похоже на плагины WordPress)

Очень важно, чтобы мы правильно атаковали эту проблему, поэтому я пытаюсь выполнить как можно более тщательную проверку, прежде чем прыгать.

Мне известно о шаблоне плагинов (http://msdn.microsoft.com/en-us/library/ms972962.aspx)), и я прочитал несколько статей о его использовании. Это кажется разумным, но я не уверен, что это обязательно правильный / лучший метод для этой ситуации. Он кажется более подходящим дляобработка приложений (манипуляции с изображениями / аудио, математика и т. д.).

Существуют ли другие варианты для достижения такого рода функциональности расширяемости пользовательского интерфейса? Или шаблон плагинов - это путь?Также было бы интересно, есть ли у кого-нибудь ссылки на статьи, объясняющие использование шаблона плагина для этой цели?

1 Ответ

1 голос
/ 06 апреля 2010

Управляемая инфраструктура расширяемости (MEF) предоставляет способ, специально ориентированный на создание компонуемых и расширяемых приложений. Он находится на codeplex для .net 3.5 и будет поставляться в комплекте с .net 4, когда он будет выпущен через пару недель. Это поможет обеспечить сантехнику, которая вам понадобится для того, что вы пытаетесь сделать.

...