Что вас больше всего беспокоит? Четкое представление о ваших приоритетах поможет принимать решения на высоком уровне.
Если идея заключается в том, что третьи стороны могут создавать и добавлять свои собственные "приложения" или модули, вам нужно подумать о том, что им может понадобиться.
Что касается шаблонов и принципов, существует целый плот, который вы, вероятно, должны учитывать, и даже больше, чем обычно: применяются инверсия зависимостей, стабильные абстракции и принципы стабильной зависимости.
В мире .Net вы можете получить много пробега из атрибутов , и Reflection также может помочь.
Если вам нужен пример , это может помочь : это крошечная CMS с открытым исходным кодом .Net, над которой я работал (неполный рабочий день) последние несколько лет. Я также недавно опубликовал «Архитектуру», за которой, в основном, следует, что здесь .