For business logic, I would abstract the differences in individual libraries, and then you can use the IoC / DI template or the provider template to solve the right business logic at runtime.
Regarding content, I would consider topics. Essentially, you could build an assembly server once each time, and then when you pack the code that you choose, which assemblies you need and use the appropriate configuration, and select the appropriate theme folder for the client at hand.
I do not like to use # directives in this case. If you think about it, your unit tests will need to be performed for each conditional case. If you remove the conventions and abstract the differences, your test tests can run immediately on all plug-in assemblies.
source
share