亚洲AV免费看深爱成人|日韩av另类一级特黄片在线|中国免费一级黄片|国产av一二三区|亚洲有码AV在线|久久亚洲国产日韩欧美|成人免费AV网站|婷婷一区综合一区|亚洲AV无码导航|高级欧美成人网站

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

你想一套UI,全終端發(fā)布嗎?也許MAUI能幫你

發(fā)布時(shí)間:2024-01-04 11:16:49 瀏覽量:181次

windows 安卓 蘋果預(yù)覽圖

MAUI介紹

隨著MAUI正式版的發(fā)布,一直想用MAUI來(lái)寫點(diǎn)東西或者實(shí)現(xiàn)一個(gè)小的項(xiàng)目來(lái)學(xué)習(xí)這個(gè)微軟發(fā)布的心再次躁動(dòng)起來(lái)。前面預(yù)覽版也有過(guò)搭建測(cè)試過(guò),但都因?yàn)槟承┎恢虻腂UG而,進(jìn)行的坎坎坷坷。正式版的發(fā)布,期望能夠使用起來(lái)能夠。。。爽爽。。

好了來(lái)看下MAUI的簡(jiǎn)介:

.NET 多平臺(tái)應(yīng)用程序 UI (.NET MAUI) 是一個(gè)跨平臺(tái)框架,用于使用 C# 和 XAML 創(chuàng)建本機(jī)移動(dòng)和桌面應(yīng)用程序, 使用 .net MAUI,可以開(kāi)發(fā)可在 Android、iOS、macOS 上運(yùn)行的應(yīng)用,Windows 以及從單個(gè)共享代碼庫(kù)運(yùn)行的應(yīng)用。

看到這里大家感覺(jué)有點(diǎn)意思了吧。是個(gè)框架,能多端部署應(yīng)用。

Blazor Hybrid 支持內(nèi)置于 .NET 多平臺(tái)應(yīng)用 UI (.NET MAUI) 框架。.NET MAUI 包含 BlazorWebView 控件,該控件運(yùn)行將 Razor 組件呈現(xiàn)到嵌入式 Web View 中。通過(guò)結(jié)合使用 .NET MAUI 和 Blazor,可以跨移動(dòng)設(shè)備、桌面設(shè)備和 Web 重復(fù)使用一組 Web UI 組件。

下面來(lái)看下我搭建的測(cè)試工程:




文件夾說(shuō)明:

Data 文件夾:接口或者數(shù)據(jù)的訪問(wèn)層。

Pages 文件夾:存放前端頁(yè)面razor。

Platforms文件夾:包含的平臺(tái)層。這個(gè)我理解為可創(chuàng)建和運(yùn)行的內(nèi)置平臺(tái)層庫(kù)。(不知道理解的對(duì)嗎?,有不同理解的朋友,可以放在評(píng)論區(qū)。)

Resources 資源文件夾,沒(méi)啥可說(shuō)的。

Shared 文件夾: UI共享層。寫過(guò)apsx 的可能感覺(jué)他是母版頁(yè)或者前端框架結(jié)構(gòu)層。

wwwroot 文件夾:發(fā)布資源層。

_Imports.razor 全局控制導(dǎo)入層。


MAUI 數(shù)據(jù)訪問(wèn)層到UI層流程

我個(gè)人一直認(rèn)為學(xué)習(xí)一項(xiàng)技術(shù),最快的辦法,就是先搞懂流程。大的框架掌握了,去接觸細(xì)節(jié)。從細(xì)節(jié)上完善對(duì)流程的認(rèn)識(shí),才是學(xué)好和掌握一項(xiàng)技術(shù)的方式和方法。

  1. 流程那我們就看下它的流程咯。。

我們就看它的數(shù)據(jù)是如何展示出來(lái)的:


就看Fetch Data頁(yè)面。

打開(kāi)NavMenu.razor 文件查看他的Href 鏈接



進(jìn)入pages 查看


可以看到原始頁(yè)面是從這里聯(lián)過(guò)來(lái)的。


再看下數(shù)據(jù)是如何過(guò)來(lái)的:

		<tbody>
			@foreach (var forecast in forecasts)
			{
				<tr>
					<td>@forecast.Date.ToShortDateString()</td>
					<td>@forecast.TemperatureC</td>
					<td>@forecast.TemperatureF</td>
					<td>@forecast.Summary</td>
				</tr>
			}
		</tbody>

是從forecasts 對(duì)象來(lái)的。

@code {
	private WeatherForecast[] forecasts;

	protected override async Task OnInitializedAsync()
	{
		forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
	}
}

forecasts 是從
ForecastService.GetForecastAsync 獲取來(lái)的.看下方法實(shí)現(xiàn):

        private static readonly string[] Summaries = new[]
        {
        "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
    };

        public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
        {
            return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = startDate.AddDays(index),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
            }).ToArray());
        }

ForecastService 里的GetForecastAsync 隨機(jī)生成了測(cè)試數(shù)據(jù)返回來(lái)數(shù)組對(duì)象。

總結(jié):



多終端發(fā)布

點(diǎn)擊運(yùn)行選擇運(yùn)行平臺(tái):


等待自動(dòng)生成多終端的應(yīng)用即可。


下一篇文章:MAUI 做個(gè)安卓APP

可以先看些視頻預(yù)覽效果:

重播
播放
00:00 / 00:00 直播
00:00
進(jìn)入全屏
50
    點(diǎn)擊按住可拖動(dòng)視頻

    熱門課程推薦

    熱門資訊

    請(qǐng)綁定手機(jī)號(hào)

    x

    同學(xué)您好!

    您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話暢通!
    確定