РазработчикамПрограмм

Материал из Etersoft wiki
Перейти к: навигация, поиск
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Как избежать проблем при создании многоплатформенных приложений

Открытие файлов офисных форматов (MS Office или OpenOffice)

Если открытие файлов выполнять через ShellExec (рассчитывая на то, что обработка файлов данного типа настроена правильно), то проблем с выбором MS Office / OpenOffice и при запуске в WINE@Etersoft не будет - в любом случае файл будет открыт нужным образом.

При задействовании COM-интерфейса для разных офисов придётся писать разный код, вдобавок это вообще не сработает в Wine.

В ближайшее время в WINE@Etersoft будет добавлен UniOffice@Etersoft, который будет транслировать и COM-обращения.


Использование вспомогательных программ

Избегайте использования DOS-программ (при этом с консольными Win32-программами проблем нет) для вспомогательных целей. К сожалению, в Wine не очень хорошая виртуальная машина реального режима.


Шрифты

Не стоит использовать в программе шрифты, которые есть только в Windows. В крайнем случае можно завязываться на шрифтовой набор Web Core Fonts (Arial, Times New Roman, Courier), он свободно доступен для использования.


Средства защиты от несанкционированного запуска

Часто для защиты программы используется либо привязка к серийному номеру оборудования компьютера,

либо аппаратные ключи защиты. Во всех случаях (кроме как когда обращение к ключу идёт по сетевому протоколу) при этом используется драйвер системы (VXD или SYS), к которому обращается программа для реализации функций защиты. Такие драйвера не могут быть загружены в Wine, и это делает невозможной работу таких программ.


Пути решения

  1. Использовать для привязки к оборудованию сервис EterSafe, который позволяет независимо от используемой системы (Windows / Linux) получать информацию о серийных номерах оборудования.
  1. При использовании аппаратных ключей защиты рекомендуется использовать ключи HASP компании Аладдин, в драйверах которых предусмотрена поддержка WINE@Etersoft. Это самый лучший вариант. Также для ключей SHK Sentinel возможно использование сетевого ключа в качестве локального (запрограммировав его на одну лицензию). При этом можно использовать сетевое API, но такой ключ выходит дороже. Локальные ключи SuperPro и UltraPro, которые сойдут с поддержки через год-два, могут быть доступны через сетевое API, но как правило программы, ориентированные на локальные ключи, используют локальное API.


Общие советы

  1. Используйте как можно меньше хаков и недокументированных возможностей Windows.
  1. Не создавайте комбинированные типы контролов, если можно обойтись стандартными типами.
  1. Не используйте 16-битные функции, а также функции, которые не рекомендуются к использованию.
  1. Если в программе обрабатываются сбойные ситуации, то выводите подробную информацию (в консоль?), предоставляйте как можно больше отладочной информации по ошибке.
  1. Не используйте малораспространённые технологии и редкие языки, если в них нет острой необходимости. Не завязывайте свою программу на специфические Windows-технологии. Постарайтесь использовать кросс-платформенные технологии везде, где это возможно.