MAUI 跨平台播客应用程序(Conf 2021)
介紹
在.NET Conf 2021大會(huì)上,微軟展示了基于.NET6 跨平臺(tái)應(yīng)用程序, 具有ASP.NET Core、Blazor、.NET MAUI、微服務(wù)等功能。
瀏覽由 ASP.NET Core 和 Blazor 提供支持的 .NET Podcasts 應(yīng)用的實(shí)時(shí)運(yùn)行版本:https://dotnetpodcasts.azurewebsites.net/
項(xiàng)目體系
移動(dòng)端和桌面:適用于 iOS、Android、macOS 和 Windows 的原生 .NET MAUI 應(yīng)用程序
Web:Blazor WebAssembly應(yīng)用程序和 ASP.NET Core Blazor 網(wǎng)站
API:ASP.NET Core Web API 、injestion worker 和 podcast update worker
Blazor 混合應(yīng)用程序:.NET MAUI 與 Blazor 的混合應(yīng)用程序示例。
MAUI項(xiàng)目
單個(gè)代碼庫的跨平臺(tái)項(xiàng)目解決方案, 適用于Android、iOS、macOS以及Windows 的原生.NET應(yīng)用程序, 解決方案如下:
特征介紹
Global Usings
全局引用, 只需要在任何using 語句之前添加Global關(guān)鍵字, 即可使該引用成為全局
內(nèi)置主題
通過UserAppTheme修改基于不同平臺(tái)的主題設(shè)置, Light/Dark
消息中心
使用過類似mvvmlight中的Messenger類似, 可以通過Subscribe/Send/Unsubscribe 來完成訂閱、發(fā)布、取消訂閱等功能。
內(nèi)置容器
MAUI中提供的統(tǒng)一注冊以及容器服務(wù), 通過 MauiAppBuilder 添加自定服務(wù)以及通過 MauiWinUIApplication獲取對應(yīng)服務(wù)。
統(tǒng)一資源管理
MAUI中統(tǒng)一了資源的管理以及訪問,例如: 字體、圖標(biāo)、樣式、本地資源文件等。
訪問字體
<Setter Property="FontFamily" Value="SegoeUiSemibold" />訪問圖片資源
<Image Source="xxx.png" />本地化資源
xmlns:res="clr-namespace:Microsoft.NetConf2021.Maui.Resources.Strings"<Label Text="{x:Static res:AppResource.Categories}" />平臺(tái)化
在XAML以及代碼中, 你可以通過平臺(tái)化處理不同的UI以及業(yè)務(wù)邏輯, 可以通過OnPlatform以及OnIdiom來區(qū)分平臺(tái)及類型。
不同平臺(tái)下的字體設(shè)置
<Label FontSize="{OnPlatform UWP=24, macOS=24, Android=14,iOS=14}" />不同設(shè)備的設(shè)置
<GridItemsLayout Span="{OnIdiom Phone=2, Tablet=3, Desktop=3}" />Essentials
內(nèi)置的Essentials提供訪問本機(jī)網(wǎng)絡(luò)WIFI、藍(lán)牙等等。
//驗(yàn)證是否聯(lián)網(wǎng)var current = Connectivity.NetworkAccess; if (current != NetworkAccess.Internet){ //...}//驗(yàn)證是否存在WIFI連接var profiles = Connectivity.ConnectionProfiles;var hasWifi = profiles.Contains(ConnectionProfile.WiFi);if (hasWifi){//...}混合模式
在XAML當(dāng)中, 使用BlazorWebView
xmlns:b="clr-namespace:Microsoft.AspNetCore.Components.WebView.Maui;assembly=Microsoft.AspNetCore.Components.WebView.Maui"<b:BlazorWebView x:Name="MyWebView"Margin="10,0"HostPage="wwwroot/index.html"BackgroundColor="{AppThemeBinding Light={StaticResource Grey1}, Dark={StaticResource Grey9}}"><b:BlazorWebView.RootComponents><b:RootComponent Selector="app"ComponentType="{x:Type pages:ListenTogetherComponent}" /></b:BlazorWebView.RootComponents></b:BlazorWebView>總結(jié)
項(xiàng)目已在Github發(fā)布, https://github.com/microsoft/dotnet-podcasts, 更多特性探索源代碼。
總結(jié)
以上是生活随笔為你收集整理的MAUI 跨平台播客应用程序(Conf 2021)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET 6新特性试用 | DateOn
- 下一篇: dotnet 将自动代码格式化机器人带入