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