Wix UI условные рекомендации - PullRequest
1 голос
/ 24 июня 2009

У меня есть довольно сложный установщик, который я пишу в Wix, который имеет множество пользовательских диалоговых параметров, основанных на том, какие компоненты вы устанавливаете. Как правило, по умолчанию все в порядке, и, следовательно, автоматическая установка будет успешной, но наличие этой настройки помогает.

Что мне интересно, так это то, каковы лучшие практики в Wix для выполнения условий UI? Я заметил, что Wix оценивает все теги <Publish> независимо от того, оценил ли последний из них значение true, что приводит к большому количеству кода, подобного следующему:

<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component1Questions" Order="1">INSTALLCOMPONENT1</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component2Questions" Order="2">NOT INSTALLCOMPONENT1 AND INSTALLCOMPONENT2</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component3Questions" Order="3">NOT INSTALLCOMPONENT1  AND NOT INSTALLCOMPONENT2 AND INSTALLCOMPONENT3</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">NOT INSTALLCOMPONENT1  AND NOT INSTALLCOMPONENT2 AND NOT INSTALLCOMPONENT3</Publish>

И аналогично в разделах «назад» для каждого диалога. Является ли это наилучшей практикой для этого? Существует ли способ оценки короткого замыкания элементов публикации и выбора первого, возвращающего значение true?

Ответы [ 2 ]

2 голосов
/ 25 июня 2009

Вы уже используете элемент Publish / @ Order, чтобы упростить код, однако я бы посоветовал быть максимально явным.

Вы все равно можете упростить логику и не беспокоиться о стоимости ордера ...

<Publish ... Value="Component1Questions">CMP1 And Not (CMP2 Or CMP3)</Publish>
<Publish ... Value="Component2Questions">CMP2 And Not (CMP1 Or CMP3)</Publish>
<Publish ... Value="Component3Questions">CMP3 And Not (CMP1 Or CMP2)</Publish>
<Publish ... Value="VerifyReadyDlg">Not (CMP1 Or CMP2 Or CMP3)</Publish>
0 голосов
/ 01 июля 2009

Я до сих пор не знаю, хорошая ли это практика или нет, но я получаю те же результаты с чем-то вроде этого:

<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component1Questions" Order="4">INSTALLCOMPONENT1</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component2Questions"  Order="3">INSTALLCOMPONENT2</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component3Questions" Order="2">INSTALLCOMPONENT3</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1">1</Publish>

Я имею в виду, поменять порядковые номера и забыть о составлении условий. В конце концов, количество условий у вас одинаковое, но оно гораздо более легко обслуживаемо и читаемо. Конечно, это означает, что возникает более одного события «NewDialog», но отображается только последнее. Кто-нибудь знает какие-либо веские причины не делать этого?

...