桌面应用程序中的UWP限制

Lie*_*ero 41 win-universal-app windows-10

我知道新的UWP应用程序模型与"传统"Win32应用程序相比有一些限制.

我们以Visual Studio Code作为桌面应用程序的示例.

如果它是UWP应用程序,Visual Studio Code的哪些功能缺失或必须与用户不同?

编辑:我已经完成了微软认证考试"使用C#开发Windows应用商店应用的基本知识"和考试70-355:通用Windows平台 - 应用数据,服务和编码模式.所以我对win rt api有所了解.

请不要打扰"uwp app在沙盒中运行"等答案.它们毫无用处,因为它们没有说明用户视角的限制.我故意把现实生活中的例子,所以我们可以具体化.

限制可能是,您的应用程序无法支持第三方插件,如自定义语法高亮显示或重构扩展(这是Windows商店应用程序的限制,不确定它是否仍然有效).

另一个限制可能是,你的应用程序无法截取屏幕截图,因为uwp中没有api(实际上不确定它是真的)

Chu*_*urn 43

短语"Win32桌面应用程序"是一个不明确的定义,因为自Windows NT 3.1以来Win32 API编程模型已经存在.在过去的二十年中,它还可以涵盖数十种开发语言和UI框架.

以下是关键UWP差异的快速概述:

  • API表面积.UWP平台支持许多但不是所有的Win32和COM API,并引入了新的API.如果您的"Win32桌面应用程序"主要使用可追溯到Windows 95的ANSI API,那么您需要进行大量更新.如果您使用的主要是Windows Vista时代的UNICODE API,那么很多东西"只会起作用".请参阅Windows运行时应用程序(系统)的Win32和COM API.

  • 安全背景.UWP平台在AppContainer安全上下文中运行应用程序.Windows Vista或更高版本上的"Win32桌面应用程序"以"标准用户"或"管理员"身份运行.UWP应用程序的访问权限低于"标准用户",并且永远不能作为"管理员"运行.UWP应用程序可以请求其他功能,以便在获得用户许可的情况下获得更多权限,但对系统和用户数据的访问权限有限.例如,您无法读取大多数文件系统,只能读取已安装的位置,独立的应用程序数据文件夹和隔离的临时文件夹.请参阅文件访问和权限(Windows运行时应用程序).这也意味着UWP应用程序对设备的访问权限有限.请参阅设备和传感器概述.

与旧的"一切都是管理员"模型相比,引入标准用户的Windows Vista用户帐户控制专注于保护系统和其他用户数据,但由于所有应用程序都可以访问甚至修改它,因此无法保护当前用户的数据文件.AppContainer隔离保护系统和当前用户的数据和设置.鼓励"Win32桌面应用程序"安装C:\Program Files在运行时只读,并使用应用程序数据文件夹,但不需要它们.

  • AppX部署."Win32桌面应用程序"使用任意数量的部署方式,通常使用MSI技术并以"管理员"身份运行.UWP应用程序打包在AppX文件中,并始终由系统部署.没有"自定义安装步骤",因此UWP应用程序无法安装驱动程序或服务,更改ACL等.系统负责部署C/C++运行时(必须仅限Visual C++ 2015).

  • UI模型.没有为"Win32的桌面应用程序"之类的WinForms,MFC,WPF等UI框架过多绝大多数的这些不是与UWP兼容,因为UWP不支持Win32的经典窗口,WM_消息或GDI/GDI +.对于UWP的应用程序,你可以用C++或C#中使用XAML代码隐藏,支持DirectX(Direct2D和/或Direct3D的)与C++(或C#通过第三方组件像SharpDX),或HTML5使用JavaScript.

因此,如果不能完全理解产品的代码库和依赖关系,回答您的问题即使非常困难.

请参阅Windows应用程序入门

  • 我对uwp的概述非常了解.我已经阅读了通过uwp考试所需的所有msdn atricles.我正在开发wpf应用程序,因为它存在.我对桌面开发中的uwp没有真正的经验.我故意将VS Code作为桌面应用程序的一个例子,因此很清楚它的功能,代码库和依赖项是什么.您提供的链接 - 入门与我需要知道的完全相反 (5认同)
  • `永远不能以"管理员"身份运行`也许这已经改变,因为我可以右键单击我的一个UWP应用程序并以管理员身份运行它. (3认同)