我将差异视为设计选择,而不是个人对语言的偏好。偏好与 VB 与 C# 更相关。通常,在您选择 C++ 或 .NET 的任何应用程序中,您会得到相同的差异。
C++ 将为您提供更快的启动时间。IIRC,.NET 4.5 具有自动 NGENing 功能(不确定它与 Metro 应用程序的关系),因此这可能有助于缓解 .NET 应用程序典型的缓慢启动时间。
C++ 将降低一般内存使用量,因为它不使用垃圾收集器。这在平板电脑等资源受限的设备上变得越来越重要。IIRC,.NET 4.5 对 GC 暂停有更多的缓解(这可能导致 UI 崩溃),它们仍然是托管代码的现实。
由于 .NET 和 C++ 使用相同的 WinRT 框架,因此与 XAML/WinRT 平台交互可能不会有太大差异(通过 C++ 与 WinRT 对象交互在技术上更快,但影响非常小),但当然你的用户使用 C++ 编写的代码通常比使用 .NET 更快。
C++ 通常更难逆向工程,即使与模糊的 .NET 代码相比也是如此。尽管狡猾的小偷无论如何都可以窃取您的IP。
由于 .NET 最初是为了方便开发人员和开发人员的生产力而创建的,因此您在构建应用程序时将拥有更多方便的选择(例如,基于反射的工具,如 DI/IoC)。
通过 .NET 迭代应用程序代码可能更容易,因为 .NET 的编译速度比 C++ 快,但正确创建的 C++ 项目可以大大缓解这种情况。
纯 .NET 项目可以支持“任何 CPU”,这意味着您的应用程序可以在所有受支持的 WinRT 平台上运行。您只需重新编译 C++ 项目即可支持 ARM、x86/64。如果您的 .NET 应用程序依赖于自定义 C++ 组件,则必须针对每个体系结构进行编译。
因为 WinRT 是从头开始创建以支持多种语言的,所以我对不熟悉 C++ 的开发人员的建议是坚持使用 .NET,但探索受益于 C++ 的领域。Microsoft 在 /CX 预测方面做得很好,大多数 C# 开发人员应该能够找到自己的方法。我对 C++ 开发人员的建议是坚持使用 C++ 并获得 C++ 的所有好处。