为 Metro 和桌面开发 Windows 8 应用程序。

3
我计划开发一款可以在手机、平板电脑和个人电脑上使用的 Windows 8 应用程序。据我所知,我可以为所有设备使用相同的代码。(当然,某些 UI 方面需要进行调整)
由于这是一个商务应用程序,客户希望有一个额外的桌面版本。我可以使用 Metro 代码来制作桌面版本吗?为了同时开发 Metro 应用程序和桌面应用程序,我需要采取什么步骤呢?
P.S. 我打算使用 C# 进行开发...

很抱歉,我有点难以理解您的问题,您的主要问题是:将Metro应用程序移植到桌面应用程序的过程是什么?您最好更改标题以反映这一点。 - George Bora
2个回答

7

是的,你可以使用几乎相同的代码来实现MVVM模式下的两个应用程序。在这种模式下,您的应用程序被分为三个主要部分:视图(View)、视图模型(ViewModel)和模型(Model)。模型和视图模型是可移植的(您可以创建一个便携式库,并从Metro和桌面应用程序项目中引用相同的文件链接)。视图取决于平台。

正如您所想象的那样,模型是数据,而视图模型是连接视图和模型的东西。问题在于,您可能希望将数据保存到本地存储中,这取决于平台。为此,您可以创建接口并将其实现在您的视图模型上,这是不同平台的视图模型中唯一不同的部分。


2
是和不是。
是的,您可以在Metro和桌面应用程序中都使用C#代码。
但是这些应用程序在处理数据和输入方面存在很多差异。
它们是两个完全不同的系统,具有不同的输入方式和页面构建方式等等。
例如,在桌面应用程序中不适用沙箱技术。(这只是数百万个示例之一)。
虽然您的应用程序的主要逻辑将保持不变,但在两者之间转换并不简单。 是一个涵盖相反情况的资源。

1
感谢您提出一个非常微妙但重要的观点。它们都建立在.NET语言之上,但它们不仅仅是两个不同的UI。它们有些不同的范例。MVVM无法完全解决这个问题。可移植类库试图解决这个问题,但目前还没有达到100%的效果。 - Joel B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接