Как создавать настраиваемые приложения в .Net? - PullRequest
0 голосов
/ 17 мая 2011

Мы создаем приложение LOB Thick WPF Client / WCF Server. Мне нужно создать архитектуру, которая позволяет «подключаемым» рабочим процессам на стороне клиента, чтобы упростить бизнес-продажи для гибкости каждого клиента.

Однако в .Net добавление проектов в решение для каждой модификации клиента и почти для каждого компонента, который считается «заменяемым», в лучшем случае кажется опасным.

Альтернатива, которая приходит в голову, - абстрагировать все классы от интерфейса и позволить конфигурации передавать правильную реализацию.

Тогда есть логистическая перспектива: как вам лучше всего управлять этим, например, в управлении исходным кодом?

Каким опытом вы можете поделиться и какие варианты знаете?

PS: На самом деле я не стремлюсь к расширяемости. Мне нужно, чтобы существующие функции были "настраиваемыми". Такие вещи, как изменение порядка страниц в мастере. Я думаю, что предложение Колина о конфигурации, возможно, будет лучшим вариантом. Но помимо этого?

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Поскольку кажется, что у вас есть идея о том, как создать плагин, я просто дам вам свой путь для "логистической" части.Создайте сборку для точек расширения, т.е. должны реализовывать плагины интерфейсов, и иметь ее в качестве уникальной общей ссылки между основной оболочкой и плагином varius.Если механизм расширения растет, попробуйте сохранить старые интерфейсы, чтобы не сломать существующие плагины.

0 голосов
/ 17 мая 2011

Взгляните на структуру управляемой расширяемости:

http://mef.codeplex.com/

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

Это решает проблему сборки компонентов для конкретного клиента. Однако, похоже, что вы хотите, чтобы конфигурация клиента была на уровне компонентов, а не только какие компоненты у клиента.

Я бы не рекомендовал использовать в своем проекте код, специфичный для клиента, со временем он станет неуправляемым как с точки зрения объема кода, так и с точки зрения тестируемости. Вместо этого постройте конфигурацию с первого дня. Другими словами, для каждого компонента имеется ряд параметров конфигурации, которые можно использовать для его настройки для каждого клиента.

(В настоящее время я работаю над приложением, которое используется ~ 400 партнерами White Label, каждый из которых имеет свою собственную конфигурацию!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...