我们以Visual Studio代码作为桌面应用程序的示例.
如果是UWP应用程序,Visual Studio代码的哪些功能丢失或者与用户的角度不同?
编辑:
我已经完成了微软认证“使用C#开发Windows Store应用程序的要点”和考试70-355:通用Windows平台 – 应用数据,服务和编码模式的考试.所以我知道一些关于win rt api.
请不要打扰“uwp应用程序在沙箱中运行”这样的答案.它们是无用的,因为他们对用户的观点没有任何限制.我有意采取现实生活的例子,所以我们可以去具体.
限制可能是,您的应用程序不能支持第三方插件,如自定义语法荧光笔或refactorin扩展(这是Windows商店应用程序的限制,不知道它是否仍然有效).
另一个限制可能是,您的应用程序无法截取屏幕截图,因为uwp中没有api(实际上不确定它是真的)
以下是UWP主要差异的简要概述:
> API表面积. UWP平台支持许多但不是全部的Win32和COM API,并且引入了新的API.如果您的“Win32桌面应用程序”大部分使用的是可追溯到Windows 95的ANSI API,那么您可以进行大量更新.如果您大多使用Windows Vista时代的UNICODE API,那么很多东西“只是工作”.见Win32 and COM API for Windows Runtime apps (System).
>安全上下文. UWP平台在AppContainer安全上下文中运行应用程序. Windows Vista上的“Win32桌面应用”或更高版本以“标准用户”或“管理员”身份运行. UWP应用程序的访问权限比“标准用户”少,永远不能作为“管理员”运行. UWP应用程序可以请求附加的capabilities,以获得用户许可的更多权限,但对系统和用户数据的访问有限.例如,您无法读取大多数文件系统,只能安装位置,孤立的应用程序数据文件夹和隔离的临时文件夹.请参阅File access and permissions (Windows Runtime apps).这也意味着UWP应用程序对设备的访问受限.参见Device and sensor overviews.
Windows Vista User Account Control that introduced Standard User was focused on protecting the system and other users data compared to the older “everything is administrator” model,but did little to protect the current user’s data files since all apps could access or even modify it. AppContainer isolation is protecting both the system and the current user’s data and settings. “Win32 desktop apps” were encouraged to install to
C:\Program Files
which was read-only at runtime and to use application data folders,but they were not required to.
> AppX部署. “Win32桌面应用程序”使用任何数量的部署方式,通常使用MSI技术并以“Administrator”身份运行. UWP应用程序包装在AppX文件中,并始终由系统部署.没有“自定义安装步骤”,因此UWP应用程序无法安装驱动程序或服务,更改ACL等.系统负责部署C/C++运行时(仅适用于Visual C 2015).
> UI模型.有诸如WinForms,MFC,WPF等的“Win32桌面应用”的大量UI框架.其中绝大多数与UWP不兼容,因为UWP不支持经典的Win32窗口,WM_消息或GDI / GDI.对于UWP应用程序,您可以使用C或C#代码隐藏的XAML,带有C(或C#通过第三方程序集,如SharpDX)的DirectX(Direct2D和/或Direct3D)或使用JavaScript的HTML5.
因此,如果不是完全了解产品的代码库和依赖关系,那么回答你的问题是非常困难的,如果不是不可能的话.