Подтвердить что ты не робот

В чем преимущество использования переносимых библиотек классов вместо использования "Добавить как ссылку"?

Кто-нибудь объясняет мне, в чем преимущество использования переносимых библиотек классов вместо использования "Добавить как ссылку"?

Спасибо

4b9b3361

Ответ 1

Недостатки связанных файлов:

  • Добавить как ссылку может быть сложно поддерживать, особенно при масштабировании нескольких проектов и многих исходных файлов. Инструмент (например, Project Linker для Visual Studio 2010 или проведение ALT при перетаскивании в Visual Studio 2012) может сделать это проще.
  • Инструменты рефакторинга не работают со связанными файлами. Например, если вы переименуете класс или метод в связанном файле, инструменты рефакторинга не будут обновлять ссылки на другие связанные копии этого API.
  • При редактировании кода в связанном файле intellisense может показать вам API, которые недоступны на всех платформах, к которым связан файл.
  • Visual Studio предоставит вам окно с сообщением "Этот документ открывается другим проектом" при попытке открыть связанный файл, уже открытый другим проектом.
  • В результате вы получите отдельную DLL для каждой платформы. Если вы создаете многократно используемую библиотеку, которую вы хотели бы поделиться с другими, ее было бы проще распространять, если бы была только одна ее версия, а не отдельная для каждой платформы.

Недостатки портативных библиотек классов:

  • Вы ограничены API-интерфейсами, которые доступны на всех платформах, на которые настроены таргетинг. Вы не можете использовать условную компиляцию (инструкции #if), чтобы обойти различия между платформами.
  • Трудно понять, какие API поддерживаются на данной комбинации платформ. Вот таблица, которая может помочь с этим: Список API-библиотеки переносных классов

Для получения некоторых рекомендаций о том, как использовать библиотеки Portable Class, см. следующее:

В то время как я частично отношусь к портативным библиотекам классов (как член команды PCL), связанные файлы также являются полностью действующим способом совместного использования кода, и если вы не сталкиваетесь или не возражаете против недостатков, тогда и используйте связанные исходные файлы. В основном я использую библиотеки Portable Class, но я все еще использую связанные исходные файлы, когда PCL не подходят.