Я пытаюсь выяснить, какой из них лучше всего подходит для нашего проекта.
Библиотека PCL или общий проект от Xamarin.
В документации по документации Xamarin здесь говорится, что эмпирическое правило состоит в том, чтобы выбрать общий проект, когда мы не будем делиться библиотекой. Общий проект можно записать с помощью #if, чтобы убедиться, что он работает с несколькими платформами - это также вызывает некоторые проблемы с рефакторингом #ifs неактивны.
Но у меня есть ощущение, что неправильно вводить этот код в общий класс. Если код, который должен быть доступен для мобильных платформ Windows, Android и IOS, использует общий проект вместо PCL - это означает, что мы используем #if внутри общего проекта вместо написания кода конкретной платформы в конкретном проекте платформы.
Это пытается поддерживать элементы non PCL через #ifs и сделать общий код более сложным и сложным в обслуживании. Разве это не должно быть сделано Xamarin для улучшения .NET PCL-кода?
А также это означает, что мы добавляем специфические для платформы функции в общем проекте, а не в конкретный проект платформы, т.е. скрываем сложность для конкретной платформы из самого проекта платформы - что кажется неправильным с точки зрения архитектуры.
Я прав (в этом случае я противоречил документации Xamarin), или я что-то не хватает?