Моя компания в настоящее время находится в процессе создания большого многоуровневого программного пакета на C #. Мы применили SOA-подход к структуре, и мне было интересно, есть ли у кого-нибудь какие-либо советы относительно того, как сделать его расширяемым пользователями со знаниями в области программирования.
Это может включать двоякий процесс: утверждение администратором производственной системы разрешения на использование определенного плагина, а также фактической архитектуры самого плагина.
Мы хотим, чтобы пользователи могли писать сценарии для выполнения общих задач, изменять макет пользовательского интерфейса (написанный в WPF) и добавлять новые функциональные возможности (т. Е. Разрешать составление диаграмм табличных данных). У кого-нибудь есть какие-либо предложения о том, как это осуществить, или кто-нибудь знает, где можно получить знания, чтобы делать такие вещи?
Я думал, что это было бы идеальным примером для выпуска программного обеспечения с открытым исходным кодом с ограничительной лицензией на распространение, однако я не заинтересован в том, чтобы предоставить конкурентам доступ к нашему исходному коду.
Спасибо.
РЕДАКТИРОВАТЬ: Думаю, я просто уточнить, чтобы объяснить, почему я выбрал ответ, который я сделал. Я имел в виду администраторов производства, внешних по отношению к моей компании (то есть клиента), и дал им возможность как-то проще автоматизировать / создавать сценарии, не требуя от них полного знания c # (в основном это конечные пользователи с ограниченным программированием опыт) - я больше думал о DSL. Это может быть недостижимой целью, и инфраструктура Managed Extensibility, похоже, предлагает лучший компромисс на данный момент.