8

我需要使用 C# 和 XAML 开发 Metro 风格的应用程序,它必须在 Windows RT 设备和完整的 Windows 8 操作系统上工作。所以我被允许只使用 WinRT 而没有任何 .net 框架程序集。我读过这个问题

Microsoft Surface 平板电脑:为两种设备编写应用程序?

这个非常有用的帖子:http: //blogs.msdn.com/b/jasonz/archive/2012/06/12/what-you-need-to-know-about-developing-for-windows-on-arm- woa.aspx,但我仍然有疑问:当我什至创建一个空白 Metro 风格应用程序项目时,我有 Metro 风格的 .NET 组件。我是自己删除了它们还是我做错了什么?如果需要使用移植到 WinRT 或 mvvvm light 之类的 Prism fw,我应该怎么做?他们是否允许我仅在本机 WinRT 上开发 WOA 应用程序?这些时刻对我来说并不清楚。

你能解释一下我在 ARM 上的 Windows RT 和 Windows 有什么区别吗?我只需要使用 WinRT(没有 .net)来开发 WindowsRT 操作系统吗?

希望您能够帮助我。

4

3 回答 3

15

让我以最直接的方式回答你。如果您打开一个空白 XAML/C# Windows 应用商店项目。该项目将在 Windows RT (ARM) 和 Windows 8 (x86/x64) 上运行。那是因为它是为实现这一目标而构建的。仅仅因为您拥有 .Net Framework 的感觉,不用担心 - 您正在编写一个跨平台的应用程序。

现在,注意事项。由于 C#,您使这个答案变得容易。CPP 开发人员没有相同的保证,因为他们可以做一些编码来破坏这种兼容性。在 C# 中并非如此。如果您编写的代码编译为“任何 CPU”,那么我所说的是正确的。

如果您引入需要构建从“任何 CPU”更改为其他内容的内容(例如 Bing 地图控件)。Windows 应用商店将允许您以相同的名称提交应用程序的三个版本 - 每个平台一个版本 - 用户永远不会知道有多个版本。

在最后一个例子中,你仍然支持每个平台,你只需要指定三个不同的构建来完成它——你的代码可能根本不会改变!在大多数情况下,您都支持它们。如果你引入了第三方库——比如 MVVMlite——如果你可以构建到任何 CPU,你仍然可以。大多数图书馆都很酷。

于 2012-09-28T14:53:11.617 回答
3

说您不能在 Metro 风格应用程序中使用 .net 框架并不完全正确。更准确地说,有一个版本的 .net 框架仅适用于 Metro 应用程序。如果您的程序集不是使用此版本的 .net 框架构建的,它们将不适用于 Metro。这个版本的 .net 框架可以在 .86 和 arm 上运行。还有一个用于 Metro 应用程序的 MVVM Light 版本。 在这里下载。 有关为 arm 开发的详细信息,请参见此处

无论您使用的是 JavaScript、C++、Visual Basic 还是 C#,如果您已经构建了面向 x86/x64 的 Metro 风格应用程序,那么您已经知道如何构建面向 ARM 的应用程序。您使用相同的 Metro 风格项目模板,这些模板为构建应用程序提供了起点。

编辑:正如 Jerry 所指出的,如果它们是用 C++ 编写的,您可能必须针对不同版本的库编译您的应用程序,但这是一个单独构建的问题,而不是必须进行额外的开发。

于 2012-09-27T23:18:52.973 回答
1

如果您使您的库可移植类库,您可以将它们用于桌面、metro 和电话应用程序(以及 xbox)。您可以在启动库时或在项目的属性中选择此项。它使在 mircrosoft 生态系统中编写跨平台应用程序变得更加容易。

于 2012-10-24T16:31:13.193 回答