MAUI预览版发布 (.NET 6 Preview2)
.NET 6
今天, 微软发布了.NET 6 Preview2, 本次更新除了新的API、性能改进、Apple Silicon的构建, 还有就是主角MAUI的构建。
本篇文章主要介绍关于本次预览版中MAUI当中带来的一些已知的内容。
关于.NET 6的大部分工作, 预计会在7月完成, 之后,将专注与质量。最终将在2021年11月发布, 并将作为长期支持(LTS)版本提供三年的支持。与 .NET 5 相比,平台范围显著扩展。新增的有:
- Android
- Ios
- Mac 和 Mac Catalyst, 用于 x64 和 Apple Silicon(M1)
- Windows Arm64(特别是窗口桌面)
.NET 6(能力)
总而言之,言而总之, 在.NET 6中,您将能够:
- 使用.NET库构建iOS,Android和macOS应用程序。
- 使用.NET MAUI在相同的代码库中创建iOS,Android,Windows和macOS应用程序。
- 跨平台共享更多代码和资源(例如图像,应用程序图标/清单等)。
- 在macOS和Windows上本地运行Blazor Web应用程序。
- 轻松打包和分发您包含的所有目标框架的应用程序。
MAUI介绍
Xamarin的跨平台UI框架Xamarin.Forms正在演变为.NET多平台应用程序UI,使您可以使用相同的代码库轻松编写适用于iOS,Android,Windows和macOS的应用程序。
.NET MAUI作为.NET 6的一部分提供,同时还进行了一系列性能和工具改进,例如.NET / C#Hot Reload,跨不同平台的更多共享资源和代码,以及具有一组更灵活的UI控件的更好的页面呈现性能。
.NET MAUI不仅适用于客户端应用程序开发人员。得益于重构的控件集以及可以在.NET 6库上运行的功能,您现有的Blazor应用程序可以通过.NET MAUI在Windows和macOS上本地运行。
您将能够与Blazor代码库无缝结合本机控件和功能,包括特定于平台的功能。
本次MAUI更新内容
为安卓、iOS 和 Mac Catalyst 添加了.NET MAUI 和单个项目开发人员体验。
这里可以下载: .NET 6 Preview2 SDK
注:要在今天使用此功能,请遵循示例存储库中的指导以从命令行进行构建和运行。 Visual Studio的未来版本将添加设备选择和运行选项。
单文件多目标项目
在去年MAUI发布中, 我们了解到关于MAUI可以使用单个项目设置多个目标平台, 而不再是以往的多个目标平台单独的项目, 如下所示:
现在,我们可以获得可以在Android,iOS和macOS上运行的非常干净的解决方案。
Windows支持取决于WinUI 3,在未来的预览版当中Windows将添加到MAUI当中。
MAUI应用Host Builder一起引导您的应用程序
关于这种操作, 我们会发现与ASP.NET Core当中类似, 这里通过IAppHostBuilder接口扩展配置服务,字体和兼容性渲染器以扩展Xamarin.Forms项目迁移的扩展。
这种新模式还为库作者和控件供应商提供了一个统一的地方,可与.NET MAUI.IWindow集成。
public class Application : MauiApp
{
public override IAppHostBuilder CreateBuilder() =>
base.CreateBuilder()
.RegisterCompatibilityRenderers()
.ConfigureServices((ctx, services) =>
{
services.AddTransient<MainPage>();
services.AddTransient<IWindow, MainWindow>();
})
.ConfigureFonts((hostingContext, fonts) =>
{
fonts.AddFont("ionicons.ttf", "IonIcons");
});
public override IWindow CreateWindow(IActivationState state)
{
Microsoft.Maui.Controls.Compatibility.Forms.Init(state);
return Services.GetService<IWindow>();
}
}
关于新的控制处理程序
目前官方介绍了实现新处理程序方法的第一个控件和属性。
这些包括Button,Label和Entry,Slider和Switch的部分实现。
以及目前微软正在接受请求以填写完整的实现,并且一些贡献者已经成功地做出了贡献。
本次更新示例项目演示
HelloMaui示例应用程序现在从单个项目运行到macOS,iOS和Android,其中展示了当前已移植的控件集。
注: 关于该示例, 请遵循示例存储库中的指导以从命令行进行构建和运行。 Visual Studio的未来版本将添加设备选择和运行选项。
-
mac OS:
-
IOS:
-
Android:
在此版本中,移动SDK和周围的工具也正在获得功能。 这些功能将与将来的Visual Studio发行版集成在一起,并将继续得到改进。
Android:
- Android X库现已可用于.NET 6,并且是Android应用程序的默认依赖项
iOS:
- Windows上的开发人员可以使用远程iOS模拟器
- Windows上的开发人员可以连接到远程Mac构建主机
- 提前编译已添加,可用于构建和部署到物理iOS硬件