ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.NET MAUI的最新更新

2021-11-27 10:02:53  阅读:232  来源: 互联网

标签:Windows MAUI Visual Studio 最新更新 NET Android


.NET 多平台应用程序 UI (.NET MAUI) 可以使用单个代码库为 Windows、macOS、iOS 和 Android 构建本机客户端应用程序,并为 Blazor 混合方案提供本机容器和控件。.NET MAUI 是 Visual Studio 中的一个框架,它抽象了已经可用的本机 UI 框架——WinUI for Windows、Mac Catalyst for macOS/iPadOS、iOS 和 Android。尽管它不是另一个本机 UI 框架,但仍有大量工作需要在这些设备上提供最佳开发和运行时体验。

.NET 团队一直在与社区一起努力的开发,我们致力于它的发布。不幸的是,.NET MAUI 将无法在 11 月与 .NET 6 GA 一起发布。我们希望在第一天就为我们的用户提供最佳体验、性能和质量,为此,我们需要推迟时间表。我们现在的目标是在 2022 年第二季度初推出 .NET MAUI 。

与此同时,我们将继续增强 Xamarin 并推荐它用于构建生产移动应用程序,并继续发布 .NET MAUI 的月度预览。我们计划为 .NET MAUI 提供的所有功能将在 11 月 .NET 6 发布时提供,但我们将继续努力提高质量并解决客户反馈。我们鼓励您尝试预览。.NET 升级助手还将支持将 Xamarin 项目升级到 .NET MAUI。

.NET 6 RC1 是最终版本之前的版本,这意味着您可以在生产中使用它并获得支持。这不包括 .NET MAUI 包。.NET MAUI 包的下一个版本,当 .NET 6 RC2 发布时,将在版本中显示“预览”。

感谢您在此旅程中与我们分享的所有反馈、贡献和兴奋。请继续发布,我们期待明年年初发布高质量的版本。现在让我们看看这个版本中的一些新功能。

.NET MAUI 预览版8 亮点

.NET MAUI 的 9 月预览版完成了一些重要的 Visual Studio 集成,即在 Visual Studio 2022 安装程序中将 .NET MAUI 作为工作负载安装,并将 Windows 平台折叠到我们的单一、多目标项目中。借助 Visual Studio 2022 预览版 4,您现在可以通过 C# 和 XAML 使用更广泛的热重载支持,以及新的 XAML 实时预览面板,以打造高效、专注的开发环境。在 .NET MAUI SDK 本身中,预览 8 包括对应用程序启动模式的更新、扩展处理程序的能力,以及在我们接近功能完整性时的其他各种新控件功能。

Visual Studio 2022 生产力

安装 Visual Studio 2022 时,您现在可以在使用 .NET 工作负载的移动开发中检查 .NET MAUI(预览版)。这将引入 .NET 6 以及可选的工作负载依赖项:Android、iOS 和 Mac Catalyst。以桌面为目标时,您还需要选择使用 .NET、UWP 的桌面开发和使用 C++ 工作负载的桌面开发。

安装后,.NET MAUI 模板和 Visual Studio 的功能都可用。实时预览将在 Visual Studio 窗口中的面板中镜像您正在运行的应用程序,您可以停靠在最方便的任何位置。该面板支持放大和缩小以关注 UI 的每个细节,在水平和垂直轴上对齐元素的指南,并且在某些平台上,您可以悬停并选择 UI 元素以获取大小和距离信息。

XAML 热重载现在适用于 Android、iOS(在 Windows 上通过热重启或远程构建主机)和 Windows。.NET Hot Restart 也在 Android、iOS 和 Windows 上与 XAML Hot Reload 协同工作。

创建新项目时,您现在会在 Platforms 文件夹中看到 Windows 平台与 Android、iOS 和 Mac Catalyst 并列。要使用 Windows,首先需要安装适用于 Visual Studio 2022 的 Windows App SDK 扩展,然后取消注释 csproj 文件顶部的 TargetFramework 节点。在未来的版本中,默认情况下,这将通过 .NET MAUI 预安装的扩展程序提供。

.NET MAUI SDK 更新

您迁移现有应用程序最显著的更新是我们如何实现 .NET Host Builder 模式。我们现在与 ASP.NET 和 Blazor 如何使用创建并返回 MauiApp 的 MauiProgram 类保持一致。现在每个平台都调用 MauiProgram.CreateMauiApp。将现有项目与新模板或pull request进行比较,以查看对 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();

    }

}

安卓示例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。确保 Platforms/Android/MainActivity.cs 指定 @style/Maui.SplashTheme 否则您可能会在 Android 上遇到运行时错误。例如,查看更新的 .NET MAUI 模板

其他变化

其他值得注意的变化包括:

  • MinHeightRequest、MaxHeightRequest、MinWidthRequest、MaxWidthRequest 已删除“Request”后缀,布局系统现在将它们视为真实值
  • 将行为附加到任何控件映射器的简化方法 – #1859
  • Shell 主题样式的各种改进
  • 为 Android #2027和 iOS #2029添加了 RefreshView
  • 添加绝对布局 #2136
  • 添加了从右到左 (RTL) FlowDirection #948
  • 添加 Button.Icon ImageSource #2079

今天开始

准备好了吗?打开 Visual Studio 2022 并创建一个新项目。搜索并选择 .NET MAUI。

有关 .NET MAUI 入门的更多信息,请参阅我们的文档

欢迎反馈

Visual Studio 2022 正在快速启用 .NET MAUI 的新功能。当您在调试、部署和编辑器相关体验方面遇到任何问题时,请使用“帮助”>“发送反馈”菜单报告您的体验。
请通过dotnet/maui在 GitHub 上与我们互动,让我们了解您使用 .NET MAUI 创建新应用程序的体验。
要查看未来版本中的内容,请访问我们的产品路线图,要了解功能完整性的状态,请访问我们的状态 wiki

标签:Windows,MAUI,Visual,Studio,最新更新,NET,Android
来源: https://blog.csdn.net/helendemeng/article/details/121542980

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有