
編可視化程序設(shè)計(jì)技術(shù)及應(yīng)用培訓(xùn)
01
HelloWorld
環(huán)境安裝
課程簡(jiǎn)介
平臺(tái)簡(jiǎn)介
HelloWorld
Hello World(小程序)
02
控件
參考代碼
網(wǎng)格布局
堆棧布局
滾動(dòng)視圖
超鏈接按鈕
彈出信息
開關(guān)
滑塊與數(shù)據(jù)綁定
網(wǎng)格布局(小程序)
開關(guān)(小程序)
03
高級(jí)控件
參考代碼
VisualStateManager
顯示一組數(shù)據(jù)
控件的套路
顯示一組數(shù)據(jù)(小程序)
04
管理數(shù)據(jù)
數(shù)據(jù)的類型
管理零散的數(shù)據(jù):偏好存儲(chǔ)
管理批量的數(shù)據(jù):數(shù)據(jù)庫(kù)
訪問(wèn)遠(yuǎn)程數(shù)據(jù):Web服務(wù)
管理零散的數(shù)據(jù):偏好存儲(chǔ)(小程序)
管理批量的數(shù)據(jù):數(shù)據(jù)庫(kù)(小程序)
訪問(wèn)遠(yuǎn)程數(shù)據(jù):Web服務(wù)(小程序)
參考代碼
05
Model-View-ViewModel(MVVM)模式
MVVM模式簡(jiǎn)介
ViewModel與可綁定屬性
可綁定命令
ViewModelLocator與依賴注入
全局資源與數(shù)據(jù)綁定
重新審視MVVM
數(shù)據(jù)綁定的技術(shù)本質(zhì)
可綁定命令的技術(shù)本質(zhì)
MVVM的小程序?qū)崿F(xiàn)(小程序)
參考代碼
06
MVVM + IService架構(gòu)
重構(gòu)Database項(xiàng)目
RelayCommand與Live Template
IService
實(shí)現(xiàn)IService
整合ViewModel與IService
View與ViewModelLocator
反思MVVM + IService架構(gòu)
定義并實(shí)現(xiàn)Service(小程序)
整合ViewModel與Service(小程序)
參考代碼
07
開啟Dpx項(xiàng)目:重新審視數(shù)據(jù)庫(kù)
項(xiàng)目模板
參考代碼
主從項(xiàng)目模板
了解詩(shī)詞數(shù)據(jù)庫(kù)
詩(shī)詞類與實(shí)體關(guān)系映射
布局屬性與字符串常量
預(yù)覽屬性與可忽略映射
設(shè)計(jì)詩(shī)詞存儲(chǔ)服務(wù)接口
編碼規(guī)范
實(shí)現(xiàn)詩(shī)詞存儲(chǔ)1:const與static readonly
實(shí)現(xiàn)詩(shī)詞存儲(chǔ)2:創(chuàng)建嵌入式資源文件
實(shí)現(xiàn)詩(shī)詞存儲(chǔ)3:部署嵌入式資源文件
實(shí)現(xiàn)詩(shī)詞存儲(chǔ)4:追蹤數(shù)據(jù)庫(kù)版本
實(shí)現(xiàn)詩(shī)詞存儲(chǔ)5:操作數(shù)據(jù)庫(kù)
08
源代碼管理
簡(jiǎn)介
創(chuàng)建項(xiàng)目
同步代碼
解決沖突
撤銷更改
分支開發(fā)
09
單元測(cè)試數(shù)據(jù)庫(kù)
創(chuàng)建測(cè)試項(xiàng)目
斷言文件是否存在
測(cè)試初始化數(shù)據(jù)庫(kù)
為測(cè)試而修改設(shè)計(jì)1:剝離無(wú)法測(cè)試的代碼
Mock接口與清理副作用
測(cè)算代碼覆蓋率
驗(yàn)證Mock函數(shù)調(diào)用
Mock函數(shù)功能
測(cè)試幫助類
為測(cè)試而修改設(shè)計(jì)2:關(guān)閉數(shù)據(jù)庫(kù)
完成測(cè)試
10
搜索結(jié)果頁(yè)View與ViewModel
搜索結(jié)果頁(yè)View:準(zhǔn)備工作
設(shè)計(jì)時(shí)數(shù)據(jù)
在ListView的底端顯示數(shù)據(jù)
搜索結(jié)果頁(yè)ViewModel:準(zhǔn)備工作
無(wú)限滾動(dòng):準(zhǔn)備工作
無(wú)限滾動(dòng):實(shí)現(xiàn)
在頁(yè)面顯示時(shí)加載數(shù)據(jù)
單元測(cè)試可綁定屬性
單元測(cè)試可綁定命令
連接View與ViewModel:準(zhǔn)備工作
將命令關(guān)聯(lián)到事件
為測(cè)試運(yùn)行而修改設(shè)計(jì)
無(wú)限滾動(dòng):設(shè)置控件行為
11
開啟Dpx-Mini項(xiàng)目:小程序數(shù)據(jù)庫(kù)(小程序)
創(chuàng)建項(xiàng)目(小程序)
數(shù)據(jù)庫(kù)服務(wù)(小程序)
詩(shī)詞存儲(chǔ)服務(wù):定義成員變量(小程序)
詩(shī)詞存儲(chǔ)服務(wù):獲取一條數(shù)據(jù)(小程序)
詩(shī)詞存儲(chǔ)服務(wù):獲取一組數(shù)據(jù)(小程序)
搜索結(jié)果頁(yè):定義成員變量(小程序)
搜索結(jié)果頁(yè):在頁(yè)面顯示時(shí)加載數(shù)據(jù)(小程序)
搜索結(jié)果頁(yè):為無(wú)限滾動(dòng)載入數(shù)據(jù)(小程序)
搜索結(jié)果頁(yè):關(guān)聯(lián)View與ViewModel(小程序)
搜索結(jié)果頁(yè):使用wxs處理View數(shù)據(jù)
搜索結(jié)果頁(yè):界面美化
12
導(dǎo)航
導(dǎo)航服務(wù)接口
導(dǎo)航功能介紹
訪問(wèn)MainPage
Xamarin.Forms的NavigationPage
導(dǎo)航與MVVM + ISerivce架構(gòu)
定義頁(yè)面鍵
創(chuàng)建頁(yè)面實(shí)例:不優(yōu)雅的做法
緩存頁(yè)面實(shí)例
使用內(nèi)容導(dǎo)航服務(wù)
創(chuàng)建頁(yè)面實(shí)例:優(yōu)雅的做法
帶參數(shù)導(dǎo)航:介紹
帶參數(shù)導(dǎo)航:自定義可綁定屬性
帶參數(shù)導(dǎo)航:綁定到自定義可綁定屬性
帶參數(shù)導(dǎo)航:賦值到自定義可綁定屬性
13
值轉(zhuǎn)換器
詩(shī)詞詳情頁(yè)
定義值轉(zhuǎn)換器
單元測(cè)試值轉(zhuǎn)換器
使用值轉(zhuǎn)換器
向可綁定命令傳遞參數(shù)
帶參數(shù)的可綁定命令
單元測(cè)試帶參數(shù)的可綁定命令
使用值轉(zhuǎn)換器向可綁定命令傳遞參數(shù)
反思帶參數(shù)導(dǎo)航與值轉(zhuǎn)換器
14
導(dǎo)航(小程序)
準(zhǔn)備工作(小程序)
內(nèi)容導(dǎo)航服務(wù)(小程序)
詩(shī)詞詳情頁(yè):按條件生成CSS(小程序)
詩(shī)詞詳情頁(yè):處理縮進(jìn)(小程序)
調(diào)用導(dǎo)航服務(wù)(小程序)
測(cè)試導(dǎo)航服務(wù)(小程序)
15
收藏存儲(chǔ)
設(shè)計(jì)收藏存儲(chǔ)服務(wù)
設(shè)計(jì)收藏Model
更新收藏存儲(chǔ)服務(wù)的設(shè)計(jì)
實(shí)現(xiàn)收藏存儲(chǔ)服務(wù)
準(zhǔn)備單元測(cè)試
測(cè)試收藏存儲(chǔ)
在詩(shī)詞結(jié)果頁(yè)上顯示收藏狀態(tài):ViewModel部分
在詩(shī)詞結(jié)果頁(yè)上顯示收藏狀態(tài):View部分
Switch控件的神奇問(wèn)題
修復(fù)收藏存儲(chǔ)的錯(cuò)誤
16
收藏存儲(chǔ)(小程序)
收藏存儲(chǔ):讀取數(shù)據(jù)(小程序)
收藏存儲(chǔ):保存數(shù)據(jù)(小程序)
在詩(shī)詞結(jié)果頁(yè)上顯示收藏狀態(tài):讀取數(shù)據(jù)(小程序)
在詩(shī)詞結(jié)果頁(yè)上顯示收藏狀態(tài):保存數(shù)據(jù)(小程序)
17
LINQ、線程安全與事件
準(zhǔn)備詩(shī)詞收藏頁(yè)ViewModel
LINQ與await
詩(shī)詞收藏頁(yè)View
詩(shī)詞收藏頁(yè)的數(shù)據(jù)重復(fù)加載問(wèn)題
線程安全問(wèn)題
兩階段加鎖
跨頁(yè)面同步數(shù)據(jù):簡(jiǎn)介
跨頁(yè)面同步數(shù)據(jù):定義事件
跨頁(yè)面同步數(shù)據(jù):處理事件
跨頁(yè)面同步數(shù)據(jù):?jiǎn)卧獪y(cè)試事件
18
事件(小程序)
詩(shī)詞收藏頁(yè)(小程序)
在回調(diào)函數(shù)中關(guān)聯(lián)數(shù)據(jù)(小程序)
回調(diào)函數(shù)與變量的作用域(小程序)
利用回調(diào)函數(shù)實(shí)現(xiàn)事件(小程序)
19
根導(dǎo)航
設(shè)計(jì)根導(dǎo)航服務(wù)
實(shí)現(xiàn)根頁(yè)面激活服務(wù)
實(shí)現(xiàn)根導(dǎo)航服務(wù)
導(dǎo)航菜單頁(yè)View
導(dǎo)航菜單頁(yè)ViewModel
整合導(dǎo)航菜單頁(yè)View與ViewModel
初始化App:初始化頁(yè)ViewModel
初始化App:初始化頁(yè)View
解決根導(dǎo)航的錯(cuò)誤
20
根導(dǎo)航(小程序)
小程序根導(dǎo)航(小程序)
21
跨設(shè)備同步數(shù)據(jù)
跨設(shè)備同步功能介紹
為同步更新設(shè)計(jì):本地?cái)?shù)據(jù)
設(shè)計(jì)遠(yuǎn)程收藏存儲(chǔ)服務(wù)
設(shè)計(jì)同步服務(wù)接口
實(shí)現(xiàn)同步服務(wù)
同步算法
單元測(cè)試同步服務(wù)
22
與OneDrive同步
安裝Microsoft Graph客戶端
注冊(cè)App ID
基于OneDrive的遠(yuǎn)程收藏存儲(chǔ)
登錄到OneDrive
測(cè)試登錄
其他與登錄有關(guān)的函數(shù)
壓縮收藏?cái)?shù)據(jù)
上傳收藏?cái)?shù)據(jù)到OneDrive
從OneDrive下載收藏?cái)?shù)據(jù)
數(shù)據(jù)同步頁(yè)ViewModel
數(shù)據(jù)同步頁(yè)View
23
訪問(wèn)Web服務(wù)
設(shè)計(jì)詩(shī)詞推薦服務(wù)接口
可以使用拼音命名變量么?
訪問(wèn)Web服務(wù):錯(cuò)誤的方法
HttpClient存在的問(wèn)題
處理網(wǎng)絡(luò)異常
在主線程上執(zhí)行UI交互
優(yōu)雅地生成錯(cuò)誤信息
將非正常HTTP狀態(tài)碼處理為異常
簡(jiǎn)測(cè)GetToken函數(shù)
獲取詩(shī)詞推薦
簡(jiǎn)測(cè)GetTodayPoetry函數(shù)
生成隨機(jī)推薦
總結(jié)
24
單元測(cè)試Web服務(wù)
簡(jiǎn)介
使用SoapUI Mock Web服務(wù)
使用SwitchHosts解析域名
反向代理服務(wù)器:簡(jiǎn)介
安裝node-http-proxy
準(zhǔn)備KeyTool
使用KeyTool生成密鑰存儲(chǔ)
使用KeyStore Explorer生成p12文件
將p12證書導(dǎo)入到操作系統(tǒng)
為服務(wù)器生成證書
Mock HTTPS Web服務(wù)
單元測(cè)試Web服務(wù)客戶端
Mock并測(cè)試Sentence服務(wù)客戶端
總結(jié)
25
文件的下載與緩存
簡(jiǎn)介
設(shè)計(jì)今日?qǐng)D片服務(wù)
設(shè)計(jì)今日?qǐng)D片存儲(chǔ)服務(wù)
利用圖片存儲(chǔ)服務(wù)讀取圖片
理解必應(yīng)每日?qǐng)D片服務(wù)
檢查圖片更新的策略與方法
測(cè)試TodayImageService
實(shí)現(xiàn)圖片存儲(chǔ)服務(wù)
詩(shī)詞推薦頁(yè)ViewModel
詩(shī)詞推薦頁(yè)View
將字節(jié)數(shù)組轉(zhuǎn)換為圖像源
多線程
深入await/async
深入依賴注入
26
訪問(wèn)Web服務(wù)(小程序)
警告服務(wù)(小程序)
偏好存儲(chǔ)(小程序)
生成錯(cuò)誤信息(小程序)
訪問(wèn)今日詩(shī)詞服務(wù):準(zhǔn)備工作(小程序)
訪問(wèn)今日詩(shī)詞服務(wù):獲得Token(小程序)
訪問(wèn)今日詩(shī)詞服務(wù):獲得詩(shī)詞推薦(小程序)
生成隨機(jī)推薦(小程序)
27
顯示圖片與檢查更新(小程序)
圖片信息存儲(chǔ)服務(wù)(小程序)
今日?qǐng)D片服務(wù)(小程序)
今日推薦頁(yè)ViewModel(小程序)
今日推薦頁(yè)View(小程序)
28
服務(wù)器端身份驗(yàn)證
服務(wù)器端開發(fā)的基礎(chǔ)設(shè)施:自有服務(wù)器
服務(wù)器端開發(fā)的基礎(chǔ)設(shè)施:云服務(wù)器
服務(wù)器端開發(fā)的平臺(tái)選擇:XaaS
服務(wù)器端開發(fā)的平臺(tái)選擇:Azure Functions
身份驗(yàn)證服務(wù)提供商:Auth0
設(shè)計(jì)服務(wù)器端身份驗(yàn)證服務(wù)
為安卓項(xiàng)目準(zhǔn)備身份驗(yàn)證
安卓項(xiàng)目的身份驗(yàn)證服務(wù)
注冊(cè)Auth0
注冊(cè)GitHub APP ID
獲得訪問(wèn)Token
認(rèn)識(shí)JWT Token
iOS項(xiàng)目的身份驗(yàn)證服務(wù)
UWP項(xiàng)目的身份驗(yàn)證服務(wù)
實(shí)現(xiàn)自己的身份驗(yàn)證服務(wù):使用IdentityServer
準(zhǔn)備Azure遠(yuǎn)程收藏存儲(chǔ)
實(shí)現(xiàn)Azure遠(yuǎn)程收藏存儲(chǔ)
測(cè)試客戶端
設(shè)計(jì)服務(wù)器端身份驗(yàn)證服務(wù)
實(shí)現(xiàn)服務(wù)器端身份驗(yàn)證服務(wù)
首個(gè)Function:Ping
29
服務(wù)器端授權(quán)
簡(jiǎn)介
服務(wù)器端鍵值存儲(chǔ):Azure Table Storage
連接到Table Storage:使用AzureStorageAccountProvider
服務(wù)器端授權(quán)服務(wù)
準(zhǔn)備授權(quán)數(shù)據(jù)庫(kù)
測(cè)試服務(wù)器端授權(quán)服務(wù)
30
服務(wù)器端函數(shù)
設(shè)計(jì)并實(shí)現(xiàn)服務(wù)器端收藏存儲(chǔ)服務(wù)
服務(wù)器端依賴注入
實(shí)現(xiàn)保存函數(shù)
測(cè)試保存函數(shù)
實(shí)現(xiàn)讀取函數(shù)
完成客戶端
測(cè)試客戶端
31
ViewModel in ViewModel
小ViewModel
大ViewModel
用于ViewModel in ViewModel的View
動(dòng)態(tài)LINQ簡(jiǎn)介
實(shí)現(xiàn)動(dòng)態(tài)LINQ
測(cè)試動(dòng)態(tài)LINQ
完結(jié)項(xiàng)目
32
ViewModel in ViewModel(小程序)
實(shí)現(xiàn)VM in VM(小程序)
用于VM in VM的View(小程序)
支持VM in VM的事件(小程序)
生成動(dòng)態(tài)查詢(小程序)
云函數(shù)概覽(小程序)