(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.mzph.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…