(01).NET MAUI實戰 建項目

1.概要

本系列文章將會針對.NET MAUI實戰開發的一些內容,會長期不間斷更新我了解學習到的內容。當學習新的軟件開發技術時,都會從基礎建項目開始MAUI也不例外。

ref:https://docs.microsoft.com/zh-cn/dotnet/maui/get-started/first-app?pivots=devices-windows

本文將分享一下內容:

  • 1.VS的版本選擇(本次內容過于簡單直接搬運)

  • 2.建立項目(本次內容過于簡單直接搬運)

  • 3.了解MAUI的項目結構(重點內容)

  • 4.DEBUG目錄

2.詳細內容

(1)VS版本選擇

目前本文使用的是預覽版的visual studio 2022,正式版后續會逐漸完善MAUI項目模板的創建。

下載地址:https://c2rsetup.officeapps.live.com/c2r/downloadVS.aspx?sku=Community&channel=Preview&Version=VS2022&source=VSLandingPage&add=Microsoft.VisualStudio.Workload.CoreEditor&add=Microsoft.VisualStudio.Workload.NetCrossPlat;includeRecommended&cid=2302

安裝Visual Studio或修改安裝,并使用默認可選安裝選項安裝 .NET 多平臺應用 UI 開發工作負載:

a97c8bb51385983ae074b32a2ffd1d66.png

(2)建項

啟動 Visual Studio 2022 17.3 預覽版,然后在開始窗口中單擊“創建新項目”以創建新項目:

d1874d9c5aa2864bd5d3d7609a531141.png

在“創建新項目”窗口中,選擇“所有項目類型”下拉列表中的 MAUI,選擇 .NET MAUI 應用模板,然后單擊“下一步”按鈕:

7864071befdd0222bb3f23f90eefc1e7.png

“配置新項目 ”窗口中,為項目命名,為其選擇合適的位置,然后單擊“ 創建 ”按鈕:

92644ad3361fc772083d197afba7c272.png

等待創建項目并還原其依賴項:

ad07adb1d297ea2f52f0d127a7f9a66d.png

在Visual Studio工具欄中,使用“調試目標”下拉列表選擇框架,然后選擇 net6.0-windows 條目(這里需要特別說明的是選擇windows平臺可以免安裝模擬器):

81c65491cfb5c95a61e3064dbbb94048.png

在Visual Studio工具欄中,按Windows計算機按鈕生成并運行應用:

bf4ef6043cb246f763c25549318e733f.png

如果未啟用開發人員模式,Visual Studio會提示啟用它。在“為Windows啟用開發人員模式”對話框中,單擊開發人員的設置以打開設置應用:

49b2212184cd323b1f0c2ce3cd0ed0ed.png

在設置應用中,打開開發人員模式并接受免責聲明:

0ab37d10d309817b9445122d1c4fe672.png

關閉設置應用,然后關閉“為Windows啟用開發人員模式”對話框。

在正在運行的應用中,多次按 “單擊我” 按鈕,并觀察按鈕單擊次數的計數遞增:

5c04bb42a8840506a36fa80ec233b893.png

(3)項目結構解讀

  • 依賴

1e11dd0d9592ca3e005898d0d8532d02.png

打開MAUI項目結構紅的“依賴”時,能看到4個平臺的引用,安卓、蘋果、windows、mac。至于linux平臺則需要了解項目地址:https://github.com/jsuarezruiz/maui-linux 基于 GtkSharp 添加 Linux 支持。

  • Platforms

a347609e24762525f01e93292ab948ad.png

針對不同平臺的主程序類。在最近的一次版本發布中值得一提的是,在上圖我們能看到Tizen的更新。我們來看看Tizen是什么?

a865601ff6c4473bdd1420e37c2df6ab.png

3fa50342bebffd2d6b8fed1bfd9a52c7.png

那么在本次更新中看到這個平臺的更新,以后MAUI很有可能可以在車載系統中使用。如果可以這么應用的話,不得不說微軟這一步棋是不準備給其它技術留機會。后續我將持續關注這條線是否真的如此。

  • Resources

f1fc525eb6cca5150ebdde025b180e32.png

這個文件夾看字面意思非常明顯我就不逐個講解了,這個點在對于新手開發的話。無疑也是制定了一些編碼規范,對于的資源存放在對應的文件夾中集中管理。

  • xaml

9fbe928a5e61a5c1e20f22eb889060c7.png

app.xaml , 這里就是設置MAUI默認啟動的窗體以及其它操作,后續的文章中將會講解這里的用法。

577cdf9bd71e67721be7fc2d523d5090.png

MainPage.xaml 就是類似于wpf的mainwindo了,編寫窗體代碼,布局控件。

3ea6b655829e74075628072135fce286.png

MauiProgram.cs 這里非常類似asp.net的啟動類,可以添加注入組件或設置字體、平臺配置的內容。

ef406a59d1b775ca4fc174e8bab4f7b1.png

這里可以看到,可以用#if 來判斷當前平臺應該啟動哪些對應的配置。這里的用法也比較重要。

(4)Debug目錄

982fd9f14fa5b9d6f037fef7e69797fb.png

當我們程序編寫完成之后,可以在debug目錄下看到對應平臺的文件。這里需要說明的是必須編譯對應的版本文件夾里才會有內容。后續文章中將會告訴大家在如何通過命令編譯制定平臺的版本。這里我用windows平臺舉例是可以直接看到可執行文件的。

8bbb8336caa3e4360e13a8b1c67f3ee9.png

當我們F5運行過MAUI之后也可以在“win”的啟動菜單中看到啟動快捷方式。

945bc34e3be3a75f7e6706c26b485acf.png

希望大家多多關注我的微信公眾號和b站賬號將會更新視頻和文章。謝謝觀看。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286185.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286185.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286185.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android Studio 引用aar包 更新后找不到新增的方法問題(踩坑)

明明已經更新了aar文件,但死活找不到新增的方法,代碼提示里也找不到新增的方法名,但編譯能編譯,運行也一切正常,只是IDE一直提示錯誤,有強迫癥的小猿好幾天都想不明白。 其間有高手指教說:“那…

VMware Workstation與VMware vSphere的區別

在學完vSphere后,想起了VMware Workstation。這兩個都是虛擬化的東西,這兩者到底有什么本質的不同呢?順著我的思路我開始將所學過的進行檢索期望從中尋到一絲半點的線索。很快大腦中建立了兩個對他們明顯的標簽 VMware Workstation&#xff1…

C語言試題三十七之求除一個2×m整型二維數組中最大元素的值,并將此值返回調用函數。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

RSA加密解密

http://files.cnblogs.com/files/liuJava/rsa.zip、 直接上工具類 JAR 和前臺JS 都在上面的鏈接里 package my.tools.security;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.Obj…

Atitit.js圖表控件總結

Atitit.js圖表控件總結 1. 為什么要使用圖表1 2. 圖表分類1 3. 數據可視化的優點1 4. 流行的js圖表類庫1 5. 參考2 1. 為什么要使用圖表 因為要可視化 2. 圖表分類 條形圖、柱狀圖、折線圖和餅圖是圖表中四種最常用的基本類型 分類 條形圖、柱狀圖、折線圖和餅圖是圖表中四種最…

Matlab圖像處理函數大全(建議收藏)

文章目錄 第1章: 圖像顯示與圖像文件輸入輸出函數第2章: 圖形繪制第3章: 圖像類型和類型轉換第4章: 圖形用戶界面工具第5章: 空間變換和圖像配準第6章: 圖像分析和統計第7章: 圖像代數運算第8章: 圖像增強第9章: 圖像去模糊第10章: 線性濾波和變換第11章: 形態學操作…

Asp.net 批量導入Excel用戶數據功能加強版

平時我們用Asp.net導入用戶,一般是提供一個用戶Excel表的模板,實際導入數據時并非有些人愿意按你的模版制表,因此對Asp.net導入功能進行加強,可以導入非模版化的Excel數據,并且支持一次處理多個Sheet表,方便…

C語言試題三十八之將s所指字符串中除了下標為偶數、同時ascii值也為偶數的字符外,其余的全都刪除;串中剩余字符所形成的一個新串放在t所指的一個數組中。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

C#+Signalr+Vue實現B站視頻自動回復評論,當一個最懶程序員!

Part1前言前幾天刷到了程序員魚皮的自動回復視頻評論的視頻,于是我也想來試試!Part2開始第一步打開想要自動回復評論的視頻url,打開調試模式!然后找到可以觸發評論的網絡請求可以看到我們的oid是可以唯一確定視頻的id,那么這個oid…

一張圖不用,純CSS 做個生日賀卡

朋友生日了,直接畫,炫技并且表示本人閑的全身疼才會去拿CSS畫畫,以此嘲弄對方的加班: 既然賀卡做出來了,那就順便介紹一下賀卡制作流程吧,其實也不是什么技術,也就是CSS 拼拼拼就可以了&#…

C語言試題三十九之將s所指字符串中除了下標為奇數、同時ascii值也為奇數的字符外,其余的全都刪除;串中剩余字符所形成的一個新串放在t所指的一個數組中。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫一個…

The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from

前幾天另一個項目使用RecyclerView控件,引用類庫然后繼承一切都很順序 詳細:http://www.cnblogs.com/freexiaoyu/p/5022602.html 今天打算將另一個項目的ListView控件也替換成RecyclerView以同樣的方式引用了RecyclerView,引用地址請點擊上面的鏈接查看 …

Mysql索引的類型和優缺點

索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含著對數據表里所有記錄的引用指針。注:[1]索引不是萬能的!索引可以加快數據檢索操作,但會使數據修改操作變慢。每修改數據記錄,索引就必須刷…

Android Notification總結

Android Notification總結 目錄[-] 一、通知的主要功能 二、通知簡介 三、通知的使用流程 四、使用NotificationCompat.Builder設置通知的屬性: 五、管理通知 一、通知的主要功能 顯示接收到短消息、即使消息等信…

C#-Linq源碼解析之Any

前言在Dotnet開發過程中,Any作為IEnumerable的擴展方法,十分常用。本文對Any方法的關鍵源碼進行簡要分析,以方便大家日后更好的使用該方法。使用Any 確定序列中是否包含元素或存在元素滿足指定條件。看這樣一個例子,我們判斷集合中…

python_getopt解析命令行輸入參數的使用

[cpp] view plaincopyprint? import getopt import sys config { "input":"", "output":".", } #getopt三個選項,第一個一般為sys.argv[1:],第二個參數為短參數,如…

五、登錄頁倒計時制作《仿淘票票系統前后端完全制作(除支付外)》

一、登錄功能的實現 首先打開在線編輯器進入我們的項目:https://editor.ivx.cn/ 上一節我們已經完成了基本頁面的制作,在本節中,我們將會開始完成登錄功能的實現。 實現登錄功能需要增加一個用戶組件: 這個用戶組件是需要選擇…

【MATLAB統計分析與應用100】案例001:matlab使用Importdata函數導入文本txt數據

配套實驗數據包下載:鏈接:https://pan.baidu.com/s/1T4zUFmCIOCKIisdGRQPddg?pwdddi1 文章目錄1. 調用importdata函數讀取文件中的數據2. 調用importdata函數讀取文件數據,返回結構體變量x3. 調用importdata函數讀取文件中的數據&#xff0c…

TextView的部分點擊事件和點擊事件

1.在TextView中實現部分點擊 我在activity中使用了clickablespan這個類,然后完全按照視頻上的操作下來,發現點擊時不響應,于是我便設置了電話的鏈接,發現這時點擊 自己設置的區域就會響應,但是如果我把電話鏈接刪了&am…