Каковы наилучшие методы написания кода, который можно скомпилировать на .NET(windows) и Mono (linux)? Хотя я очень хорошо знаком с .NET, я не настолько опытен в Mono и все его gotchas. Кто-нибудь видел хорошую запись в блоге или рекомендации по этому поводу, которые я не смог выкопать? Я буду придерживаться функций уровня С# 3.0.
Вещи, которые меня интересуют, это прежде всего Interop, так как мне нужно будет вызвать собственный код. Далее были бы лучшие способы обработки пространств имен, таких как Mono.XXX. Должен ли я использовать кучу #if? Изолировать код в каждой платформе?
Любые предложения по архитектуре и дизайну будут очень признательны! Если у вас есть опыт перекрестной компиляции для Linux/Mono в visual studio (любая версия), мне также было бы интересно.