Библиотека WPF4Linux открыла для НТК Интерфейс рынок клиентов с ОС Linux
Библиотека WPF4Linux позволила НТК Интерфейс за неделю перенести WPF-приложение Клиент-10 на ОС Linux без изменения кода, сделав разработку мультиплатформенной
Задача: Перенос ключевого пользовательского приложения Клиент -10 НТК Интерфейс, разработаного на WPF и полностью удовлетворявшего потребности клиентов, на Linux.
Причина: Резко возросшее число клиентов, запрашивающих поддержку Linux.
Компания: НТК Интерфейс
Сфера деятельности: Разработка, внедрение и сопровождение систем АСДУ и АСУ ТП в энергетике.
Проблема: Клиент -10, основное пользовательское приложение компании НТК Интерфейс, разработанное на WPF, полностью удовлетворяло потребности клиентов, работающих в ОС Windows. В последние несколько лет клиенты все чаще запрашивают поддержку Linux. Подход с разработкой веб-приложения не удовлетворяет требованиям ряда клиентов вследствие:
- Технических ограничений платформы.
- Недостаточной производительности.
- Современных требований безопасности.
Полная переработка кода под Linux на альтернативных платформах (например, Avalonia UI или Uno Platform) требовала значительных ресурсов и времени, а также не позволяла переиспользовать существующую кодовую базу и проприетарные графические библиотеки, не имеющие кросс-платформенных аналогов.
Решение: Компания выбрала библиотеку WPF4Linux ООО «Кросс-платформенные решения», которая позволила ей в кратчайшие сроки перенести WPF-приложение Клиент-10 на ОС Linux без изменения кода и перейти к кроссплатформенной разработке силами имеющейся команды.

Этапы внедрения
Внедрение библиотеки не потребовало принципиальных изменений кода проекта и прошло в три основных этапа:
1. Тестирование и адаптация
Совместно с разработчиками WPF4Linux была проведена проверка совместимости библиотеки с разрабатываемым приложением. В процессе проверки был выявлен и устранен ряд проблем, относящихся к приложению и к самой библиотеке.
Проблемы переноса:
- В коде был выявлен ряд вызовов старых API Win32, унаследованных от ранних версий системы. WPF4Linux поддерживает некоторые такие вызовы, но далеко не все. Разработчики «Кросс-платформенных решений» заменили неподдерживаемые вызовы более современными аналогами из .NET core. Отметим, что выявление этих вызовов происходило, автоматически. При попытке сборки кода проекта с подключенной библиотекой среда разработки сигнализировала о них выдачей ошибок.
- Был обнаружен ряд незначительных ошибок и недоработок в самой библиотеке, касавшихся тонкостей воспроизведения поведения визуального интерфейса приложения на Linux. Эти проблемы были устранены в рамках стандартного цикла технической поддержки в сроки от 1-2 до 5 дней. Срок устранения каждой из проблем зависел от ее сложности, но, в любом случае, их число было минимальным и за все время внедрения и эксплуатации проекта вряд ли превысило десяток. Суммарный лаг разработки, связанный с ожиданием устранения проблем не превысил 2 недель за весь период внедрения библиотеки.
- Для ряда особенностей поведения Windows-интерфейсов в Linux отсутствуют адекватные выразительные средства (например из кода приложения невозможно универсальным для современных дистрибутивов Linux способом переключить язык ввода клавиатуры). Специалисты нашей компании проинформировали о подобных обстоятельствах разработчика прикладного ПО и для каждой такой ситуации было найдено обходное решение.
- Специфический функционал приложения, такой как поддержка звуков и системных уведомлений, был адаптирован под Linux.
2. Интеграция в CI/CD
Интеграция WPF4Linux в CI/CD прошла практически бесшовно — библиотека была добавлена в файл конфигурации проекта и, на этом, все было закончено.
Это является принципиальным преимуществом WPF4Linux перед конкурирующими технологиями всякого рода «конвертеров кода» и «универсальных библиотек визуального интерфейса».
Для начала адаптации проекта к новой платформе разработчикам понадобилось немного исправить один из файлов конфигурации проекта.
А для завершения работ — всего лишь разобраться с сообщениями об ошибках, полученными при сборке и связанных с неподдерживаемыми старыми вызовами Win32 API, а также протестировать работу скомпилированного под Linux приложения. И то и другое суммарно можно оценить как «чуть больше, чем ничего» по сравнению с обычным объемом работ, требующимся при портировании ПО на другую операционную систему.
Версии приложения для Windows и Linux теперь собираются одновременно на сервере CI/CD с минимальными изменениями в процессе.
3. Проверка работы проприетарных компонентов
Даже сложные графические компоненты, изначально разработанные для Windows, корректно работают в среде Linux.

Резюме
Использование библиотеки WPF4Linux позволило НТК Интерфейс быстро и эффективно решить задачу портирования WPF-приложения на Linux без значительных затрат, открыло новые возможности для работы с клиентами, использующими Linux.
Фактически, применение WPF4Linux сэкономило НТК Интерфейс на постоянной основе ставки двух или более новых программистов — специалистов по целевой платформе, позволив членам команды сосредоточиться на улучшении функциональных возможностей программного обеспечения. А самому НТК Интерфейс — предложить клиентам новые возможности работы с Клиент-10 и повысить конкурентные преимущества на рынке систем АСДУ и АСУ ТП.
- Единая кодовая база. НТК Интерфейс удалось расширить круг клиентов, сохранить команду разработчиков и единую кодовую базу для обеих ОС, упростить поддержку и развитие продукта и сократить время на модернизацию системы и внесение необходимых изменений.
- Экономия ресурсов. Удалось избежать переписывания приложения с нуля и поиска замены проприетарным библиотекам.
- Удовлетворенность клиентов. Приложение работает одинаково стабильно на Windows и Linux, а заказчики получили возможность использовать его на целевых операционных системах без дополнительного обучения.
- Быстрый выход на новый рынок. Перенос Клиент-10 на ОС Linux произошел за считанные дни и не потребовал затрат на переобучение программистов и специалистов службы поддержки НТК Интерфейс.
Источники изображений:
Архив ООО «НТК Интерфейс»
Рубрики
Интересное:
Новости отрасли:
Все новости:
Публикация компании
Контакты
Рубрики



