Windows RT和c#

Bog*_*nik 8 c# windows-8 windows-runtime winrt-xaml windows-rt

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

Microsoft Surface Tablet:为两种设备编写应用程序?

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

你能解释我在ARM上的Windows RT和Windows之间的区别我是否只需要使用WinRT(不带.net)来开发WindowsRT操作系统?

希望您能够帮助我.

Jer*_*xon 14

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

现在,为了警告.由于C#,你使这个答案很容易.CPP开发人员没有相同的保证,因为他们可以采取编码方式来破坏这种兼容性.在C#中不是这样.如果您编写的代码编译为"任何CPU",那么我所说的是正确的.

如果你引入了一些东西(比如Bing Maps控件),它需要你的构建从"任何CPU"改为其他东西.Windows应用商店允许您以相同的名称提交三个版本的应用程序 - 每个平台一个 - 用户永远不会知道有多个版本.

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