Я участвую в нескольких проектах с открытым исходным кодом, которые в совокупности обеспечивают основу для разработки приложений. У меня вопрос, какой механизм (а) я должен предоставить для их интеграции друг с другом?
На концептуальном уровне ответ ясен - DI / IoC. «Единственная» проблема - решить, какая именно. В нескольких установках мы использовали StructureMap, но затем появился пользователь, который хотел только один из компонентов и хотел NInject.
Итак, чтобы уточнить вопрос, как мне следует строить свои компоненты так, чтобы они могли быть интегрированы друг с другом (и третьей стороной) с использованием различных контейнеров DI / IoC.
Лучшее, что я мог придумать, это разделить весь код интеграции на отдельные проекты и затем создать проект для каждого поддерживаемого контейнера IoC, но это звучит подозрительно, как квадрат IoC.
Какие-нибудь яркие идеи? или я просто слишком много думаю?
P.S. для любопытных: Нджанго ; Bistro ; Сервер рабочих процессов