我正在将包含 Xamarin Forms 的 UWP 项目迁移到包含 WinUI 3 的 .NET MAUI 项目。我试图了解应该将现有逻辑放置在新项目结构中的何处。
现有项目结构:
Xamarin 表单项目:
UWP 项目:
MAUI 项目结构:新的 MAUI 多项目应用程序(仅选择适用于 Windows 的 WinUI 3):
毛伊岛项目:
MAUI WinUI3 项目:
我不确定将逻辑从 Xamarin Forms with UWP 项目移动到 MAUI with WinUI 3 项目。具体来说,我很难理解:
我应该将依赖项注册从 App.xaml.cs 移到哪里? AppShell 相当于什么?导航逻辑应该放在哪里?
我应该如何在新项目中构造MainPage.xaml和MainPage.xaml.cs?
MauiProgram.cs 和 MauiProgramExtension.cs 中应包含哪些内容?
我没有找到太多解决此特定迁移场景的文档或教程。任何指导或示例将不胜感激。
我应该将依赖项注册从 App.xaml.cs 移到哪里? MauiProgram.cs 和 MauiProgramExtension.cs 中应包含哪些内容?
您可以将依赖项注册放入 MauiProgramExtension.cs 中,如下所示:
....
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
builder.Services.AddTransient<ILoggingService, LoggingService>();
builder.Services.AddTransient<ISettingsService, SettingsService>();
builder.Services.AddSingleton<MainPageViewModel>();
builder.Services.AddSingleton<MainPage>();
.....
MAUI 为使用依赖注入提供内置支持。更多信息可以参考官方文档:依赖注入。另外,你还可以看到这个案例:“.NET MAUI多项目App”和“.NET MAUI App”的区别。对于
.NET MAUI App
项目,根目录下只有一个MauiProgram.cs
。但对于 .NET MAUI Multi-project App
项目,它被分为两部分:MauiProgram.cs 和 MauiProgramExtension.cs。
AppShell 相当于什么,导航逻辑应该放在哪里?
您可以选择不使用它、删除它。这是默认生成的模板。您还可以使用其他样式
我应该如何在新项目中构造MainPage.xaml和MainPage.xaml.cs?
请参阅:删除文件。您可以在 MAUI Project 中设置布局和控制: