Leanpub Header

Skip to main content

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

動手練習系列叢書

Minimum price

$7.99

$7.99

You pay

$7.99
$

...Or Buy With Credits!

You can get credits monthly with a Reader Membership
PDF
EPUB
WEB
202
Pages
About

About

About the Book

關於本書

.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 開發工具的相關專業知識。

Author

About the Author

Vulcan Lee

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

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

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

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

若對於這些課程有興趣,或者有任何其他需求,可以到 Xamarin Blazor 實驗室 粉絲團來私訊給我

也歡迎來查看我寫的部落格文章 https://csharpkh.blogspot.com/

Contents

Table of Contents

1.前言

2.關於本書

  1. 2.1這本書能提供什麼
  2. 2.2誰適合閱讀這本書
  3. 2.3練習專案原始碼
  4. 2.4關於作者

3..NET MAUI 開發環境的安裝與設定

  1. 3.1安裝 Hyper-V 管理員
  2. 3.2安裝 Visual Studio 2022 開發工具
  3. 3.3啟動、測試和設定開發環境
  4. 3.4建立 Android 模擬器與實際體驗執行過程
  5. 3.5了解 MAUI 專案的結構
  6. 3.5.1Android 平台的進入點程式碼
  7. 3.5.2iOS 平台的進入點程式碼
  8. 3.5.3MacCatalyst 平台的進入點程式碼
  9. 3.5.4Tizen 平台的進入點程式碼
  10. 3.5.5Windows 平台的進入點程式碼
  11. 3.5.6MauiProgram.cs
  12. 3.6開始執行 Maui 應用程式
  13. 3.7安裝 Prism Template 來建立 MAUI 應用程式
  14. 3.8建立一個可以支援 Prism 開發框架的 MAUI 專案

4.建立專案與核心服務

  1. 4.1建立 Prism.Maui 專案
  2. 4.2了解 MAUI 專案結構 Todo
  3. 4.3初次體驗在 Android 平台執行專案
  4. 4.4安裝相關 NuGet 套件
  5. 4.4.1加入 PropertyChanged.Fody 的 NuGet 套件
  6. 4.4.2加入 Newtonsoft.Json 的 NuGet 套件
  7. 4.4.3檢查這個專案內安裝了那些 NuGet 套件
  8. 4.5建立方案資料夾
  9. 4.6建立 資料模型 Model 類別
  10. 4.7建立 服務 Service 類別與註冊該服務
  11. 4.8建立 支援 Helper 類別
  12. 4.9完成後的專案結構

5.顯示單頁面的集合清單資料

  1. 5.1建立新的猴子清單頁面 View
  2. 5.2建立新的猴子清單頁面檢視類別 ViewModel
  3. 5.3註冊該頁面 View 與 ViewModel 到相依性注入容器內
  4. 5.4修正這個 MAUI 專案的第一個頁面為猴子清單頁面
  5. 5.5進行猴子清單頁面的 ViewModel 設計
  6. 5.6進行猴子清單頁面的 View 設計
  7. 5.7在 Android 平台執行專案
  8. 5.8修正無法執行的錯誤
  9. 5.9再次進行在 Android 平台執行專案

6.MVVM 與 Data Binding 資料綁定

  1. 6.1透過手做設計來體驗 INotifyPropertyChanged 運作方式與注意事項
  2. 6.1.1實作 INotifyPropertyChanged 介面
  3. 6.2使用 PropertyChanged.Fody 套件,大幅簡化屬性變更通知程式設計碼
  4. 6.2.1建立新專案
  5. 6.2.2加入 PropertyChanged.Fody 的 NuGet 套件
  6. 6.2.3使用 PropertyChanged.Fody 提供功能來設計具有屬性變更通知的 Person 類別
  7. 6.2.4確認採用 PropertyChanged.Fody 套件的設計是否可正常運作

7.頁面導航 Navigation 與參數傳遞

  1. 7.1建立新的猴子明細 頁面 View
  2. 7.2建立新的猴子明細 檢視類別 ViewModel
  3. 7.3註冊該頁面 View 與 ViewModel 到相依性注入容器內
  4. 7.4進行猴子清單頁面的 ViewModel 設計
  5. 7.5進行猴子清單頁面的 View 設計
  6. 7.6修正點選猴子清單 ViewModel,加入可以導航到猴子明細頁面的程式碼
  7. 7.7修正點選猴子清單頁面,可以導航到猴子明細頁面
  8. 7.8在 Android 平台執行專案

8.平台特性 Platform Feature 設計

  1. 8.1對相依性注入容器宣告要註冊 地理位置 服務
  2. 8.2修正 Android 需要使用定位權限
  3. 8.3找出離你最近的猴子 : 修正 ViewModel
  4. 8.3.1宣告要注入的 地理位置 欄位
  5. 8.3.2在建構式來注入 地理位置 服務物件
  6. 8.3.3建立一個命令物件,用於執行找出最近猴子的程式碼
  7. 8.3.4設計找出最近猴子的商業邏輯方法
  8. 8.3.5在建構式內,為 GetClosestMonkeyCommand 物件進行初始化
  9. 8.4找出離你最近的猴子 : 修正 View
  10. 8.5在 Android 平台執行專案
  11. 8.6對相依性注入容器宣告要註冊 地圖 服務
  12. 8.7顯示猴子所在地地圖 : 修正 ViewModel
  13. 8.7.1宣告要注入的 地理位置 欄位
  14. 8.7.2在建構式來注入 地理位置 服務物件
  15. 8.7.3建立一個命令物件,用於執行顯示猴子所在地地圖的程式碼
  16. 8.7.4在建構式內,為 GetClosestMonkeyCommand 物件進行初始化
  17. 8.8顯示猴子所在地地圖 : 修正 View
  18. 8.9在 Android 平台執行專案

9.其他集合檢視 CollectionView 下拉更新設計

  1. 9.1在 ViewModel 建立用於資料綁定的屬性
  2. 9.2在 View 加入可以偵測手勢下拉更新的控制項
  3. 9.3在 Android 平台執行專案

10.UI 美化之集中管理設計與主題佈景 Theme

  1. 10.1建立新的樣式資源檔案
  2. 10.2宣告要使用這個新的 XAML 資源檔案
  3. 10.3修正猴子清單頁面套用樣式
  4. 10.4在 Android 平台執行專案
  5. 10.5修正猴子明細頁面套用樣式
  6. 10.6在 Android 平台執行專案
  7. 10.7測試 前色與深色主題佈景

11.版權頁

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

About the Publisher

About the Publisher

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub