Выбор совместимого приложения
Приложение должно быть совместимо с NT/Windows 2000. Приложение не обязательно должно быть совместимо с платформой клиента - приложения Windows могут быть доставлены на клиенты Mac и Unix. а при использовании MetaFrame for Solaris, приложения UNIX могут быть доставлены клиентам Windows. Приложения должны быть по возможности 32-битными: 32-битные приложения совместно используют память, могут быть многопоточными, и используют все преимущества 32-битной архитектуры Windows 2000. Приложения DOS и 16-бит Windows будут работать в виртуальной машине NTVDM (NT Virtual DOS Machine). Microsoft выпустила спецификацию для 32-битных приложений Windows 2000 и предусмотрела пожелания к программам, которые должны быть совместимыми с терминальными службами:
- Блокировка файлов
Файлы не должны блокироваться во время использования, поскольку это может мешать одновременной работе нескольких экземпляров приложения (или процессов внутри приложения).
- Права к файлам
Пользователи не должны иметь доступа к системным файлам и не должны иметь тот же уровень привилегий, что администратор, который инсталлировал приложение.
- Размещение файлов
Пользовательские файлы и файлы настроек должны храниться отдельно друг от друга. Приложения должны хранить временные файлы в каталогах пользователя для избежания конфликтов. Для этого следует использовать вызов API GetTempPath, вместо явного указания каталога временных файлов.
Для 16-битных приложений Windows необходимо преобразование вызовов в 32-битный код, выполнение его, а затем повторное преобразование в 16 бит. Эта процедура занимает много времени и требует на 20% больше ресурсов по сравнению с 32-битными приложениями. Поэтому производительность 16-битных приложений Windows и DOS существенно ниже.
Приложения DOS самые проблематичные. Они накладывают массу ограничений и сильно ограничивают производительность терминального сервера. Некоторые приложения DOS требуют прямого доступа к видеосистеме для вывода на экран, что не только несовместимо с терминальными службами, но может быть вообще не совместимо с Windows 2000. Одно из наиболее разражающих ограничений DOS - это размер экрана. Приложения DOS не могут работать в полноэкранном символьном режиме ни в одном клиенте, кроме DOS-клиента MetaFrame. Одним из способов обхода этой проблемы является изменение шрифта сеанса DOS. Удачным решением является шрифт DOSfon, доступный по адресу . Некоторые приложения DOS пытаются захватить всю доступную память, так что одно приложение может занимать целый гигабайт RAM. Примером тому может служить FoxPro for DOS. К счастью, использование памяти в нем можно ограничить, добавив в файл config.fp строку: MEMLIMIT=60,4096,8192 .
Некоторые приложения DOS требуют правильно настроенного уникального рабочего окружения. В такой ситуации можно создать BAT-файл, в котором сначала настраивается окружение, а затем запускается приложение. Некоторые приложения DOS требуют установки переменных окружения или PATH. Пример BAT-файла:
@echo off
set datapath=h:\%username%\appdata start /B application.exe
Этот BAT-файл можно опубликовать вместо оригинального приложения.