Со времен появления Web технологий существовал практически единственный способ их использования – приложение Web-браузера в операционной системе. Развитие пользовательских настольных приложений и приложений для Web шло преимущественно независимо друг от друга. В какие-то моменты Web приложения постепенно вытесняли настольные приложения, развивая свои возможности за счет увеличения предлагаемого браузером API. И все же Web приложения редко становились настольными приложениями в привычном их понимании. Причиной тому – абстрагирование приложения в браузере от остальной системы и строгие политики безопасности браузера.
Интеграция Web в настольные приложения может дать разработчикам очень много дополнительных инструментов. В простейшем случае это банальное окно Web браузера внутри программы. В более сложных ситуациях это тесная безупречная интеграция лучших решений Web, не выделяющихся из общего настольного окружения. Решить весь спектр таких интеграционных задач разработчикам позволяет Chromium Embedded Framework (CEF).
[pullquote]Chromium Embedded Framework (CEF) – библиотека для разработчиков настольного ПО, позволяющая использовать в своих приложениях всевозможные Web технологии. Это путь к интеграции настольной экосистемы и Web.[/pullquote]
В одном из проектов Ауриги CEF изначально был применен взамен устаревших технологий. Это решение стало ключевым для дальнейшего плана развития проекта – интеграция С++ кода и Web технологий выросла на порядки. CEF используется не только в качестве простого встроенного Web браузера, но и для решения следующих задач:
- рендеринг текстов, HTML, растровой и векторной графики для дальнейшего использования изображений C++ кодом;
- совершенно бесшовная интеграция HTML редактора на языке Java Script в настольный интерфейс;
- интеграция системы помощи WebHelp;
- работа встроенного браузера с интегрированным в программу собственным Web сервером без открытия сетевых портов;
- пользовательские расширения С++ кода с помощью исполняемых JS скриптов, позволяющие расширять функционал программы сторонними разработчиками.
Таким образом нам удалось перевести часть С++ задач на более быстрый в разработке язык JS. Задачи по созданию контента для приложения тоже значительно упростились – появилась возможность делегировать их не только Web-разработчикам, но и дизайнерам, которые рисуют контент в SVG. Все это положительно сказалось на стоимости и времени разработки продукта, скорости работы продукта, качестве контента, удобстве использования продукта конечными пользователями.
Еще в одном проекте Ауриги CEF использовался в базовой конфигурации для замены штатного браузера операционной системы. Сделано это было для того, чтобы обеспечить безопасный защищенный доступ пользователя к порталу тестирования персонала организации. С помощью небольших плагинов разработчики расширили стандартный функционал браузера и организовали дополнительный контроль за пользователем во время проведения тестирования. Разработанное решение исключает возможность фальсификации результата тестирования, что стало еще одним конкурентным преимуществом на рынке подобных систем.
— Андрей Малашенко, Инженер Ауриги