любой известный Дельфи выходит для тестирования на совместимость Windows 7

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

Каждый открытый метод должен проверить свои исходные данные и "ArgumentException" s броска, когда они являются неправильными. (И закрытые методы должны проверить свои исходные данные с "Отладкой. Утверждайте () "s для упрощения разработки, но это - другая история.) Это правило о проверке исходных данных к открытым методам (и свойства, конечно) верно для каждого слоя приложения.

требования программного интерфейса должны быть разъяснены в интерфейсной документации, конечно, и это - задание кода вызова, чтобы удостовериться, что аргументы корректны, и исключения никогда не будут выдаваться, что означает потребности UI проверить исходные данные прежде, чем вручить им бизнес-объекту.

, В то время как правила, данные выше, никогда не должны почти нарушаться, иногда проверка бизнес-объекта может быть очень сложной, и та сложность не должна быть навязана на UI. В этом случае для интерфейса Филиала хорошо позволить войти некоторому дрейфу, что это принимает, и затем предусмотрите явное, Проверяют (строка []) предикат, чтобы проверить свойства и дать обратную связь на какой потребности быть измененным. Но заметьте в этом случае, что существуют все еще четко определенные интерфейсные требования, и никакие исключения не должны когда-либо быть выданными (предположение, что код вызова следует правилам).

После этой последней системы, я почти никогда не делаю раннюю проверку на методах set свойства, так как это мягкое - усложняет использование свойств, (но в случае, данном в вопросе, я мог бы). (Как в стороне, не препятствуйте тому, чтобы я снабдил вкладками из поля просто, потому что оно имеет неправильные данные в нем. Я получаю clausterphobic, когда я не могу снабдить вкладками вокруг формы! Я возвращусь и зафиксирую его через минуту, я обещаю! Хорошо, я чувствую себя лучше теперь, извините.)

10
задан Helen 11 August 2009 в 17:50
поделиться

2 ответа

Если приложение хорошо работает в Vista, можно ожидать, что оно будет делать то же самое в Windows 7. Если в вашем файле манифеста отсутствует раздел «Совместимость», то ваше приложение по умолчанию будет работать в режиме совместимости с Vista, как объяснено здесь . *

Я предполагаю, что под "системным лотком" вы имеете в виду область уведомлений. В Windows 7 улучшен пользовательский контроль над областью уведомлений, и вашим пользователям может потребоваться включить отображение значка вашего приложения в ней. Документация MSDN предлагает некоторые рекомендации по использованию области уведомлений - она ​​действительно предназначена для краткосрочных уведомлений, особенно для приложений, которые не отображаются на рабочем столе. Например, он не предназначен для быстрого запуска.

В этом контексте нет причин ожидать проблем, связанных с Delphi.

* EDIT: Поведение Windows Vista по умолчанию в Windows 7 и будущих версиях Windows. Обратите внимание, что Windows XP и Windows Vista игнорируют этот раздел манифеста и не влияет на них.

Следующие компоненты Windows обеспечивают различное поведение, основанное на раздел «Совместимость» в Windows 7:

  • Пул потоков RPC по умолчанию
  • Блокировка DirectDraw
  • Передача битовых блоков DirectDraw (Blt) в основной без отсечения окна
  • GetOverlappedResult API
  • Помощник по совместимости программ (PCA)

Подробную информацию о каждом поведении (Vista и Win7) можно найти в этой статье .

3
ответ дан 4 December 2019 в 03:16
поделиться

Короткий ответ, похоже, заключается в том, что большинство приложений, которые работают без серьезных проблем в Windows Vista, будут работать в Windows 7. Есть несколько хороших общих советов по совместимости приложений Win 7 в сети CIOL , о которой вам больше всего нужно знать при переходе с Windows XP на Windows Vista, но общая сводка такова:

  • Не предполагайте расположение папки в Windows - Папки, такие как Program Files, My Music и т. Д., Могут менять пути между версиями Windows. Например, папка «Мои документы» меняла расположение в каждой версии Windows, начиная с XP.
  • Используйте правильные API-интерфейсы при сохранении информации в реестре или папках - Вы можете столкнуться с проблемой Windows UAC, если не используете «официальный» API. Vista и Windows 7 гораздо менее снисходительны, чем XP, когда дело доходит до сохранения данных приложения в зависимости от его контекста (текущий пользователь, все пользователи, данные приложения и т. Д.).
  • Соблюдайте принципы UAC - ] Функция Windows UAC была ослаблена с момента выхода Windows Vista для Windows 7, но вы все равно должны писать свое приложение в соответствии с приведенными инструкциями, например, проектировать и тестировать его для работы без прав администратора, если это не является абсолютно необходимым.

В дополнение к этим советам : учитывая, что ваше приложение использует SysTray, и вы, возможно, захотите проверить альфа-версию «Элементы управления Windows 7 для Delphi» от Даниэля Вишневски . Он также написал 1 или 2 сообщений, демонстрирующих их использование, которые дают вам почувствовать некоторые новые визуальные различия в этой конкретной области. Также было зарегистрировано несколько ошибок Windows 7/64 Bit для Delphi 2009, с которыми вы могли столкнуться во время разработки и тестирования вашего приложения.

3
ответ дан 4 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: