Categories
程式開發

Blazor躋身跨平台移動應用開發


.NET Conf 2019大會的“聚焦Blazor”活動中,微軟正式發布了新的實驗性項目Mobile Blazor Bindings。 Mobile Bindings項目意在使用Microsoft Blazor和.NET for iOS/Android實現跨平台移動應用開發。類似於React Native,Mobile Bindings同樣使用原生UI控件提供原生的用戶觀感體驗。

簡而言之,Mobile Blazor Bindings實現了Blazor編程模型向移動端開發的擴展。正如微軟.NET工程師Eilon Lipton撰文指出,對於一直使用XAML、Razor模板和Xamarin構建混合移動端應用的XAML和Xamarin開發人員,以及使用Blazor開發Web應用的開發人員而言,Mobile Bindings獨具吸引力。

Mobile Blazor Binding的成功與否,取決於開發人員是否願意在原生移動應用中使用具有Razor語法和特性的Blazor風格編程模型,去編寫標記語言,實現數據綁定。

Lipton給出了一段示例代碼,直觀展示了具有一定Razor經驗的Web開發人員如何使用Mobile Blazor Bindings開發移動應用。示例代碼定義了一個具有按鈕和點擊計數器的基本視圖。


    

Blazor躋身跨平台移動應用開發 1

圖片來源:微軟官方文檔。

類似於Razor組件在混合應用開發中的一般用法,上面的代碼段中同時使用了Xamarin.Forms StackLayout和原生C#代碼處理UI行為。要在Web應用中實現同樣的基本視圖,可使用類似的代碼結構,只是UI描述需要使用HTML標記替代Xamarin.Forms標記。

微軟在其.NET Conf 2019大會上提出,Mobile Blazor Bindings意在將Blazor擴展為一種全棧開發框架。下圖清晰闡釋了Blazor發展的各個維度,以及Mobile Blazor Bindings的適用之處。

Blazor躋身跨平台移動應用開發 2

圖片來源:微軟官方文檔。

開發人員對微軟的這次官宣反應不一。儘管一些人對Blazor工具箱的新功能擴展持歡迎態度,也有一些開發人員對引入.NET技術創建UI所導致開發選擇上的複雜性表達了擔憂。開發人員將難以在技術投入上做出抉擇,團隊的發展方向也會深受困擾。一些人進一步擔心微軟未來將會終止其中一些項目的發展,導致投入其中的開發人員無所適從。

更具體而言,一些持批評意見的人著重指出,Blazor的Web和移動應用事實上並未共享相同的UI定義,削弱了在這兩個平台上使用單一編程模型的價值。此外,批評人士希望微軟能將Blazor的發展重心聚焦於Progressive Web AppsWebAssembly,將移動端開發交給WPFUWPXamarin

Blazor基於.NET Standard 2.0運行,其原生UI組件依賴Xamarin.Forms。 Mobile Blazor Bindings在GitHub上開源提供,需.NET Core 3.0/3.1支持。

原文鏈接:

Blazor Makes Its Way into Cross-Platform Mobile App Development