利用 Windows 8 功能和 MVVM

Windows 8 引入了许多新功能,开发人员可利用这些功能创建引人注目的应用程 序和形式丰富的 UX。遗憾的是,这些功能并非总是易于进行单元测试。共享和辅助磁贴等功 能可提高应用程序的互动性和趣味,但也会变得不太易于测试。

在本文中,我将介绍 让应用程序可使用共享、设置、辅助磁贴、应用程序设置和应用程序存储等功能的多种不同 方式。通过使用模型-视图-视图模型 (MVVM) 模式、依赖注入和某些抽象,我将向您演示如 何利用这些功能,同时将表示层保持易于进行单元测试。

关于示例应用程序

为了说明将在本文中谈论的概念,我已使用 MVVM 编写了一个示例 Windows 应用商 店应用程序,用户使用它可通过其喜爱的博客的 RSS 源查看博客文章。该应用程序说明了如 何:

通过“共享”超级按钮与其他应用程序共享有关某篇博客文章的信息

用“设置”超级按钮更改用户要阅读的博客

用辅助磁贴将喜爱的博客文章固定到“开始”屏幕供以后阅读

保存喜爱的博客以供在所有具有漫游设置的设备上查看

除了该示例应用程序,我还使用了将在本文中谈论的特定 Windows 8 功能,并将其抽象 化为一个名为 Charmed 的开源库。Charmed 可用作帮助程序库或仅用作参考。Charmed 的目 标是成为一个适用于 Windows 8 和 Windows Phone 8 的跨平台 MVVM 支持库。我将在以后 的文章中详细谈论该库的 Windows Phone 8 一面。可在 bit.ly/17AzFxW 了解 Charmed 库的进展。

我 对于本文和示例代码的目标是演示我使用 Windows 8 提供的某些新功能开发采用 MVVM 模式 的可测试应用程序的方法。

MVVM 概述

在深入探讨代码和特定 Windows 8 功能之前,我将简要介绍一下 MVVM。MVVM 是近年来在基于 XAML 的技术方面广受青睐的一 种设计模式,这些技术包括 Windows Presentation Foundation (WPF)、Silverlight、 Windows Phone 7、Windows Phone 8 和 Windows 8(Windows Runtime,简称 WinRT)。 MVVM 将应用程序的体系结构划分为三个逻辑层: 模型、视图模型和视图,如图 1 所示。

图 1:模型-视图- 视图模型的三个逻辑层

模型层涉及应用程序的业务逻辑,即业务对象、数据验证、数 据访问等。实际上,模型层通常分为更多层,甚至可能分为多个层级。如图 1 所示,模型层 是应用程序在逻辑意义上的底部,或称基础。

视图模型层容纳应用程序的表示逻辑, 其中包括要显示的数据、帮助启用 UI 元素或使其可见的属性以及将同时与模型层和视图层 进行交互的方法。基本上,视图模型层是对于 UI 当前状态的一种与视图无关的表示形式。 我说“与视图无关”是因为它仅仅为要与之交互的视图提供数据和方法,而不指示该视图将 如何表示数据,也不允许用户与这些方法进行交互。如图 1 所示,视图模型层在逻辑上位于 模型层与视图层之间,并可与后两者交互。视图模型层包含以前将位于视图层的隐藏代码中 的代码。

视图层包含应用程序的实际表示形式。对于基于 XAML 的应用程序,如 Windows Runtime 应用程序,视图层主要(如果不是全部)由 XAML 构成。视图层利用强大 的 XAML 数据绑定引擎绑定到视图模型上的属性,同时将某种外观应用于在其他情况下没有 可视化表示形式的数据。如图 1 所示,视图层是应用程序在逻辑意义上的顶部。视图层直接 与视图模型层交互,但对模型层一无所知。

MVVM 模式的主要用途是将应用程序的表 示形式与其功能相分离。这样做使应用程序对于单元测试更加有益,因为功能现在位于普通 旧 CLR 对象 (POCO) 中,而非自行决定生命周期的视图中。

合约

Windows 8 引入了合约的概念,即两个或更多应用程序对于用户系统达成的协议。这些合约使所有应 用程序保持一致,并使开发人员可从任何支持功能的应用程序中利用这些功能。应用程序可 在 Package.appxmanifest 文件中声明其支持的合约,如图 2 所示。

图 2: Package.appxmanifest 文件中的合约

时间: 2024-11-02 08:21:25

利用 Windows 8 功能和 MVVM的相关文章

如何利用Windows Server Backup备份数据进行域控裸机还原

在<利用Windows Server Backup功能备份活动目录 >一文中我讲解了如何进利用Windows Server Backup功能来对域控进行备份,在本次的博文中,我们就一起来看看如何还原之前利用Windows Server Backup备份的域控信息来进行裸机还原操作: 操作步骤可参考如下: 1) 开机加载Windows Server 2008 R2 SP1光盘至服务器光驱,从光盘启动: 2) 在下图所示页面中,单击"下一步"按钮: 3) 在下图所示页面中,选择

网络间谍小组利用Windows热补丁实现恶意软件隐身

本文讲的是网络间谍小组利用Windows热补丁实现恶意软件隐身,在亚洲活动的一个网络间谍小组正使用被称为"热补丁"(Hotpatching)的Windows即时更新特性,使恶意软件更难被安全产品发现. 来自微软的恶意软件研究人员将这一小组称为Platinum,它自2009年开始活动,其目标主要是南亚和东南亚国家的政府机构.国防组织.情报单位和通讯运营商.马来西亚.印度尼西亚和中国受害最为严重. 目前为止,该小组的主要攻击方式是鱼叉式钓鱼:针对特定组织或个人,定制化伪造电子邮件.此手段通

flash教程:利用AS脚本功能实现图片模糊变清晰

核心提示:在一些片头动画里我们经常能看到很炫的模糊变清晰的特效动画,极具视觉冲击. 在一些片头动画里我们经常能看到很炫的模糊变清晰的特效动画,极具视觉冲击.高质量的模糊效果大多利用Photoshop处理后才导入Flash中,然后利用AS脚本功能来实现图片模糊变清晰的变化效果,效果很不错. 首先用Photoshop制作两张图.一张清晰的的,一张模糊的(可以用Photoshop的高斯模糊滤镜). 把两张图片导入到FLASH中,分别建立三个图层,顺序依次为:清楚的图片(最下面).模糊的图片(在中间).

分享如何利用百度新功能“新鲜事”推广站点

近期大家可能都已经注意到了,只要你登陆到百度的账号到达百度的首页,你会发现多了一个实时热点的板块.这一板块主要是列举出最近搜索者在关心的问题.其实这一模块下还有另一个板块,那就是新鲜事.这一个新的功能是显示在百度贴吧和百度空间包括你和你的好友近期发布的文章,上传的照片,更新的内容等最新动态.这一模式有点类似于社交网络.我们可以打个比方,如果我有一个百度账号,上面有大量的粉丝,而我发表的信息就可以在他们的百度首页里面显示,如果我们可以合理的利用这一功能,将会给我们的站点带来不错的效益的.   下面

在Windows8系统中利用家庭组功能共享文件和文件夹的方法

在Win8中沿用了Win7的家庭组功能,可以使用户在局域网中简便的分享文件与文件夹.设置方法也基本相同,下面就让我们来看看Win8中利用家庭组功能共享文件和文件夹是如何实现的. 如果你是技术帝或者已经非常清楚Win7家庭组的使用方法,可以直接飘过. 首先,Win+X命令菜单之后,打开控制面板 - 选择家庭组和共享选项. 如果局域网中没有人曾创建过家庭组,那我们自己就来创建一个,单击"创建家庭组" - 下一步 - 下一步.创建完毕之后,系统会自动弹出一个默认的家庭组密码,我们把它记下来!

利用跟踪保护功能为IE9拦截广告

首先,我们先启用IE9跟踪保护功能: 单击IE9右上角的[工具]图标,再单击[安全性],最后再单击[跟踪保护]. 在[管理加载项]窗口中,单击[跟踪保护],然后单击[您的个人列表],最后再单击[启用]. 接下来,只要单击下面的 ChinaList and EasyList TPL 链接: ChinaList and EasyList TPL 在弹出的对话框中选择[添加列表],这样就可以达到广告拦截的功能了. 该跟踪保护列表的拦截规则是从adblock的chinalist转换而来,另外加上easy

利用Windows 7权限,间接提升系统安全性。

在Windows XP系统下,用户在限制USB设备使用方面,首先考虑的就是禁止其自动播放,以避免木马病毒入侵.但很多时候,这样的方法并不是很有效.如果你是Windows 7用户,那就可以通过它独有的"权限控制"技术,从源头上控制USB设备的自动运行. 那么,怎样才能从源头控制呢? 大家应该都知道,当USB设备插入电脑主机,稍后一会,系统将会提示XX设备已经可以使用,这个过程其实就是系统识别,并为USB设备安装驱动的过程.我们可以利用Windows 7特有的权限控制功能,禁止它自动识别并

win7如何开启“Windows Serach”功能

      win7如何开启"Windows Serach"功能       1.点击"开始菜单",点击"控制面板"; 2.在控制面板将查看方式修改为"类别",然后点击"程序"; 3.点击"打开或关闭Windows 功能"; 4.等待片刻,在弹出的[Windows 功能]框中找到并勾选"Windows Serach"然后点击确定. 5.保持计算机在联网状态下,稍等片刻

360云盘Windows版功能大全内都有什么功能

  360云盘Windows版功能大全内都有以下功能: 天天抽奖:试一试手气,天天都能涨空间. 云盘回收站:帮你找回30天内删除的所有文件. 网速测量器:测一测上传下载的真实网速. 文件保险箱:用双层密码保护你的私密文件. 锁定云盘(Ctrl+Alt+):离开电脑时帮你锁定云盘,防止别人查看(热键可在设置对话框中更改). 离线下载:用服务器帮你直接下载资源到云盘. 文件时光机:帮你把文件恢复到以前任何时候,文件改了也不怕.