【问题标题】:Code sharing between windows 8 metro, mobile and desktop appWindows 8 Metro、移动和桌面应用程序之间的代码共享
【发布时间】:2012-09-03 14:14:23
【问题描述】:

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

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

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

这个项目是一个庞大的项目,所以代码重用是一个很大的积极因素。

【问题讨论】:

  • 这里有很多“依赖”。如果您的代码调用 Metro API,那么不,它不能被共享。如果您的代码调用了桌面 API,那么不,它不能被共享。

标签: c# windows-8 microsoft-metro


【解决方案1】:

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

在我看来,您最好的选择是采用一种将差异隔离开的模式; MVVM is a great candidate 用于跨平台的 GUI 应用程序。它需要为每个目标使用不同的 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

【讨论】:

  • 这就是我所担心的。我想在这种情况下,它将是一个仅限地铁的应用程序。当它真正完成时,可能会有更简单的移植工具。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
相关资源
最近更新 更多