Как я могу сделать программу для поддержки пользовательских требований для нескольких клиентов с одной кодовой базой? - PullRequest
1 голос
/ 08 сентября 2011

Как гласит заголовок, я ищу способ организовать код с различными «настройками» клиента, которые управляют логикой программы и иногда отображают логику, не вводя гнезда веток if / else как в клиенте (javascript), так и сервер (C #).

Какие механизмы мне нужно выбрать для создания серии модулей, используемых для проверки, видимости полей, правил обработки и т. Д., Которые могут загружаться динамически на основе, скажем, имени пользователя или другого бита данных клиента? Я знаю о IOC, мне нужно что-то более конкретное, чем «настраиваемые модули». Существуют ли библиотеки, обеспечивающие структуру для организации кода и его условной загрузки?

А как насчет JavaScript? Существуют ли хорошо известные механизмы динамической загрузки javascript из небольших файлов для условного выполнения?

Прежде всего, есть ли название для того, что я описываю? Мне не нужен механизм правил или механизм принятия решений, где код хранится в виде набора значений и операторов. Я хочу сохранить код в его исходных файлах. Я также хочу использовать строгую типизацию и интерфейсы там, где могу.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Вы должны взглянуть на любой (или оба) из

Вот документы MSDN в пространстве имен System.Addin: http://msdn.microsoft.com/en-us/library/gg145020.aspx

В этом обсуждении говорится о разнице между MEF и System.Addin: Выбор между MEF и MAF (System.AddIn)

Разводка и конфигурация вашей системы расширения, конечно, сильно зависит от домена.

Удачи!

0 голосов
/ 08 сентября 2011

Если вы хотите использовать строгую типизацию и интерфейсы, то почему бы просто не пойти по этому пути? Вы можете создать интерфейс, который определяет вызываемые методы для вашей индивидуальной клиентской логики, а затем создать классы реализации для каждого из них. Таким образом, в подпрограмме запуска системы будет только один фрагмент условной логики, возможно, оператора switch, который загружает правильную реализацию.

...