Ответ 1
Фраза "настольное приложение Win32" плохо определена, так как модель программирования Win32 API существует со времен Windows NT 3.1. Он также может охватывать десятки языков разработки и интерфейсов пользовательского интерфейса в течение двух десятилетий.
Здесь приведен краткий обзор ключевых отличий в UWP:
-
Площадь поверхности API.. Платформа UWP поддерживает многие, но не все API Win32 и COM, и вводит новые API. Если ваше "настольное приложение Win32" использует в основном ANSI API, которые относятся к Windows 95, у вас есть много обновлений. Если вы используете в основном API-интерфейс UNICODE для Windows Vista, тогда много всего "просто работает". См. Win32 и COM API для приложений Runtime Windows (System).
-
Контекст безопасности. Платформа UWP запускает приложения в контексте безопасности AppContainer. "Настольные приложения Win32" в Windows Vista или более поздней версии выполняются как "Стандартный пользователь" или "Администратор" . Приложения UWP имеют меньше прав доступа, чем "Стандартный пользователь", и никогда не могут работать как "Администратор" . Приложения UWP могут запрашивать дополнительные возможности, чтобы получить еще несколько прав с разрешения пользователя, но имеют ограниченный доступ к данным системы и пользователя. Например, вы не можете прочитать большую часть файловой системы, только ваше установленное местоположение, изолированную папку данных приложения и изолированную временную папку с файлами. См. Доступ к файлам и разрешения (приложения Windows Runtime). Это также означает, что приложения UWP имеют ограниченный доступ к устройствам. См. Обзор устройств и датчиков.
Управление учетными записями пользователей Windows Vista, введшее стандартного пользователя, было сосредоточено на защите данных системы и других пользователей по сравнению со старой моделью "все является администратором", но мало помогло защитить текущие файлы пользовательских данных, поскольку все приложения могли получить доступ или даже измените его. Изоляция AppContainer защищает как систему, так и текущие пользовательские данные и настройки. "Настольные приложения Win32" были рекомендованы для установки на
C:\Program Files
, который был доступен только для чтения во время выполнения и для использования папок данных приложений, но от них не требовалось.
-
AppX. "Настольные приложения Win32" используют любое количество способов развертывания, часто что-то использующее технологию MSI и выполняющее роль "Администратор" . Приложения UWP упаковываются в файлы AppX и всегда развертываются системой. "Пользовательский шаг установки" отсутствует, поэтому приложения UWP не могут устанавливать драйверы или службы, изменять списки управления доступом и т.д. Система заботится о развертывании C/С++ Runtime (который должен быть только Visual С++ 2015).
-
модель пользовательского интерфейса. Существует множество инфраструктур пользовательского интерфейса для "настольных приложений Win32", таких как WinForms, MFC, WPF и т.д. Подавляющее большинство из них несовместимо с UWP, поскольку UWP не поддерживает классическое оконное окно Win32, сообщения
WM_
или GDI/GDI +, Для приложений UWP вы можете использовать XAML с кодом С++ или С#, DirectX (Direct2D и/или Direct3D) с С++ (или С# через сторонние сборки, такие как SharpDX) или HTML5 с JavaScript.
Ответ на ваш вопрос, таким образом, чрезвычайно сложно, если не невозможно, без полного понимания базы кода продукта и зависимостей.