.NET 6 Preview 3 Maui 体验
我以为的 MAUI hot reload
我跑出来的,哎,可以看到,完全是重新生成DLL,重新安装的
为什么会这样呢?看devblog,8号发布了[.NET 6 Preview 3][Announcing .NET 6 Preview 3],9号发布了 [MAUI Preview 3][Announcing .NET Multi-platform App UI Preview 3],之前就看了Scott的视频,想试下这么顺滑的mobile hot reload,虽然没有成功(原因下边会讲),但也把相关项目跑了一下,了解一下最新进展。
相关概念
MAUI: Multi-platform App UI 嗯就是字面的意思,支持多平台的APP(Windows、MacOS、Android 和 IOS)
- MVVM:Model-View-ViewModel 就是 XAML 的模式
- MVU:Model-View-Update (上图的演示热更新就是用的这个模式)
MAUI
maui-check
这是一个支持安装和配置 maui 的工具(包括.NET 6,Android ,IOS 的SDK 以及MAUI项目模板),不知道配置的SDK包地址是否有问题,我这边安装很慢,直接手动安装了,不想手动安装的可以试下这个工具
安装: dotnet tool install -g redth.net.maui.check
运行: maui-check --dev
或者手动安装(.NET 6SDK是必装的,其他的根据需求安装即可)
.NET 6 SDK(这个官网下载也可以)
Android
iOS
Mac (Cocoa/AppKit):
Mac Catalyst (UIKit):
WinUI3
- Windows: Get started with Project Reunion
Demo
安装好需要的环境后,即可开始项目
创建MAUI项目
1
dotnet new maui -n mauiDemo
指定nuget包源
因为还是预览版,所以nuget源需要单独指定下,在项目根目录下创建一个
nuget.config
文件,输入以下内容保存1
2
3
4
5
6
7<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
<add key="xamarin" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" />
</packageSources>
</configuration>restore
此时的项目结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16d----- 2021/4/21 0:12 .vscode
d----- 2021/4/19 22:02 Android
d----- 2021/4/19 23:22 bin
d----- 2021/4/19 22:02 iOS
d----- 2021/4/19 22:02 MacCatalyst
d----- 2021/4/21 19:15 obj
d----- 2021/4/19 22:02 Resources
-a---- 2021/4/19 22:02 408 App.xaml
-a---- 2021/4/19 22:02 370 App.xaml.cs
-a---- 2021/4/21 19:15 926 demo.csproj
-a---- 2021/4/19 22:02 288 Directory.Build.targets
-a---- 2021/4/21 19:22 981 MainPage.xaml
-a---- 2021/4/21 19:21 578 MainPage.xaml.cs
-a---- 2021/4/19 22:02 240 MainWindow.cs
-a---- 2021/4/19 22:10 348 nuget.config
-a---- 2021/4/19 22:02 300 Startup.cs如过只使用某个项目,可以修改
csproj
中的TargetFrameworks1
2
3
4
5<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
+ <TargetFrameworks>net6.0-android</TargetFrameworks>
<OutputType>Exe</OutputType>
<SingleProject>true</SingleProject>还原包
1
dotnet restore
运行
需要先启用模拟器,如果是windows调试ios项目,需要先进行ios配对(可以参考 进行调试)
不同项目,对应命令
1 |
|
MVU 根据模板生成的Android项目,会有一个错误的引用
1 |
|
相关issue
wiki
Currently the best experience is on macOS with VS Code and building for iOS.