2012-09-03 85 views
1

我正在考虑将应用程序移植到Windows 8地铁。主引擎是一个C++库,所以我所要做的就是创建GUI(然后将其挂接到C++引擎)。Windows 8地铁,手机和桌面应用程序之间的代码共享

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

同样在未来,我将研究创建一个Windows 8移动应用程序,我能够分享任何城域GUI代码,还是最好从头开始?

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

+0

有这么多, “依赖” 在这里。如果你的代码叫做metro API,那么不行,它不能共享。如果您的代码称为桌面API,则不能共享。 –

回答

2

每个平台的UI层有很大不同;然而,他们接触的方式有共同点。例如,C#/ VB/XAML可以用于Phone,Windows,Desktop(甚至是web:Silverlight),但是在特定功能,支持的属性等方面存在差异,这使得难以“重新编译”

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

就后端而言,也存在平台差异,Portable Class Library可以帮助缓解特别是对于未来工作的影响。展望未来,像Windows 8 Shared Core这样的公告肯定会让这样的工作更容易。

在WPF和Silverlight等平台上有大量的帖子和指导可供重用,许多主题都是类似的,尽管细节可能不是特定于您的目标平台。以下是其中的一些内容,可以帮助您构建您的方法,并且不再关注使用“Silverlight”,而是关注文章中讨论的技术和关注点。

Sharing Code Between Silverlight and WPF
Reusing your existing Silverlight components with Windows Phone 7

+0

这就是我所害怕的。我想在这种情况下,它将是一个仅适用于metro的应用程序。实际完成时,可能会有更轻松的移植工具。 – Zammbi

相关问题