Предположим на мгновение, что вы создаете коммерческий продукт для SharePoint. Этот продукт будет предлагаться как в версии Community (бесплатная), так и в версии Enterprise (платная).
База кода для версии Community - это подмножество с небольшими дельтами, которые обрабатываются с помощью операторов (C #) #define. Фактически это единая кодовая база. В процессе сборки создаются два решения (каждое из которых содержит две функции), по одному для каждого выпуска.
Невозможно установить оба выпуска в ферме одновременно. Текущая бизнес-модель предлагает версию сообщества / бесплатную только для ферм SharePoint с одним сервером. Это предназначено для поддержки отдельных лиц и сценариев развития.
Решения включают в себя множество функциональных элементов, но в настоящее время не содержат веб-частей. Возможно, что одна или несколько веб-частей могут быть включены в будущий выпуск. Любой подход, ограничивающий содержание решения / функции, вероятно, не лучшая идея в долгосрочной перспективе.
В какой степени вы бы повторно использовали идентификаторы решений и / или функций в разных редакциях? Почему?