利用 Windows 8 功能和 MVVM

來源:互聯網
上載者:User

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 檔案中的合約

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.