Подтвердить что ты не робот

Ограничения UWP в настольных приложениях

Я знаю, что новая модель приложения UWP имеет некоторые ограничения по сравнению с традиционными приложениями Win32.

Возьмем Visual Studio Code в качестве примера настольного приложения.

Какие функции Visual Studio Code отсутствовали или должны отличаться от пользовательской, если это было приложение UWP?

EDIT: Я сделал экзамены для сертификации microsoft "Основы разработки приложений для Windows Store с использованием С#" и Экзамена 70-355: Универсальная платформа Windows - данные, службы и шаблоны приложений. Поэтому я знаю кое-что о win rt api.

Пожалуйста, не беспокойтесь о таких ответах, как "uwp app running in sandbox". Они бесполезны, потому что они ничего не говорят об ограничениях с точки зрения пользователей. Я намеренно принял пример реальной жизни, поэтому мы можем пойти конкретным образом.

Ограничение может заключаться в том, что ваше приложение не может поддерживать сторонние плагины, такие как настраиваемый синтаксический ярлык или расширение refactorin (это было ограничение приложений для хранения в Windows, но не уверен, что оно все еще действует).

Еще одно ограничение может заключаться в том, что ваше приложение не может сделать снимок экрана, потому что для него нет api в uwp (не уверен, что это его правда, на самом деле)

4b9b3361

Ответ 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.

Ответ на ваш вопрос, таким образом, чрезвычайно сложно, если не невозможно, без полного понимания базы кода продукта и зависимостей.

См. Начало работы с приложениями Windows