1

我正在考虑将应用程序移植到 Windows 8 Metro。主引擎是一个C++库,所以我要做的就是创建 GUI(然后将其连接到C++引擎)。

我想知道如果创建 Metro 应用程序,我是否能够使用相同的代码并为桌面(Windows 7 等)构建它?如果有额外的工作多少钱?

同样在未来我将考虑创建一个 Windows 8 移动应用程序,我是否能够共享任何 Metro GUI 代码或者最好从头开始?

该项目是一个庞大的项目,因此代码重用是一个很大的积极因素。

4

1 回答 1

2

每个平台的 UI 层都大不相同;但是,它们的处理方式有共同点。例如,C#/VB/XAML 可以在手机、Windows、桌面(甚至网络:Silverlight)中使用,但在特定功能、支持的属性等方面存在差异,因此很难“重新编译”

在我看来,你最好的选择是采用一种隔离差异的模式;MVVM 是跨平台的 GUI 应用程序的理想选择。它需要为每个目标使用不同的 UI 层 - 但无论如何您都希望利用外形、用户期望等。在每种情况下,代码都可以是 C#/VB XAML,尽管可能会重复使用许多构造和资产(即使通过复制和粘贴)。在幕后,“管道”可能完全相同,无论是内部业务对象层还是云中的 Web 服务。

在后端方面,也存在平台差异,可移植类库可以帮助缓解这些差异,尤其是在未来的工作中。展望未来,像Windows 8 Shared Core这样的公告肯定会让这样的工作变得更容易。

有许多帖子和指南可用于跨平台(如 WPF 和 Silverlight)重用,并且许多主题将是相似的,尽管详细信息可能不特定于您的目标平台。这里有一些可能会帮助您构建您的方法,同样不要关注“Silverlight”的使用,而是关注文章中提到的技术和关注点。

在 Silverlight 和 WPF 之间共享代码 在
Windows Phone 7 中重用现有的 Silverlight 组件

于 2012-09-03T15:28:04.300 回答