Loading

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硬件
posted @ 2021-03-13 00:38  痕迹g  阅读(1957)  评论(0编辑  收藏  举报