天天看點

UWP - Application Development Mechanism

從Microsoft Store看所用的開發技術

翻出了吃灰很久的Lumia 950

不多說,上圖

UWP - Application Development Mechanism

這是Windows Phone上的Microsoft Store應用

開發一個App,除了使用Controls之外,還會使用一些Mechanism,就比如說應用之間的通信,檔案通路,使用者認證,擷取傳感器資料等等

今天,我就在這裡對照着Microsoft Store這個應用來大概說一下我的看法。

App-to-app

UWP - Application Development Mechanism

這是Microsoft Store裡面的應用分享界面,點選後會将目前檢視的應用以一個連結的方式發送到另外一個應用, 這個應用可以發送給他人(比如說QQ)

這是Dev-Center:App-to-app

具體的實作,大概就是(我的猜想)點選分享按鈕的時候會觸發一個DataRequested事件,并将要分享的資料放入DataPackage中,然後發給目标App

這個功能基本上所有應用都會使用,非常使用,但是形式也會比較單一。

盡管微軟在DataPackage類中提供的可擴充性,但是大部分應用分享的隻是一段文本而已。

Data access

UWP - Application Development Mechanism

資料通路,這幾乎就是基本功能了,資料是一個App的基礎,而Microsoft Store作為應用中心,在通路自身資料的同時,更是要負責安裝别的應用。資料通路權限很高。

Microsoft Store要存儲本地所有應用的版本資訊,安裝狀态,就一定要在本地有資料庫(可能用的是SQLite),而它又要能查詢應用,顯示應用資訊,這又必然需要遠端資料庫(SQL Server),是以Data access這一部分是必須的。

Dev-Center中這一部分講得是資料庫通路(database connection),使用者本地使用SQLite而遠端資料庫使用SQL Server。鑒于SQL Server是親兒子,Microsoft Store基本上遠端用的肯定是SQL Server了。

Dev-Center:SQL Server

Launching, resuming, and background tasks

背景運作這個就沒圖了:(

總之一個應用商店,一定要支援應用可以背景下載下傳安裝以及更新,否則沒有人會願意開着應用商店去等那些長的讓人崩潰的更新

Dev-Center:Support your app with background tasks

而且,我們時常會發現,很多應用,比如《愛應用》,會點選下載下傳應用後跳轉到Microsoft Store下載下傳,這就用到了這裡的Launching,使用一個URI來喚起一個應用。

Dev-Center:Launch an app with a UR

Networking and web services

UWP - Application Development Mechanism

網絡,和web服務,一個應用商店如果缺少了這兩樣那就不是應用商店了。

下載下傳應用,更新應用需要網絡,來傳輸大塊資料,要求穩定,錯誤率低

查找應用,浏覽應用也需要網絡,來傳輸小的應用資訊資料,要求速度高

而為了滿足背景下載下傳和更新的需求,則需要Background Transfer

這裡微軟提供了不同的網絡協定可供選擇:Socket,WebSocket,HTTP等等

Dev-Center:Networking and web services

Security

UWP - Application Development Mechanism

應用商店要登陸微軟賬戶!微軟賬戶!賬戶!

這是很多小白或者新手望而卻步的地方——嫌麻煩

但是,不得不說這是一個負責任的做法。

跑題了。。。

應用商店是基于微軟賬戶的,自然,使用者登陸,驗證是必不可少的功能。

微軟還很貼心地提供了一個類AccountsSettingsPane 來處理賬戶關聯等問題。

詳情就見Dev-Center把:Web Account Manager

電腦沒電了,匆匆寫到這裡。

有些詫異自己竟然是目前用類最多的那一個:)