Мы разрабатываем две версии приложения. Не в смысле облегченной или стандартной версии приложения, где одна версия будет иметь ограниченную функциональность и т. Д. На самом деле мы будем отображать различные типы информации в приложении в зависимости от версии (это лучший способ описать это без вдаваясь в слишком много деталей).
Чтобы различать две версии приложения, которые мы рассмотрели, использовали условный атрибут и директиву #if (если есть какие-либо другие варианты или лучший способ, чем эти две, я открыт для предложений). После некоторых исследований и дебатов мы решили использовать подход #if, так как он не будет включать ненужный код во время процесса компиляции (тогда как условный атрибут просто удалит вызовы методов, которые не удовлетворяют условию, но все же включайте методы ... если я не ошибаюсь). Я понимаю, что они не являются взаимоисключающими, поэтому мы всегда можем смешивать и сопоставлять, если это будет необходимо.
В любом случае ... Что нам сейчас интересно, так это если есть способ только включить определенные формы окон во время компиляции, основываясь на том, какую версию приложения мы компилируем. Мы разделили всю логику, поэтому формы на самом деле являются просто формами с очень небольшим количеством кода внутри (в основном это просто вызовы классов диспетчера форм, которые обрабатывают всю бизнес-логику). Классы диспетчера форм будут содержать некоторые операторы #if внутри них, поэтому код можно повторно использовать в обеих версиях приложения, когда это возможно (вместо создания двух классов и помещения условного атрибута в классы ... хотя, возможно, это то, что мы должны учитывать).
Кто-нибудь знает хороший способ сделать это?
1011 * ТИА *
UPDATE:
Просто к вашему сведению то, что мы на самом деле решили сделать. Мы поместили разные версии форм в отдельные пространства имен, а затем нам пришлось использовать только оператор #if вокруг пространства имен, используя оператор в верхней части класса, который управляет всеми формами. Работал довольно гладко и очень ласково.