Top.Mail.Ru
РБК Компании
Заморозили скидки: делитесь новостями бизнеса и читайте эксклюзивы на РБК
Успеть до 14.12
Заморозили скидки:
делитесь новостями бизнеса
и читайте эксклюзивы на РБК
Успеть до 14.12

Библиотека WPF4Linux открыла для НТК Интерфейс рынок клиентов с ОС Linux

Библиотека WPF4Linux позволила НТК Интерфейс за неделю перенести WPF-приложение Клиент-10 на ОС Linux без изменения кода, сделав разработку мультиплатформенной
Windows и Linux без изменения кода: кроссплатформенная разработка c WPF4Linux
Источник изображения: Stable Diffusion
Задача и причина

Задача: Перенос ключевого пользовательского  приложения Клиент -10 НТК Интерфейс, разработаного на WPF и полностью удовлетворявшего потребности клиентов, на Linux. 

Причина: Резко возросшее число клиентов, запрашивающих поддержку Linux.

 

Компания: НТК Интерфейс

Сфера деятельности: Разработка, внедрение и сопровождение систем АСДУ и АСУ ТП в энергетике.

Проблема: Клиент -10, основное пользовательское приложение компании НТК Интерфейс, разработанное на WPF, полностью удовлетворяло потребности клиентов, работающих в ОС Windows. В последние несколько лет клиенты все чаще запрашивают поддержку Linux. Подход с разработкой веб-приложения не удовлетворяет требованиям ряда клиентов вследствие:

  • Технических ограничений платформы.
  • Недостаточной производительности.
  • Современных требований безопасности.

Полная переработка кода под Linux на альтернативных платформах (например, Avalonia UI или Uno Platform) требовала значительных ресурсов и времени, а также не позволяла переиспользовать существующую кодовую базу и проприетарные графические библиотеки, не имеющие кросс-платформенных аналогов.

Решение: Компания выбрала библиотеку WPF4Linux ООО «Кросс-платформенные решения», которая позволила ей в кратчайшие сроки перенести WPF-приложение Клиент-10 на ОС Linux без изменения кода и перейти к кроссплатформенной разработке силами имеющейся команды.

Библиотека WPF4Linux открыла для НТК Интерфейс рынок клиентов с ОС 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 открыла для НТК Интерфейс рынок клиентов с ОС Linux

Резюме 

Использование библиотеки WPF4Linux позволило НТК Интерфейс быстро и эффективно решить задачу портирования WPF-приложения на Linux без значительных затрат, открыло новые возможности для работы с клиентами, использующими Linux.

Фактически, применение WPF4Linux  сэкономило НТК Интерфейс на постоянной основе ставки двух или более новых программистов — специалистов по целевой платформе, позволив членам команды сосредоточиться на улучшении функциональных возможностей программного обеспечения. А самому НТК Интерфейс — предложить клиентам новые возможности работы с Клиент-10 и повысить конкурентные преимущества на рынке систем АСДУ и АСУ ТП. 

Результат

 

  • Единая кодовая база. НТК Интерфейс удалось расширить круг клиентов, сохранить команду разработчиков и единую кодовую базу для обеих ОС, упростить поддержку и развитие продукта и сократить время на модернизацию системы и внесение необходимых изменений. 
  • Экономия ресурсов. Удалось избежать переписывания приложения с нуля и поиска замены проприетарным библиотекам. 
  • Удовлетворенность клиентов. Приложение работает одинаково стабильно на Windows и Linux, а заказчики получили возможность использовать его на целевых операционных системах без дополнительного обучения. 
  • Быстрый выход на новый рынок. Перенос Клиент-10 на ОС Linux произошел за считанные дни и не потребовал затрат на переобучение программистов и специалистов службы поддержки НТК Интерфейс.

Источники изображений:

Архив ООО «НТК Интерфейс»

Интересное:

Новости отрасли:

Все новости:

Контакты

Адрес
125047, Россия, г. Москва, ул. 1-я Брестская, д. 33, стр. 1, оф. 1/П
ГлавноеЭкспертыДобавить
новость
КейсыМероприятия