使用 .NET MAUI 和 Azure 強化公共服務: Civica 的成功故事
Civica: 一個值得信賴的夥伴,推動各部門的數位轉型
Civica 是 Microsoft 長期認證合作夥伴,為全球政府科技領域的佼佼者,專注開發對全球公民日常生活至關重要的雲端軟體與服務。他們專精於為中央與地方政府、健康照護與教育領域提供創新且高品質的應用解決方案。且他們的 .NET 開發團隊技術純熟,已開發近 30 款自家發佈的應用程式,還為眾多客戶打造了更多應用程式。
他們的行動開發之路始於 2018 年,從 Angular 與 Ionic 過渡到 Xamarin.Forms,以發揮他們在 .NET 上的專長。如今,由 Conor Breen (技術結構設計師 (行動)) 與 Niall Cunningham (技術結構設計師) 領導的 Civica 行動開發卓越中心,專注於打造由 .NET MAUI 與 Microsoft Azure 支援的可擴展的跨平台應用程式。Niall 補充說:「我們的團隊從 Belfast 的 5 人小組,已擴展成全球規模,包括印度瓦多達拉的同事。」



使用 .NET MAUI 和 Azure 建立健全且可重複使用的解決方案
透過可重複使用性提升效率
Civica 的團隊建立了一個強大的可重複使用的元件架構,包含超過 35 個 NuGet 套件。這些套件包括輔助類別、元件、檢視和範例版面配置,加速應用程式開發並確保專案間的一致性。
「建立並維護我們自己的架構集的想法,是希望隨著我們開發越來越多的應用程式,就能創建越來越多可重複使用的元件。」
有一項特別的做法讓 Civica 團隊在新專案一開始就能高效投入工作。他們在 .NET 範本引擎基礎上打造了名為「加速器」的應用程式範本,並與內部架構結合使用。Civica 將這些「加速器」範本解決方案封裝為範本 NuGet 套件,能輕鬆安裝至 .NET 命令列介面 (CLI),僅需一行指令即可部署新的綠地專案 (從零開始的新開發項目)。能夠自行為新專案建立範本,並設計成可由最終使用者透過功能旗標進行自訂,大幅節省了開發時間。
「這種做法大大節省了時間,能快速為一系列應用程式建立結構與功能。」
正在轉換至 .NET MAUI
移轉到 .NET MAUI 對 Civica 來說是一個自然的演變。儘管一開始有學習曲線,團隊仍迅速適應,並受益於更優化的專案結構與與 .NET 生態系的高度一致性。
「移轉程序一開始似乎難以進行,但隨著團隊體驗的逐漸增加,這變得更加容易。與 .NET 其他部分 (例如 [應用程式建立器] 啟動方式) 達成更高一致性,是一項非常棒的新增功能。」
值得注意的應用程式範例
- Civica Spydus: 一款為全球公共圖書館打造的輔助應用程式,可用於書籍搜尋、借閱與續借。由 .NET 8 API 和 Azure 認知服務提供支持。
- Civica Learning: 一款支援 SCORM/xAPI 標準的數位學習應用程式,使用 .NET MAUI 和 Azure 元件,可離線使用並具備同步處理功能。
- Civica MyDay: 一款醫療排程與人員編制應用程式,使用 Azure Functions 處理微服務,並使用 Azure B2C 進行身份驗證。
- Civica Cx: 一款社會住宅管理應用程式,已從 Xamarin.Forms 移轉至 .NET MAUI,並使用 Azure B2C 和 MFA 以確保安全存取。
.NET MAUI 的優勢
.NET MAUI 為 Civica 提供了諸多優點,簡化了開發流程並改善了成果:
- 單一專案結構: 簡化資源共用與程式碼組織,讓程式碼基底保持乾淨且易於管理。
- 可重複使用性與生產力: 能在行動裝置、桌面與網頁平台延伸元件的重複使用,從而顯著縮短開發時間。
- 存取原生功能: 提供輕鬆存取基礎平台功能,透過平台特定的最佳化,提升使用者體驗。
- 程式碼品質與測試: 內建的依賴注入 (DI) 與單元測試支援,協助 Civica 維持乾淨的架構與嚴謹的品質標準。
- 社群與開放原始碼: 參與活躍的 .NET MAUI 開放原始碼社群,讓 Civica 能貢獻成果,也從持續的改進中受益。
透過 .NET MAUI 和 Azure 促進創新與影響
Civica 採用 .NET MAUI 後,獲得數項顯著好處,包括更快的應用程式開發速度、改進的程式碼品質,以及在團隊與工作負載間提升的元件重用性。Conor Breen 讚賞其混合原生與網頁型技術的彈性,確保每個平台都能獲得最佳效能,他表示: 「能靈活混用原生與網頁型技術,讓我們能針對各平台選擇最佳做法,確保效能最佳化。」
他們採用 Azure 服務,例如 Notification Hub、Key Vault 與 Application Insights,進一步強化了其應用程式,提供強健的安全性、順暢的驗證程序與即時的深入解析。Niall Cunningham 表示:「我們使用 Azure Notification Hub 處理推播通知,使用 Azure Key Vault 進行加密,並使用多種其他 Azure 服務強化我們應用程式的功能與安全性。」
借助 .NET MAUI 與 Azure,Civica 打造出統一的開發體驗,確保行動裝置、Web 與桌面應用程式之間的一致性,推動每個專案的效率與卓越。
「能夠用相同的工具和基礎架構,將我們的行動解決方案建構到與 Web 與桌面應用程式相同的標準,是一種能在開發和使用者體驗間保持一致性的極佳方式。」
展望未來,Civica 對於進一步整合 Azure 雲端服務與 .NET 技術感到興奮,期望推動下一代智慧應用的發展。
準備開始了嗎?
我們的逐步教學課程可協助您讓 .NET MAUI 在電腦上執行。