我们正在寻求为 iOS、Windows 7 和 Windows 8 等多个平台开发应用程序。
然而 Windows 8 确实是一个令人困惑的平台!正如你所看到的:
- 桌面应用程序
- 桌面(游戏等全屏应用)
- 现代应用
据我们所知,除了 UI 样式之外,桌面应用程序和现代应用程序之间实际上没有任何区别......因为桌面应用程序也可以在触摸屏上运行!
有人能解释一下实际的区别吗?似乎现代应用程序只是在 Windows RT 和 Windows 8 上运行并从 Windows 商店下载的应用程序(尽管我们也看到过从网站下载的现代应用程序)。
我们实际上希望使用 Adobe AIR 来针对不同的平台...但显然 AIR 尚不支持 Windows 8(现代)...但由于 AIR 支持桌面上的全屏模式,所以我们怎么能阻止它看起来像一个现代应用程序呢?
答案1
现代应用程序是使用 WinRT API 构建的,而桌面软件是使用 Win32 API 构建的。
WinRT API 是一组精简的功能(即防止完全文件系统访问、提供有限的进程间通信功能、防止加载附加组件和外部模块、授予有限的硬件访问权限等),可以在 ARM 和 x86 CPU 上的 Windows 8/8.1 上本地运行,因此可以在 Windows 8.x Pro 和 Windows 8.x RT 机器上运行 - 是的,命名可能相当混乱。
WinRT 的重点在于 Win32 级别的访问和定制(以及固有的安全考虑)并不总是需要的,例如,如果我编写一个休闲游戏、Facebook 包装器或计算器,我并不需要/想要完整的文件系统访问权限和与 Windows shell 交互的能力(上下文菜单、环境变量......)例如,我需要一个文件管理器,也不需要驱动程序所需的低级别的细粒度硬件访问,也不需要加载外部第三方插件(例如 Web 浏览器)的能力。
它与 Gadgets 非常相似,但内置安全性更好 - 然而,真正的安全评估只能在它广为人知之后才能/应该进行:从安全角度来看,重型沙盒/虚拟化环境当然是好的,但安全方面没有灵丹妙药,想想近年来 Java/JVM 和 Flash(作为沙盒运行时构建的)出现的所有安全问题。这个想法很好,但无论如何,需要像系统的任何其他部分一样保持安全和更新。