使用 Prism 進行 .NET MAUI 專案開發
$7.99
最低售價
$7.99
建議售價

使用 Prism 進行 .NET MAUI 專案開發

動手練習系列叢書

關於本書

關於本書

.NET MAUI 多平臺應用程式 UI (是 Multi-platform App UI 的縮寫) 是一種跨平臺架構,可用於使用 C# 和 XAML 建立原生行動和傳統型應用程式。 .NET MAUI 的專案採用了單一專案方式,便可以產生出 Android, iOS, macOS Catalyst, WinUI3 等不同作業系統平台上可以執行的應用程式,而這個 .NET MAUI 工具也可以視為 Xamarin.Forms 的繼承者,也就是說,.NET MAUI 是由 Xamarin.Forms 進化而來的全新開發跨平台工具。

之前在網路上看到 微軟 James Montemagno 寫的 .NET MAUI - Workshop 文章與專案程式碼 與 Learn .NET MAUI - Full Course for Beginners | Build cross-platform apps in C# Youtube 實際專案開發教學影片,讓我深深地覺得這是一份相當好的教學教材內容,它包含了靜態的文字說明與各個練習階段所開發出來的專案原始碼,有提供了長達四個小時的開發過程說明教學影片,讓任何想要理解與學習使用 .NET MAUI 工具來進行跨平台開發的人,可以有個很好的進入點。

在 James 所寫的文章與影片中,採用的是 .NET MAUI Shell 與 CommunityToolkit.Mvvm 這個工具來進行開發行動裝置應用專案的開發,其中前者 .NET MAUI Shell 在官方文章中有指出 : .NET MAUI Shell 提供大部分應用程式所需的基本功能,以減少應用程式開發的複雜度,包括:描述應用程式視覺階層的單一位置、常見的導覽使用者體驗、URI 型流覽配置,允許流覽至應用程式中的任何頁面、整合式搜尋處理常式。對於第一次接觸 .NET MAUI 的開發者,可以透過 Shell 提供的相關 UI 設計機制與功能,快速開發出想要的應用程式。

而對於 CommunityToolkit.Mvvm 而言,則扮演了另外一個重要的角色,這是因為 .NET MAUI 這個專案開發,採用的 MVVM Model-View-ViewModel 的設計模式來進行開發,第一個 Model 通常為一個 .NET C# 內的 POCO 類別,而 View 則是為採用 XAML (XAML Extensible Application Markup Language 發音為 /ˈzæməl/ 是一種宣告式的標記語言)來進行要顯示在畫面上的 UI 內容宣告與定義,而對於這個頁面上的相關商業邏輯部分,則是會寫在一個 .NET C# 類別內,該類別也稱之為 ViewModel (該類別需要實作 INotifyPropertyChanged 介面)。

如此,View 與 ViewModel 之間便可以透過 Data Binding 資料綁定(繫結) 的方式整合再一起,讓 UI 與 商業邏輯程式碼部分可以做到鬆散耦合的設計,形成關注點分離的方式,讓這個專案可以好維護與方便進行測試;由於要自行手作寫出具有資料綁定規範的程式碼,說實在的有些繁瑣,因此,CommunityToolkit.Mvvm 這個套件扮演了重要的角色,他透過原始碼產生器的功能,自動產生出許多原本需要開發者自行設計的程式碼,並且滿足資料綁定程式碼設計的要求,簡化整體程式碼設計過程與數量,讓整體原始碼看起來相當的清爽與簡潔。

因此, James 充分的發揮 .NET MAUI Shell 與 CommunityToolkit.Mvvm 的強大功能與特色,設計出這樣的動手實作練習教材,透過自己動手練習與開發,實際完成一個使用 .NET MAUI 開發出來的專案,間接地也學會如何使用 .NET MAUI 來開發跨平台專案的技能。

作者早年在進行 Xamarin.Forms 專案開發與教學課程的時候,就習慣使用 Prism 這個開發框架類別庫,Prism 是一個開發框架,讓所開發的專案可以採用與開發出具有鬆散耦合、可維護性與可測試性的能力,這些類型的專案包含了 WPF, Xamarin.Forms, .NET MAUI,這個套件是相當的好用與方便,可以快速地進行各種類型的專案開發,並且對於上面提到的一個資料綁定設計上的問題,那就是要自己手作寫出很多相同的程式碼問題,之前是使用了 PropertyChanged.Fody 這個套件來解決此一問題,該套件使用的手法與 CommunityToolkit.Mvvm 做法不同,並不是使用原始碼產生器來產生出許多原始碼來解決問題,而是透過注入程式碼的方式,讓有實作 INotifyPropertyChanged 介面的類別,可以有正常運作的程式碼存在。

因此,作者想要使用 .NET MAUI + Prism.Maui + PropertyChanged.Fody 這三項工具,同樣的可以設計出如同 James 文章或者影片中的跨平台應用程式結果,所以,便會有這本書的誕生,因為,作者想要推廣 .NET MAUI 這個開發工具,所以,將這本動手學習的電子書定價為免費,希望有更多從事 .NET C# 開發者,可以有機會學習到這麼優秀的開發工具。

這本 “使用 Prism 進行 .NET MAUI 專案開發” 這是一本對於初學者與入門者,想要學習如何使用 .NET MAUI 來進行跨平台應用程式開發的必須要閱讀過的一本書籍。在這本電子書中,將從無到有的說明如何開發出跨平台的應用程式,將會從如何安裝與設定開發環境開始,因為這是一本定位為入門等級的書籍,因此,在書中將會有著操作畫面截圖,可以讓讀者清楚的知道每個步驟是如何設計出來的。接下來將會說明與使用 Prism.Maui 這個開發框架來進行開發 .NET MAUI 的應用程式。

本書內容屬於動手實作系列,也就是說,期望讀者可以按照這本書上的說明與操作步驟,逐一進行開發與設計,並且試圖邊做邊解決問題,當然,在這本書中會列出更多的技術參考來源連結,可以針對這些文章來強化對於 .NET MAUI 這個 UI 開發工具的相關專業知識。

關於作者

Vulcan Lee
Vulcan Lee

從 2012 年開始進行 .NET / C# 教育訓練課程之後,對於許多開發出來的課程,並不是隨便敷衍的設計出來,這其中我會不斷地針對已經開發出來的課程來進行修正、改版、追加內容,因此,相關的課程是不斷的在變化與強化的。


要完成這樣的一系列課程是一種自我挑戰,讓自己可以看得更高、看得更遠、讓抄襲者永遠無法模仿,因為,這些課程加入了許多巧思與技能在裡面,內行看門道、外行看熱鬧。


我所設計的教學課程,為了要能夠讓入門者、想要精通者都可以喜歡我設計的課程,將會把課程應該具有的特色,所提供的內容將會涵蓋到更多的層面、更多範例碼、更多觀念介紹、更多的動畫來理解艱澀技術應用、更多挑戰應用、更多的日常遇到問題與解決方法、更完整的開發設計指引。


因此,很期望到時候能夠與大家一起來進行這個課程的交流與互動,也希望大家可以從這些課程學到更多知識與經驗,應用在日常開發專案上。


若對於這些課程有興趣,或者想要企業內訊者,可以在此留言,或者到 Xamarin Blazor 實驗室 粉絲團來私訊給我


底下是已經開課的教育訓練課程名稱


初探 .NET 平行程式設計 (非同步程式設計系列 之 1 / 6)

想要參加

此課程為 Skill Tree 專屬課程,想要參加者,請隨時注意 Skill Tree 的最新公告

參考網址 : https://skilltree.my/Events/2022/1/9/Parallel-programming-in-dotnet-for-beginners-Batch-2


由 Parallel.For 來看多執行緒程式設計 (非同步程式設計系列 之 2 / 6)

想要參加

此課程為 Skill Tree 專屬課程,想要參加者,請隨時注意 Skill Tree 的最新公告

參考網址 : https://skilltree.my/Events/2022/1/16/NET-CSharp-Parallel-Programming-Batch-2


精準解析 .NET Thread 執行緒 (非同步程式設計系列 之 3 / 6)

想要參加

此課程為 Skill Tree 專屬課程,想要參加者,請隨時注意 Skill Tree 的最新公告

參考網址 : https://skilltree.my/Events/2022/7/17/analyzing-dot-net-thread


精準解析 .NET Task 工作 (非同步程式設計系列 之 4 / 6)

想要參加

此課程為 Skill Tree 專屬課程,想要參加者,請隨時注意 Skill Tree 的最新公告

參考網址 : https://skilltree.my/Events/2022/7/10/analyzing-dot-net-task


精通與使用 async 與 await (非同步程式設計系列 之 5 / 6)

想要參加

此課程為 Skill Tree 專屬課程,想要參加者,請隨時注意 Skill Tree 的最新公告

正在開發中


Blazor 全端開發,新手村一日脫逃術

想要參加

此課程為 Skill Tree 專屬課程,想要參加者,請隨時注意 Skill Tree 的最新公告

參考網址 : https://skilltree.my/Events/2021/12/11/Blazor-for-Beginners


目錄

  • 1. 前言
  • 2. 關於本書
    • 2.1 這本書能提供什麼
    • 2.2 誰適合閱讀這本書
    • 2.3 練習專案原始碼
    • 2.4 關於作者
  • 3. .NET MAUI 開發環境的安裝與設定
    • 3.1 安裝 Hyper-V 管理員
    • 3.2 安裝 Visual Studio 2022 開發工具
    • 3.3 啟動、測試和設定開發環境
    • 3.4 建立 Android 模擬器與實際體驗執行過程
    • 3.5 了解 MAUI 專案的結構
      • 3.5.1 Android 平台的進入點程式碼
      • 3.5.2 iOS 平台的進入點程式碼
      • 3.5.3 MacCatalyst 平台的進入點程式碼
      • 3.5.4 Tizen 平台的進入點程式碼
      • 3.5.5 Windows 平台的進入點程式碼
      • 3.5.6 MauiProgram.cs
    • 3.6 開始執行 Maui 應用程式
    • 3.7 安裝 Prism Template 來建立 MAUI 應用程式
    • 3.8 建立一個可以支援 Prism 開發框架的 MAUI 專案
  • 4. 建立專案與核心服務
    • 4.1 建立 Prism.Maui 專案
    • 4.2 了解 MAUI 專案結構 Todo
    • 4.3 初次體驗在 Android 平台執行專案
    • 4.4 安裝相關 NuGet 套件
      • 4.4.1 加入 PropertyChanged.Fody 的 NuGet 套件
      • 4.4.2 加入 Newtonsoft.Json 的 NuGet 套件
      • 4.4.3 檢查這個專案內安裝了那些 NuGet 套件
    • 4.5 建立方案資料夾
    • 4.6 建立 資料模型 Model 類別
    • 4.7 建立 服務 Service 類別與註冊該服務
    • 4.8 建立 支援 Helper 類別
    • 4.9 完成後的專案結構
  • 5. 顯示單頁面的集合清單資料
    • 5.1 建立新的猴子清單頁面 View
    • 5.2 建立新的猴子清單頁面檢視類別 ViewModel
    • 5.3 註冊該頁面 View 與 ViewModel 到相依性注入容器內
    • 5.4 修正這個 MAUI 專案的第一個頁面為猴子清單頁面
    • 5.5 進行猴子清單頁面的 ViewModel 設計
    • 5.6 進行猴子清單頁面的 View 設計
    • 5.7 在 Android 平台執行專案
    • 5.8 修正無法執行的錯誤
    • 5.9 再次進行在 Android 平台執行專案
  • 6. MVVM 與 Data Binding 資料綁定
    • 6.1 透過手做設計來體驗 INotifyPropertyChanged 運作方式與注意事項
      • 6.1.1 實作 INotifyPropertyChanged 介面
    • 6.2 使用 PropertyChanged.Fody 套件,大幅簡化屬性變更通知程式設計碼
      • 6.2.1 建立新專案
      • 6.2.2 加入 PropertyChanged.Fody 的 NuGet 套件
      • 6.2.3 使用 PropertyChanged.Fody 提供功能來設計具有屬性變更通知的 Person 類別
      • 6.2.4 確認採用 PropertyChanged.Fody 套件的設計是否可正常運作
  • 7. 頁面導航 Navigation 與參數傳遞
    • 7.1 建立新的猴子明細 頁面 View
    • 7.2 建立新的猴子明細 檢視類別 ViewModel
    • 7.3 註冊該頁面 View 與 ViewModel 到相依性注入容器內
    • 7.4 進行猴子清單頁面的 ViewModel 設計
    • 7.5 進行猴子清單頁面的 View 設計
    • 7.6 修正點選猴子清單 ViewModel,加入可以導航到猴子明細頁面的程式碼
    • 7.7 修正點選猴子清單頁面,可以導航到猴子明細頁面
    • 7.8 在 Android 平台執行專案
  • 8. 平台特性 Platform Feature 設計
    • 8.1 對相依性注入容器宣告要註冊 地理位置 服務
    • 8.2 修正 Android 需要使用定位權限
    • 8.3 找出離你最近的猴子 : 修正 ViewModel
      • 8.3.1 宣告要注入的 地理位置 欄位
      • 8.3.2 在建構式來注入 地理位置 服務物件
      • 8.3.3 建立一個命令物件,用於執行找出最近猴子的程式碼
      • 8.3.4 設計找出最近猴子的商業邏輯方法
      • 8.3.5 在建構式內,為 GetClosestMonkeyCommand 物件進行初始化
    • 8.4 找出離你最近的猴子 : 修正 View
    • 8.5 在 Android 平台執行專案
    • 8.6 對相依性注入容器宣告要註冊 地圖 服務
    • 8.7 顯示猴子所在地地圖 : 修正 ViewModel
      • 8.7.1 宣告要注入的 地理位置 欄位
      • 8.7.2 在建構式來注入 地理位置 服務物件
      • 8.7.3 建立一個命令物件,用於執行顯示猴子所在地地圖的程式碼
      • 8.7.4 在建構式內,為 GetClosestMonkeyCommand 物件進行初始化
    • 8.8 顯示猴子所在地地圖 : 修正 View
    • 8.9 在 Android 平台執行專案
  • 9. 其他集合檢視 CollectionView 下拉更新設計
    • 9.1 在 ViewModel 建立用於資料綁定的屬性
    • 9.2 在 View 加入可以偵測手勢下拉更新的控制項
    • 9.3 在 Android 平台執行專案
  • 10. UI 美化之集中管理設計與主題佈景 Theme
    • 10.1 建立新的樣式資源檔案
    • 10.2 宣告要使用這個新的 XAML 資源檔案
    • 10.3 修正猴子清單頁面套用樣式
    • 10.4 在 Android 平台執行專案
    • 10.5 修正猴子明細頁面套用樣式
    • 10.6 在 Android 平台執行專案
    • 10.7 測試 前色與深色主題佈景
  • 11. 版權頁

關於出版社

This book is published on Leanpub by Ministep Books

Leanpub 100% 無風險的滿意保證

付款後的 60 天內,只要點擊兩下,你就可以退書並獲得全額退款。退書是手工操作的,所以可能需要幾天時間來完成整個過程。
查看完整條款.

在$10的購買中賺$8,在$20的購買中賺$16

我們在$7.99或以上的購買中支付80%的版稅,並在$0.99至$7.98的購買中支付80%的版稅減去50美分的固定費用在$10的銷售中賺$8,在$20的銷售中賺$16。因此,如果我們以$20銷售5000本未退款的書,您將賺取$80,000

(是的,一些作者已經在Leanpub上賺了很多錢。)

實際上,作者在Leanpub上賺取了超過1300萬美元通過寫作、出版和銷售。

了解更多關於Leanpub寫作的信息

免費更新。無 DRM 限制。

如果你購買了 Leanpub 的書,只要作者更新書籍,你就可以獲得免費更新!許多作者使用 Leanpub 來發布他們正在編寫的書籍。所有讀者都可以獲得免費更新,無論他們何時購買書籍或支付了多少費用(包括免費)。

大多數 Leanpub 書籍均提供 PDF(適用於電腦)、EPUB(適用於手機和平板電腦)和 MOBI(適用於 Kindle)格式。書籍包含的格式將顯示在此頁面的右上角。

最後,Leanpub 書籍沒有任何 DRM 複製保護的胡說,因此你可以輕鬆地在任何支持的設備上閱讀它們。

了解更多有關 Leanpub 電子書格式和閱讀位置的資訊

在 Leanpub 上寫作和出版

作家和出版社使用 Leanpub 來出版正在進行中和已完成的書籍,就像這本書一樣。您也可以使用 Leanpub 來撰寫、出版和銷售您的書籍!Leanpub 是一個強大的平台,適合嚴肅的作家。它結合了簡單、優雅的寫作和出版工作流程,以及一個可以銷售正在進行中的電子書的線上商店。對於作家來說,Leanpub 是一部神奇的打字機:您只需撰寫純文字,然後點擊一下按鈕就可以出版您的電子書。就是這麼簡單。

了解更多有關 Leanpub 上的寫作