Я бы предложил библиотеку для каждой платформы. Позвольте мне объяснить.
Скажем, полный .NET Framework
включает в себя набор функций, методов, которые не являются частью .NET Compact Framework
, как тот, который вы можете найти с Windows CE
и смартфонами. Итак, чтобы в полной мере воспользоваться всеми возможностями каждой платформы, я бы использовал общую библиотеку с множеством интерфейсов, а затем реализовал бы эти интерфейсы в библиотеке классов .NET Framework platform specific
, которая позволит вам в полной мере использовать преимущества предлагается на определенной платформе.
С другой стороны, при обычном повторном использовании кода и в целях удобства обслуживания вы можете предпочесть использовать одну единственную библиотеку "сделай все". В соответствии с такими требованиями вам необходимо полностью осознавать все различия между многими платформами, которые вы хотите поддерживать.
Это, очевидно, важный вопрос анализа и архитектуры, поскольку обе они будут страдать от недостатков одной платформы над другой.
Вот как бы я поступил перед такой ситуацией:
- Я бы исследовал различия между платформой .NET Framework;
- Я бы отложил все (по мере необходимости) общие объекты, которые, по вашему мнению, вам могут понадобиться;
- Я бы выделил различия, то есть объекты, которые вы можете использовать на одной платформе, но не на другой;
Это органический анализ, который вам нужно будет выполнить, чтобы увидеть, что будет дальше.
То есть для какого-то подхода к водопаду.
Что касается подхода Scrum, если я могу так сказать, поскольку это предполагает эмпиризм, я бы сказал, попробуйте одну общую библиотеку для них всех и посмотрите, что вы можете сделать. Если вы сталкиваетесь с некоторыми вещами, которые вы абсолютно не можете сделать, то может быть уместно создать только другую библиотеку классов, которая будет зависеть от вашей библиотеки «сделай все», чтобы у вас был общий блок для каждой платформы, а затем некоторые другие конкретные библиотеки для того, что вы не можете сделать в общем. Сделайте это и посмотрите, какие преимущества вы получили от этого, и найдите выход из беды, когда придет время быть более конкретным.