Xamarin全棧開發技術與實踐(微課版)

Xamarin全棧開發技術與實踐(微課版)

《Xamarin全棧開發技術與實踐(微課版)》是2021年清華大學出版社出版的圖書,作者是張引、趙玉麗、張斌、高克寧。

基本介紹

  • 中文名: Xamarin全棧開發技術與實踐(微課版)
  • 作者:張引、趙玉麗、張斌、高克寧
  • 出版時間:2021年
  • 出版社: 清華大學出版社
  • ISBN: 9787302591535  
  • 定價:79 元
內容簡介,圖書目錄,

內容簡介

複雜工程問題的解決要求學生具備整合運用客戶端開發技能棧、伺服器端開發技能棧、軟體工程技能棧、人機互動技能棧等多個技能棧的能力。為培養學生多技能棧整合運用的能力,本書介紹基於Xamarin.Forms框架的面向iOS、Android,以及Windows平台的客戶端伺服器端Xamarin全棧開發技術,涵蓋語言特性、設計思想、技術技巧、測試方法等內容,並通過一個完整的實例連線全部知識與技能。本書尤其注重多種技術棧的有機融合,為培養解決複雜工程問題的能力提供完整的支持。
本書面向具有一定計算機專業課基礎的讀者。本書讀者應至少掌握一門程式語言,並能獨立完成簡單的開發任務。本書可作為全棧開發技術相關課程的本科生教材,也可以作為基於Xamarin.Forms框架的全棧開發入門參考書。

圖書目錄

第一部分基礎與用戶
第1章馬上開始3
1.1系統要求(簡化版)3
1.2下載Visual Studio Community3
1.3安裝Visual Studio Community4
1.4註冊、下載並安裝ReSharper4
1.5安裝Android Studio5
1.6Hello World!6
1.7背景與概念8
1.8系統要求(完整版)9
1.9動手做10
第2章認識一批控制項11
2.1格線布局控制項Grid11
2.2線性布局控制項StackLayout13
2.3滾動視圖控制項ScrollView14
2.4超連結按鈕HyperlinkButton14
2.5彈出信息DisplayAlert16
2.6開關控制項Switch16
2.7滑塊控制項Slider17
2.8控制項使用的一般規律18
2.9動手做19
第3章尋找用戶20
3.1重視項目問題的質量20
3.2“認真地”觀察用戶: 使用5W方法22
3.3進一步了解用戶: 面對面訪談24
3.4同理心25
3.5奶爸F的觀察與訪談總結25
3.6動手做26
3.7給PBL教師的建議26
第4章再認識一批控制項28
4.1回響式設計與VisualStateManager28
4.2列表視圖控制項ListView31
4.3動手做34
4.4給PBL教師的建議34
第5章提出並評價界面設計36
5.1繪製界面設計36
5.2形成操作動線38
5.3評價界面設計39
5.4動手做40
第6章開啟數據管理之門41
6.1管理少量本地數據: 偏好存儲42
6.2管理大量本地數據: 資料庫42
6.3訪問遠程數據: Web服務46
6.4是否優雅47
6.5動手做49
Xamarin全棧開發技術與實踐(微課版)目錄第二部分框架與方法
第7章踏上軟體架構之路53
7.1ModelViewViewModel架構模式53
7.2View54
7.3ViewModel55
7.3.1屬性56
7.3.2Command(命令)58
7.4ViewModelLocator59
7.5App.xaml61
7.6再次審視MVVM模式62
7.7動手做63
第8章MVVM + IService架構64
8.1Model64
8.2IService65
8.3在ViewModel中使用IService66
8.4實現IService68
8.5在ViewModel中獲得IService實例69
8.6審視MVVM + IService架構71
8.7動手做72
8.8給PBL教師的建議72
第9章編碼規範73
9.1命名規範73
9.2排版規範75
9.3文檔注釋規範76
9.4動手做78
9.5給PBL教師的建議78
第10章重新審視資料庫79
10.1開啟Dpx: 使用MasterDetail項目模板79
10.2選擇“好的”資料庫81
10.3提出“好的”資料庫設計83
10.4詩詞數據Model: Poetry類84
10.5詩詞數據管理IService: IPoetryStorage86
10.6實現IPoetryStorage87
10.6.1連線到資料庫: 通過Connection屬性87
10.6.2實現GetPoetryAsync函式: 語言集成查詢LINQ88
10.6.3實現GetPoetriesAsync函式: LINQ翻頁89
10.6.4實現InitializeAsync函式: 嵌入式資源90
10.6.5實現Initialized函式91
10.7反思資料庫91
10.8動手做92
10.9給PBL教師的建議92
第11章測試代碼94
11.1Hello Unit Test World!94
11.2Mocking: 模擬任意接口的實現96
11.3決定測試內容97
11.4測試PoetryStorage98
11.5為測試最佳化設計99
11.6再次測試PoetryStorage101
11.6.1測試Initialized函式: 驗證Mocking調用101
11.6.2測試InitializeAsync函式: 清除副作用102
11.6.3測試GetPoetryAsync函式: 再次調整設計103
11.6.4測試GetPoetriesAsync函式: 初識動態LINQ105
11.7反思單元測試106
11.8動手做107
11.9給PBL教師的建議107
第12章實戰級資料庫View與ViewModel109
12.1搜尋結果頁View: 設計時數據109
12.2搜尋結果頁ViewModel111
12.2.1無限滾動與InfiniteScrollCollection111
12.2.2重置搜尋結果與PageAppearingCommand114
12.3單元測試搜尋結果頁ViewModel115
12.3.1為ViewModel準備IService115
12.3.2測試Command: 使用Command函式117
12.3.3測試可綁定屬性: 監聽PropertyChanged事件118
12.4連線View與ViewModel119
12.4.1ViewModelLocator與App.xaml120
12.4.2擴展控制項的功能: 使用Behavior121
12.5實戰的反思123
12.6動手做124
12.7給PBL教師的建議124
第13章原始碼管理、分支開發與Git125
13.1準備工作125
13.2將項目發布到Gitee125
13.3同步更改127
13.4解決衝突128
13.5撤銷更改130
13.6分支開發131
13.7關於Git133
第14章今日推薦頁ViewModel與IService: 從需求到設計135
14.1確定ViewModel的數據與功能135
14.2審視相關的頁面137
14.3設計IService138
14.4反思設計140
14.5動手做141
14.6給PBL教師的建議141
第15章實戰分支開發142
15.1今日推薦頁View分支142
15.1.1實踐VisualStateManager142
15.1.2顯示背景圖片: 使用綁定值轉換器IValueConverter143
15.1.3用戶界面的平台差異: 使用OnPlatform146
15.2今日推薦頁ViewModel分支147
15.2.1初始化ViewModel: 使用PageAppearingCommand147
15.2.2背景圖片與詩詞推薦的同步初始化: 並行執行代碼150
15.3單元測試今日推薦頁ViewModel: 測試並行執行的代碼152
15.4反思分支開發153
15.5動手做154
15.6給PBL教師的建議154
第16章實戰級Web服務客戶端155
16.1今日詩詞Web服務客戶端155
16.1.1構建穩定的Web服務客戶端: 使用using與異常處理155
16.1.2警告服務IAlertService: 為IService服務的IService157
16.1.3實現警告服務IAlertService: MVVM + IService架構的
分層視圖158
16.1.4快取訪問Token: 記憶體存儲兩級快取策略161
16.1.5設定訪問Token: 使用HttpRequestHeaders163
16.1.6準備備份方案163
16.2模仿Web服務165
16.3單元測試Web服務客戶端167
16.4反思Web服務客戶端168
16.5動手做168
16.6給PBL教師的建議168
第17章依賴注入170
17.1新建對象的迷思170
17.2使用工廠函式創建對象172
17.3使用依賴注入容器創建對象174
17.4反思依賴注入176
第三部分深入客戶端
第18章檔案的下載與快取179
18.1下載檔案179
18.2檢查檔案更新180
18.3設計檔案快取182
18.4實現檔案快取184
18.5檔案的單元測試186
18.6反思檔案操作187
第19章頁面導航189
19.1MasterDetail模板的頁面導航189
19.1.1主從列表導航190
19.1.2主從選單導航191
19.2設計導航服務194
19.3實現導航服務195
19.3.1實現內容導航服務195
19.3.2實現內容頁面激活服務: 使用字典快取對象197
19.3.3實現根頁面激活服務: 工廠函式的優勢199
19.3.4實現根導航服務: 重置導航歷史199
19.4添加並導航到推薦詳情頁201
19.4.1推薦詳情頁ViewModel: 共用ViewModel201
19.4.2推薦詳情頁View202
19.5反思頁面導航204
19.6動手做204
19.7給PBL教師的建議204
第20章帶參數的頁面導航206
20.1添加詩詞詳情頁206
20.2實現帶參數導航207
20.2.1自定義可綁定屬性209
20.2.2綁定到自定義屬性210
20.2.3賦值到自定義屬性211
20.3導航到詩詞詳情頁212
20.3.1確定ListView的點擊項: 使用事件參數轉換器212
20.3.2傳遞點擊項到Command: 使用帶參數的Command213
20.4反思帶參數導航214
第21章ViewModel in ViewModel215
21.1來自詩詞搜尋頁的挑戰: “大小”ViewModel215
21.1.1“小”ViewModel216
21.1.2“大”ViewModel218
21.2單元測試“大小ViewModel”: 使用虛函式220
21.3添加詩詞搜尋頁221
21.4動手做222
21.5給PBL教師的建議222
第22章LINQ與動態查詢223
22.1深入LINQ223
22.2再識動態LINQ225
22.2.1從FilterViewModel生成查詢條件226
22.2.2組合多個查詢條件227
22.3單元測試動態LINQ: 截獲模仿函式的參數228
22.4更新搜尋結果頁230
22.5反思LINQ230
22.6動手做231
第23章頁面導航的更多細節232
23.1傳遞搜尋條件的第二種方案232
23.1.1更新推薦詳情頁ViewModel233
23.1.2更新詩詞搜尋頁234
23.2更新選單頁235
23.3初始化頁236
23.3.1添加初始化頁236
23.3.2導航到初始化頁238
23.4動手做239
23.5給PBL教師的建議239
第24章訊息機制240
24.1使用返回值傳遞信息240
24.2使用事件傳遞信息241
24.2.1定義事件241
24.2.2關聯事件處理函式242
24.2.3觸發事件242
24.3使用訊息機制傳遞信息244
24.3.1定義訊息244
24.3.2監聽訊息244
24.3.3發布訊息245
24.4使用訊息機制更新導航選單245
24.4.1定義根導航訊息245
24.4.2監聽根導航訊息245
24.4.3發布根導航訊息246
24.5反思訊息機制246
24.6動手做247
24.7給PBL教師的建議247
第25章跨頁面同步數據248
25.1收藏Model與IService248
25.1.1設計收藏Model248
25.1.2設計收藏IService249
25.1.3實現收藏IService250
25.2詩詞收藏頁ViewModel與View250
25.3更新詩詞詳情頁252
25.3.1讀取詩詞收藏狀態253
25.3.2更新詩詞收藏狀態254
25.4同步詩詞詳情頁與詩詞收藏頁256
25.4.1定義收藏存儲已更新事件256
25.4.2處理收藏存儲已更新事件257
25.4.3觸發收藏存儲已更新事件258
25.5反思跨頁面同步數據258
25.6動手做259
25.7給PBL教師的建議259
第26章面向數據同步的設計260
26.1數據同步260
26.2為同步修改設計261
26.2.1修改Model261
26.2.2修改IService與ViewModel261
26.3同步IService263
26.3.1設計同步IService263
26.3.2實現同步IService266
26.4反思數據同步269
26.5給PBL教師的建議270
第27章與OneDrive同步271
27.1為什麼是OneDrive271
27.2準備工作272
27.2.1釐清概念272
27.2.2註冊客戶端ID273
27.2.3準備集成Azure AD身份驗證273
27.3實現OneDrive遠程收藏存儲274
27.3.1登錄與註銷274
27.3.2上傳與下載275
27.4實現數據同步頁277
27.4.1數據同步頁ViewModel277
27.4.2數據同步頁View278
27.5再次反思設計278
27.6給PBL教師的建議279
第四部分伺服器端開發
第28章選擇伺服器端技術方案283
28.1自有伺服器 VS 雲伺服器: 選擇基礎設施283
28.2自建平台 VS 雲平台: 選擇開發與部署平台284
28.3更加簡便的方法285
28.4其他可選項286
28.5Hello Functions287
28.6反思伺服器端技術選型288
28.7動手做288
28.8給PBL教師的建議288
第29章伺服器端身份驗證289
29.1選擇伺服器端身份驗證方案289
29.2Auth0的身份驗證過程290
29.3伺服器端身份驗證IService292
29.3.1設計身份驗證IService292
29.3.2實現身份驗證IService292
29.4設計遠程收藏存儲Web服務294
29.5首個Web服務: Ping295
29.6動手做296
第30章客戶端身份驗證297
30.1設計客戶端身份驗證IService297
30.2實現客戶端身份驗證IService298
30.3添加Azure收藏存儲299
30.3.1實現SignInAsync函式299
30.3.2實現SignOutAsync函式300
30.3.3實現IsSignedInAsync函式300
30.4更新數據同步頁303
30.5繼續實現客戶端身份驗證IService303
30.6反思客戶端身份驗證304
30.7動手做305
第31章伺服器端授權306
31.1設計伺服器端授權IService306
31.2為遠程收藏存儲Web服務選擇資料庫307
31.2.1要存儲的數據307
31.2.2可用的存儲服務307
31.3實現授權IService: 使用Azure Table Storage308
31.3.1編輯Table Storage數據308
31.3.2連線到Table Storage308
31.3.3讀取Table Storage數據309
31.3.4為Ping Web服務添加授權310
31.4反思伺服器端授權310
31.5動手做311
第32章快取訪問Token312
32.1設計Token快取IService312
32.2實現Token快取IService313
32.2.1實現GetAsync函式313
32.2.2實現SetAsync函式314
32.3更新AuthenticationService315
32.4動手做315
第33章上傳與下載Web服務316
33.1伺服器端收藏存儲316
33.1.1設計伺服器端收藏存儲IService316
33.1.2實現伺服器端收藏存儲IService317
33.2下載Web服務318
33.3上傳Web服務320
33.4更新客戶端AzureFavoriteStorage321
33.5清理工作323
第34章下一步的學習324

熱門詞條

聯絡我們