有没有办法编写一个可以在Windows 7和Vista上运行的WinRt(Metro)应用程序?

Ian*_*ose 24 windows-7 microsoft-metro windows-8 windows-runtime

我们不能让我们的客户长时间无法在落叶松中升级到Windows 8.但是,我们的应用需要 "平板电脑"/"触摸"版本.

那么我们如何才能支持Windows 8上的Metro与单个代码库中的当前客户的联系呢?

当WPF出现之后,经过很多微软推出的"推动"并使其在Windows XP上运行之后 - 就像WinRT所讨论的那样.

(我不希望任何解决方案在XP上工作,因为XP支持正在减少.)

另请参阅:ARM版本的Windows 8只能运行Metro(WinRt)风格的应用程序吗?

Ste*_*owe 17

最好的答案是您不希望在Windows 7和Windows 8 Metro风格上运行相同的应用程序.最适合鼠标和键盘(Windows 7)的用户界面不适用于先触摸演示,反之亦然.重新设想两个不同世界的UI非常重要.

也就是说,如果你想分享很多代码,你有两个选择:1)主要用JavaScript/HTML5编写.这将允许您重用许多资产(尤其是业务逻辑部分).2)将其写入(桌面)Silverlight.Silverlight XAML最接近Windows XAML.WPF距离较远,稍后需要更多的重新工作.

在任何一种情况下,您都应该查看并遵循编写跨平台代码时使用的原则.理解平台依赖关系并将它们隔离在间接边界之后.您想要本地化所有必须更改的代码.例如,您不希望调用.Net System.IO.File API,您知道这些API必须更改为Windows.System.Storage调用分散在整个代码中.相反,您希望将其本地化在一个可以在以后修改的函数中.

  • 我要强调的是,将尽可能多的逻辑分离到跨平台库中非常重要.这样,您可以在共享大部分代码的同时添加对不同前端(Metro,传统Win32 UI等)的支持. (3认同)