Это похоже на историю «зашел в мою гостиную и сказал, что паук на лету». Desktop Bridge — это возможность, но это также приглашение принять «огороженный сад» подход к программному обеспечению.
Microsoft разрешила некоторым приложениям Win32 / .NET в Windows Store через свой Desktop Bridge.
«Сегодня мы рады сообщить, что новые приложения, включая Evernote, Arduino IDE, doubleTwist, PhotoScape, MAGIX Movie Edit Pro, Virtual Robotics Kit, Relab, SQL Pro, Voya Media, Predicted Desire и korAccount, станут доступны в Магазине Windows в течение следующие несколько дней для клиентов Windows 10, использующих Anniversary Update.
Техническое достижение очень невелико, поскольку Desktop Bridge просто обертывает исходное приложение Win32, так что его можно рассматривать как приложение UWP универсальной платформы Windows.
В документации говорится:
Когда это приложение запускается, оно не запускается внутри контейнера приложения, а вместо этого запускается от имени пользователя, как обычно.
Но приложение работает в специальной среде, в которой перенаправляются любые обращения приложения к файловой системе и реестру. Файл с именем Registry.dat используется для перенаправления реестра. На самом деле это куст реестра, поэтому вы можете просмотреть его в редакторе реестра Windows (Regedit). Обратите внимание, что этот механизм означает, что вы не можете использовать реестр для межпроцессного взаимодействия. Реестр не был разработан и не подходит для такой практики в любом случае.
Когда дело доходит до файловой системы, перенаправляется только папка AppData, и она перенаправляется в то же место, где хранятся данные приложения для всех приложений UWP. Это расположение известно как локальное хранилище данных приложения, и вы получаете доступ к нему с помощью свойства ApplicationData.LocalFolder. Таким образом, ваш код уже перенесен для чтения и записи данных приложения в нужное место без каких-либо действий. И вы также можете написать туда напрямую. Одним из преимуществ перенаправления файловой системы является более четкое удаление.
Внутри папки с именем VFS вы увидите папки, содержащие библиотеки DLL, от которых зависит ваше приложение. Эти библиотеки DLL устанавливаются в системные папки для классической настольной версии вашего приложения. Но как приложение UWP библиотеки DLL являются локальными для вашего приложения. Таким образом, при установке и удалении приложений UWP не возникает проблем с управлением версиями.
Обратите внимание, что приложение выполняется в двух частях: старый код полного доверия Win32 API и новый контейнер приложения UWP. Вы можете получить все преимущества UWP и ожидать, что ваше приложение будет работать на любом устройстве, только если вы удалили весь код полного доверия в контейнер UWP. Это довольно большая работа, и на нее приходится большая часть усилий по созданию настоящего приложения UWP из того, что у вас уже есть. Microsoft наилучшим образом раскрыла этот аспект, предложив:
«В удобном для вас темпе вы можете добавлять в свое приложение функции UWP, такие как фоновые задачи, службы приложений и многое другое. Вы можете использовать богатый набор функций UWP в своем приложении».
Конечно, это не совсем тот подход к UWP, как «без давления». Как только вы переместите свое старое устаревшее приложение на новую платформу, вы сделаете первый шаг на пути к полной конверсии, и это работа, которую вам придется выполнить, и без дополнительной помощи со стороны моста. Это не столько мост, сколько что-то, что бросает вас посреди реки и указывает, что плыть не так уж далеко, и это пойдет вам на пользу.
Существует также небольшой вопрос, что при переходе на UWP вы принимаете Microsoft в качестве своего босса. Он решает, что попадает в Магазин Windows, а что нет. Любые изменения, которые он внесет в будущем, вам придется смириться, и если вам это не нравится, ваш единственный выход — ходить.
Все программные продукты, обнесенные стеной, обещают повышение продаж, но также сопровождаются потерей свободы. Вам решать, стоит ли оно того.
Ознакомьтесь с промо-видео для получения более подробной информации: