Вопрос или проблема
У нас есть небольшое количество офисов в различных местах, и мы используем только Windows. Для конкретного случая использования мы ищем способ захватить аудио входа/выхода с отдельных ПК. Одна из компаний, с которой мы регулярно сотрудничаем, сказала нам, что они могут продать такое кастомное приложение, которое они разработали (т.е. это не хорошо известное приложение) в виде исполняемого файла, и что оно может работать на любом ПК и никогда не потребует обновлений. Установи и забудь. Мне трудно в это поверить, что я могу установить исполняемый файл на Windows, и независимо от версии Windows (и обновлений) и комбинаций аппаратного обеспечения, этот исполняемый файл никогда не потребует обновлений. Это теоретически возможно или это рекламный ход? Какую информацию я должен запросить, чтобы понять и подтвердить их информацию?
Меня интересует только, возможно ли это теоретически, так как я ожидаю, что, например, обновление Windows может сделать Win API устаревшими или что могут быть определенные звуковые карты, которые не поддерживают определенные API.
Ответ или решение
Программирование под Windows: совместимость с аппаратными драйверами и требования к обновлениям
Ваша ситуация действительно поднимает важные вопросы о программировании под Windows и взаимодействии с аппаратными драйверами. Давайте подробно рассмотрим возможные сценарии и ответим на ваши вопросы.
Теоретическая возможность устойчивости приложения
В теории, можно создать программное обеспечение, которое будет работать на различных версиях Windows и с множеством аппаратных конфигураций без необходимости обновлений. Однако такие случаи достаточно редки и зависят от нескольких факторов:
-
Статический API: Если программа использует статические библиотеки и API, которые не изменяются с обновлениями Windows, то вероятность стабильной работы увеличивается. Однако вопрос в том, использует ли эта программа специфичные для оборудования функции, которые могут быть не поддержаны в новых версиях.
-
Платформа и язык разработки: Языки, такие как C или C++, могут создать более оптимизированные и менее зависимые от среды приложения, чем высокоуровневые языки, однако всегда существует риск появления несовместимости с каждым обновлением системы.
-
Апаратная совместимость: Каждое устройство, включая звуковые карты, может иметь собственную реализацию драйверов, которые могут поддерживать разные версии API. Если приложение использует функции, специфичные для определенного оборудования, то его работа на другом оборудовании может быть под вопросом.
Непредсказуемость изменения платформы
С точки зрения программного обеспечения, Windows регулярно может обновлять свои API и библиотеки, что делает теоретическую возможность отсутствия обновлений маловероятной. Депрецирование API, например, известные функции звуковой системы, может привести к необходимости переработки софта. Кроме того, программное обеспечение может столкнуться с проблемами при смене оборудования, особенно если производители изменяют поддержку своих драйверов.
Рекомендации по валидации информации от подрядчиков
Чтобы более точно оценить предложение вашего подрядчика, вы можете задать следующие вопросы:
-
Какой API используется для захвата аудио? Уточните, основано ли это на устоявшихся и непригодных для изменения API или библиотеках.
-
Как обеспечивается совместимость с разными звукозаписывающими устройствами? Запросите информацию о драйверах, поддерживаемых их программой и любых известных проблемах совместимости.
-
Как часто обновляется программное обеспечение? Даже если система не требует обновлений, компания должна иметь возможность обеспечить доступ к поддержке или потенциальным патчам в случае изменения платформы.
-
Есть ли у них опыт работы с аналогичными клиентами? Запросите примеры или дополнительные доказательства успешной работы подобного программного обеспечения на разных системах и оборудовании.
-
Как они тестируют совместимость на разных версиях Windows? Убедитесь, что есть четкий процесс для тестирования и проверки работы приложения на различных конфигурациях.
Заключение
Постоянное обновление Windows и широкий спектр аппаратных драйверов делают идею «установил и забыл» маловероятной, хотя не полностью исключенной. Всегда существует риск того, что обновления могут затронуть совместимость, особенно если речь идет о специализированных функциях, таких как захват аудио. Поэтому критически важно тщательно оценить предложения и провести доскональную проверку совместимости перед принятием решения о сотрудничестве с ними.