信息
您所需的主题如下所示。但此主题未包含在此库中。

使用模型视图查看模型模式来分离 UI 和应用逻辑

2014/6/18

适用于: Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows 8

在 Windows Phone 8 和 Windows 8 应用之间共享代码的最大潜力在于您的应用逻辑。我们建议您针对每一个平台定制应用 UI,以便您可以通过统一每一个平台的用户体验准则,交付最佳的用户体验。Windows Phone 8 和 Windows 8 支持的设计概念和 XAML 控件相类似,但是您不应对共享 XAML 进行投入。相反,构造您的应用逻辑使之可以重用将会更成功。我们建议您在应用中使用模型视图查看模型 (MVVM) 设计模式。

本主题包括以下部分。

MVVM 是一种将数据从 UI 中分离的方式。在 MVVM 设计模式下,开发人员可以编码应用逻辑,设计人员可以创建 UI。XAML 旨在让使用 MVVM 构建应用变得简单,二者使 UI 和应用逻辑的分离变得简单自然,从这个意义上来说二者是互补的。下图演示使用 MVVM 设计模式所构建的应用的基本体系结构。

Alignment_Concept_MVVM

在模型视图查看模型设计模式下,应用由三个常规组件组成。

  • 模型:这代表应用使用的数据模型。例如,在图片共享应用中,该层可能代表设备上可用的图片集和用于读取和写入图片库的 API。

  • 视图:应用通常由 UI 的多个页面组成。对用户显示的每一个页面即 MVVM 术语中的视图。视图是用于定义和设计用户所看到内容的 XAML 代码。模型中的数据显示给用户,ViewModel 根据应用的当前状态将该数据提供给 UI。例如,在图片共享应用中,视图是向用户显示设备上的相册列表和相册中的图片的 UI,以及向用户显示特定图片的另一个可能的 UI。

  • ViewModel:ViewModel 将数据模型或仅仅是模型绑定到应用的 UI 或视图。它包含用以管理模型中的数据的逻辑,而且将数据作为 XAML UI 或视图可以绑定的属性集公开。例如,在图片共享应用中,ViewModel 将公开相册列表,并对每一个相册公开图片列表。UI 不知道图片的来源和检索方式。它只知道被 ViewModel 公开的图片集,并且向用户显示它们。

有关 MVVM 的更多信息,请参见实现面向 Windows Phone 8 的模型视图查看模型模式。除了为进一步简化 MVVM 编写而构建的框架外,还有许多其他资源有助于您了解 MVVM。MVVM 或任何其他分离模式是一种优秀的构建应用的方式,如果您考虑构建 Windows Phone 8 和 Windows 8 应用,那么更是如此。它赋予您最大的共享代码的潜力。

如果您要构建 Windows Phone 8 和 Windows 8 应用,建议您设计和开发根据各个平台定制的 UI,以交付最佳的用户体验。应用的大多数 UI 或视图将特定于平台。应用的其他部分有可能在 Windows Phone 8 应用和 Windows 应用商店 应用之间实现可移植或通用。下图对此予以说明。

Alignment_Concept_MVVMCallouts

可移植代码和通用代码存在差异。可移植代码指任何编译一次后可以在 Windows Phone 8 和 Windows 8 上运行的代码。例如,大多数的 .NET API 在这两个平台之间可移植,而且可以在可移植类库中实现。通用代码指使用通用于这两个平台的 API 的代码,但是不可移植。例如,使用通用于 Windows Phone 8 和 Windows 8 的 Windows 运行时 API 的代码被视为通用,但是它不可移植,因为必须针对每一个平台对它进行编译。它也不可用于可移植类库。即使是使用 MVVM,应用可以共享代码的具体程度仍取决于应用的复杂性及其所使用的 API。

显示: