.NET 6项目开始于2020年底,当时我们正在完成.NET 5,在那里我们开始了统一.NET平台运行机制、库和SDK的旅程。事实证明,.NET 5是一个非常成功的版本,是每年11月发布的第一个版本,而且由于大流行病的影响,是第一个全部由远程团队发布的版本。最重要的是,它已经被迅速和广泛地采用。今年11月,.NET 6将GA,并将完成mono运行时到核心的统一,为所有的工作负载拥有一套基础库,并提供一个SDK和项目系统,并扩大了操作系统和设备的目标集。我们还将发布C#语言的下一个版本C#10,对网络堆栈ASP.NET进行了一些改进,并通过到处的热重载来改善开发体验。我们也在为Visual Studio 2022的下一个主要版本而努力。11月的.NET 6将有更多的改进。请阅读.NET 6和.NET 6中的ASP.NET核心的RC1发布帖子。
.NET多平台应用程序用户界面(.NET MAUI)使人们可以用一个代码库为Windows、macOS、iOS和Android构建本地客户端应用程序,并为Blazor混合场景提供本地容器和控件。.NET MAUI是Visual Studio中的一个封装框架和开发体验,它对现有的原生UI框架进行了抽象,包括Windows的WinUI、macOS/iPadOS的Mac Catalyst、iOS和Android。虽然它不是另一个原生UI框架,但仍有大量的工作要做,以便在这些设备上提供最佳的开发和运行时体验。
.NET团队一直在与社区一起努力开发它,我们致力于发布它。不幸的是,.NET MAUI将不会在11月的.NET 6 GA中准备好用于生产。我们希望在第一天就为用户提供最好的体验、性能和质量,为了做到这一点,我们需要推迟时间表。我们现在的目标是在2022年第二季度初推出.NET MAUI GA。
同时,我们将继续加强Xamarin,并推荐它用于构建生产型移动应用程序,并继续发布.NET MAUI的每月预览版。我们计划为.NET MAUI提供的所有功能将在11月.NET 6发布时提供,但我们将继续在质量和解决客户反馈方面下功夫。我们鼓励你试一试这些预览。.NET升级助手也将支持Xamarin项目升级到.NET MAUI。
.NET 6 RC1是一个 "上线 "版本,这意味着你可以在生产中使用它,你将得到支持。这不包括.NET MAUI包。当.NET 6 RC2发布时,下一次发布的.NET MAUI包将在版本中注明 "预览"。
感谢你们在这一旅程中与我们分享的所有反馈、贡献和兴奋。请继续努力,我们期待着明年初的高质量发布。现在让我们来看看这个版本中的一些新功能。
.NET MAUI预览版8亮点
.NET MAUI的9月预览版完成了一些重要的Visual Studio集成,即在Visual Studio 2022安装程序中把.NET MAUI作为一个工作负载来安装,并在我们的单一、多目标项目内折叠Windows平台。通过Visual Studio 2022预览版4,你现在可以在C#和XAML中使用更广泛的Hot Reload支持,以及新的XAML实时预览面板,以获得一个高效、集中的开发环境。在.NET MAUI SDK本身中,预览版8包括对应用程序启动模式的更新,扩展处理程序的能力,以及其他各种新的控制能力,因为我们正在接近功能的完整性。
Visual Studio 2022 Preview 4的生产力
在安装Visual Studio 2022预览版4时,你现在可以在用.NET进行移动开发的工作负载中检查.NET MAUI(预览)。这将带来.NET 6以及可选的工作负载依赖。Android、iOS和Mac Catalyst。当以桌面为目标时,你也要选择用.NET、UWP和用C++开发桌面的工作负载。

一旦安装,Visual Studio的.NET MAUI模板和功能都是可用的。实时预览将在Visual Studio窗口中反映你正在运行的应用程序,你可以停靠在任何你最方便的地方。该面板支持放大和缩小以关注你的用户界面的每一个细节,支持在水平和垂直轴上对齐元素的指南,在一些平台上,你可以悬停和选择用户界面元素以获得尺寸和距离信息。
XAML热重载现在在安卓、iOS(在Windows上通过热重启或远程构建主机)和Windows上运行良好。而.NET热重启与XAML热重启在安卓、iOS和Windows上也在一起工作。
当你创建一个新项目时,你现在会看到Windows平台与Android、iOS和Mac Catalyst在Platforms文件夹中并列。要使用Windows,你首先需要为Visual Studio 2022安装Windows App SDK扩展,然后在你的csproj文件的顶部取消对TargetFramework节点的注释。在未来的版本中,这将默认与.NET MAUI预装的扩展一起使用。
.NET MAUI SDK更新
最值得注意的更新是,你需要将现有的应用程序迁移到我们如何实现.NET Host Builder模式。我们现在与ASP.NET和Blazor的做法保持一致,用一个MauiProgram类来创建和返回MauiApp。现在每个平台都调用MauiProgram.CreateMauiApp。将现有项目与新模板或拉动请求进行比较,可以看到Android/MainApplication.cs、iOS/AppDelegate.cs和macCatalyst/AppDelegate.cs的这些变化。
比如MauiProgram :
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
});
return builder.Build();
}
}
Android的MainApplication示例 :
public class MainApplication : MauiApplication
{
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
: base(handle, ownership)
{
}
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
}
安卓更新
Android 12(API 31)现在是为Android构建的.NET 6应用程序的默认值。要使用Android 12,你需要手动安装JDK 11。一旦我们更新Visual Studio中的Android工具以使用JDK 11,我们将默认将这一依赖关系与.NET MAUI捆绑。在此之前,JDK 11可能会对Android设计器、SDK管理器和设备管理器产生不利的影响。
Android项目现在默认使用MaterialTheme。@style/Maui.SplashTheme 请确保Platforms/Android/MainActivity.cs ,否则你可能会在Android上出现运行时错误。查看更新的.NET MAUI模板的例子。
其他变化
其他值得注意的变化和新增内容包括:
- MinHeightRequest、MaxHeightRequest、MinWidthRequest、MaxWidthRequest都去掉了 "Request "后缀,布局系统现在将它们视为真值。
- 简化了向任何控件映射器添加行为的方法 -#1859
- 对Shell主题风格的各种改进
- 为Android#2027和iOS#2029添加了RefreshView
- 添加了绝对布局#2136
- 添加了从右到左(RTL)的流向#948
- 添加了Button.Icon ImageSource#2079
今天就开始吧
首先,从你的Windows控制面板中删除所有以前安装的.NET 6和Visual Studio 2022预览版。现在安装Visual Studio 2022预览版4,并在使用.NET的移动开发工作负载、使用.NET的桌面开发工作负载、使用C++的桌面开发工作负载和通用Windows平台下检查.NET MAUI(预览)。
现在,安装Windows App SDKSingle-project MSIX扩展。在运行Windows目标之前,记得在csproj文件中取消对框架的注释。
准备好了吗?打开Visual Studio 2022并创建一个新项目。搜索并选择.NET MAUI:

有关开始使用.NET MAUI的其他信息,请参考我们的文档。
欢迎反馈
Visual Studio 2022预览版正在迅速启用.NET MAUI的新功能。当你遇到任何与调试、部署和编辑器相关的问题时,请使用帮助>发送反馈菜单来报告你的经历。
请让我们知道您使用.NET MAUI创建新应用程序的经验,请在GitHub上与我们联系,地址是dotnet/maui。
