MAUI来了

     各位很久没有和大家说端的开发了,技术发展特别快,我不知道还有多少国内的开发人员还坚守用Xamarin,但是.NET的迭代变化还是让国内.NET社区热闹起来了。去年虽然疫情,但微软还是在Build上发布了MAUI。微软这次把MAUI完全整合到了.NET 6里面,让跨平台开发在.NET下真真正正成为原生。比较遗憾的反而是名字,不过如果你看看MAUI的全名Multi-platform App UI就能理解微软的用意了。但很多人会问,这个新的演变,有多少变化,下面我解答一下,让大家有一个初步概念,希望大家也可以拥抱下MAUI。

     

 

一 什么是MAUI

从大的概念来说,是一套跨平台,原生的客户端解决方案。这和Xamarin Forms是一致的,但改进了Xamarin Forms几个问题 

1. 当我们创建Xamarin时,除了创建共享的逻辑和页面外,不同平台是分开项目的,而在MAUI是整合到一个项目,以文件夹分开对应的平台。在开发上有人喜欢旧有的方式,但我个人认为这更有利于客户端界面的开发。毕竟都是做UI的事情。

             

    

2.对于控件的绘制上,我觉得微软在参考了flutter后,重新优化了控件

3.一个重新构建的页面结构以往基于ContentPage,现在新增IPage对页面进行绘制

注:更多变化大家可以看看https://www.youtube.com/watch?v=qbHO8J3bId0 

二 如何创建MAUI项目

MAUI现在也可以通过命令行做创建,因为现在处于preview 3的状态,所以如果你要通过命令行创建MAUI,除了要安装.NET 6 Preview 3 外,还需要安装.NET MAUI Check

dotnet tool install -g redth.net.maui.check

.NET MAUI Check 现在有几个作用

1 可以检查MAUI对相关平台SDK是否齐全通过检查执行以下命令就可以完成相关检查

maui-check

 

2 提供MAUI项目的创建模版

当所有支持条件都检查完后,你就可以通过命令行去完成MAUI项目的创建

dotnet new maui -n HelloMaui

 

3 你可以通过MAUI Check去做一些定制工作,例如Nuget设定或者相关SDK环境设定,还有你可以获取最新的开发环境支持,因为MAUI还在preview阶段,所以相关依赖的库需要重新定向Nuget

maui-check config --nuget-sources

关于.NET MAUI Check的更多实用你可以参考https://github.com/redth/dotnet-maui-check

三 运行与调试

官方去年已经说了MAUI可以和Visual Studio Code结合使用,但现在相关插件功能还在路上,所以暂时不能完整使用,你现在可以通过脚本进行调用

dotnet build -t:Run -f net6.0-android

dotnet build HelloMaui -t:Run -f net6.0-ios

dotnet build HelloMaui -t:Run -f net6.0-maccatalyst

 

四 小结

MAUI在11月会和.NET 6一起正式发布,现阶段还是很初期,算是一个非常新的开始,当然你说是不是旧酒新瓶呢?但作为一个.NET 6的主推功能推出,也是非常重磅。这里大家会和同类型的产品Flutter比较,就看你的使用场景和团队的需求了,其实两者差不多。随技术发展,国内的技术生态,MAUI要怎么走还很难说,需要大家共同努力。不过很认真说,这个主动权还是微软。

————————————————

版权声明:本文为CSDN博主「kinfey」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/kinfey/article/details/115764722

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程到底难在哪里? 从一个美国实习生的故事说起

记得之前组里来了一个美国实习生小伙子,很极客的那种,干活快,一天能给你写2000行代码(我复查的速度跟不上他写的速度),让做什么东西,上午告诉做个这个功能,下午就能在测试环境跑起来演示了。跟他单独开会的…

温故知新,DotNet Core SDK和.Net CLI十八般武艺

简介.NET命令行接口 (CLI) 工具是用于开发、生成、运行和发布.NET应用程序的跨平台工具链。https://docs.microsoft.com/zh-cn/dotnet/core/tools/SDK.NET SDK (Software Development Kit) v5.0.201.exe里程碑发布日期.NET Core 2.1.x (servicing)LTS (Long Term Support) rele…

谁说数学没用,一旦我们用在赚钱上,全世界都害怕

今天来说说“量化”投资这个门派的开山祖师、美国“赌神”——爱德华 索普。爱德华 索普是一位大教授,天才数学家,非常喜欢扑克牌博弈游戏。一般人玩扑克也就只盯着眼前输赢,爱德华 索普却花了两年时间利用早期的IBM计算机和概率论中的凯利…

2021年春招Elasticsearch面试题

1、Elasticsearch是如何实现master选举的?1、对所有可以成为master的节点根据nodeId排序,每次选举每个节点都把自己所知道节点排一次序,然后选出第一个(第0位)节点,暂且认为它是master节点。 2、如果对某个…

android qq红包,Android实现QQ抢红包插件

又想到快要过年了,到时候还不知道群里要发好多红包,所以我将之前在网上宕的一份微信抢红包的代码修改了一下,实现了QQ抢红包!可以支持抢QQ拼手气红包,普通红包,口令红包,现在再也不怕20年单身手…

8个Python高效数据分析的技巧

不管是参加Kaggle比赛,还是开发一个深度学习应用,第一步总是数据分析。这篇文章介绍了8个使用Python进行数据分析的方法,不仅能够提升运行效率,还能够使代码更加“优美”。一行代码定义List定义某种列表时,写For 循环过…

NET问答: 如何在 ASP.NET Core Web API 的 Response 中添加自定义的 Header ?

咨询区 JDawg:我正在将 Web API 2 移植到 ASP.NET Core Web API 上,以前我都直接在 Response 属性上添加自定义的 Header,如下代码所示:HttpResponseMessage response new HttpResponseMessage(HttpStatusCode.OK); response.Hea…

一个免费兑换iPhone X的机会,就这样被你错过了

嗨~我是大家最爱的小树,第一次写文,有点小鸡冻!!!小树此行是带着超模君的礼物来的哦!上周准备会员周回馈粉丝的时候,超模君突然决定要送模友们:iPhone X !!&a…

正则表达式学习神器!

推荐一款优秀的正则表达式在线可视化工具我相信很多朋友第一次听到正则表达式时,都感觉这是一个高大上的名词。其实,简单来说,正则表达式就是用来匹配文本的。正则表达式里的 “正” 是指常客,即经常出现、通用的意思;…

数据可视化,带给你的惊艳并不止这一点!

在大数据时代的现今,数据庞大且繁杂,仅通过简单的数据整理得出清晰的结论,已经不太合理。实际上,若要简明扼要地展示出结论,不妨考虑一下数据可视化。那么,什么是数据可视化呢?数据可视化&#…

关于C3P0容错和自动重连特性的研究

为什么80%的码农都做不了架构师?>>> 最近常有数据库和网络设备升级和搬迁等事情,而各个应用都是基于数据库连接池做的,大部分都是基于C3P0,数据库或网络状况的变动都会导致客户端连接池中的connection失效&#xff0c…

android otg主从切换,一种自动切换OTG设备主从模式下的Vbus电压的方法与电路与流程...

本发明涉及otg设备的检测领域,更具体地说,涉及一种自动切换otg设备主从模式下的vbus电压的方法与电路。背景技术:现有技术中,具备otg功能的设备通过检测usb_id引脚的状态来判断工作为host(主模式/usb_id悬空)或者device(从模式/us…

又一起.NET程序挂死, 用 Windbg 抽丝剥茧式的真实案例分析

一:背景 1. 讲故事前天有位粉丝朋友在后台留言让我帮忙看看他的 Winform程序 UI无响应 410线程 到底是啥情况,如下图:说实话,能看到这些真实案例我是特别喜欢的???????????? ,就像医生看病,光…

别乱说,算法才不是脑筋急转弯

老崔去某厂笔试时,遇到了经典的「狼、羊、白菜 过河问题」。由于经常看算法方面的内容,这道对于他来说,so easy。题目大概是这样:题号1:农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船&#xff…

HTML坐标不随着屏幕大小改变,HTML热区map坐标,随窗口大小自适应办法(javascript)...

为图片添加MAP:/>/>/>/>图片大小随页面变化,需要MAP中每个area的坐标也随页面等比例变化。Javascript实现:adjust();var timeout null;//onresize触发次数过多,设置定时器window.onresize function () {clearTimeou…

NET问答: Find() 和 Where().FirstOrDefault() 该如何选择 ?

咨询区 KingOfHypocrites:我经常看到别人用 Where.FirstOrDefault() 获取某一个匹配集合的第一个元素,我在想为什么他们不使用 Find() 呢 ? 是不是前者更高级一点?有人能告诉我它们的差别吗?比如下面的代码:namespace…

python实战,教你用微信每天给女朋友说晚安

但凡一件事,稍微有些重复,我就考虑怎么样用程序来实现它。这里给各位程序员朋友分享如何每天给朋友定时微信发送”晚安“,故事,新闻等等。最好运行在服务器上,这样后台挂起来更方便。准备:**微信号** pip i…

学计算机与学英语作文,初二英语作文(关于计算机与学习)

鲁铁华回答:Thereisabiginfluenceoftechniqueonourdailylife.Electronicdevices,multimediaandcomputersarethingswehavetodealwitheveryday.EspeciallytheInternetisbecomingmoreandmoreimportantfornearlyeverybodyasitisoneofthenewestandmostforward-lookingmed…

10号发工资和20号发工资的公司,区别竟然这么大?

工资的话题一直占据着职场热度榜单这不最近又热起来了10号发工资和20号发工资,就能看出一个公司是否靠谱?对很多工薪族来说发工资这一天是脱贫致富的重要日子也是很多人的还款日子而这几年,一直有种说法发薪日是公司生态的一个缩影可以由此看出一个公司…

Exchange2003-2010迁移系列之九,创建DAG组

创建DAG两台Mailbox服务器部署完成后,我们接下来要在Mailbox服务器上配置DAG了。配置DAG的目的是为了增强邮件服务器的高可用,避免一台Mailbox服务器损坏之后,邮件系统用户无法访问邮箱。但在部署DAG之前,我们要了解下列几点&…