SuperAPI AI 工具集

maui-project-setup

编程与开发

查看项目

更新于 10-16 10:36

技能介绍

.NET MAUI — 项目搭建技能

用途

此技能为代理提供一种标准化、面向生产的方式来创建和构建 .NET MAUI 应用程序。它定义了在新 MAUI 项目初始化时应采用的文件夹约定、MVVM 架构默认设置、依赖注入模式以及跨平台注意事项。

其目标是确保所有生成的 MAUI 项目都遵循一致、可维护且可扩展的模式。

核心原则

  1. MVVM 优先架构 以 ViewModel、可观察属性和命令作为主要交互模式。

  2. 依赖注入 使用内置 DI 容器在 MauiProgram.cs 中注册服务。

  3. 关注点分离 将 UI、业务逻辑和数据访问隔离在清晰的文件夹结构中。

  4. 跨平台意识 除非必要,优先使用抽象而非平台特定代码。

  5. 可扩展的文件夹结构 将代码组织成可预测、易发现的模块。

推荐文件夹结构

[root]
├─ Models
│  └─ [在此添加模型类]
├─ Platforms
│  └─ [在此添加平台特定设置和代码]
├─ Resources
│  ├─ AppIcon
│  │  └─ [在此添加应用程序图标文件]
│  ├─ Fonts
│  │  └─ [在此添加字体文件]
│  ├─ Images
│  │  └─ [在此添加图像文件]
│  ├─ raw
│  │  └─ [在此添加原始文件]
│  ├─ Splash
│  │  └─ [在此添加启动屏幕文件]
│  └─ Styles
│     └─ [在此添加样式文件]
├─ Services
│  ├─ Interfaces
│  │  └─ [在此添加服务接口]
│  └─ [在此添加服务类]
├─ ViewModels
│  ├─ MainViewModel.cs
│  └─ [在此添加其他 ViewModel]
├─ Views
│  ├─ Controls
│  │  └─ [在此添加自定义控件]
│  ├─ MainPage.xaml
│  │  └─ MainPage.xaml.cs
│  └─ Templates
│    └─ [在此添加自定义模板]
├─ App.xaml
│  └─ App.xaml.cs
└─ MauiProgram.cs

项目初始化步骤

  1. 创建新的 MAUI 项目:

    dotnet new maui -n [ProjectName]
    
  2. 添加 MVVM 基类:

    • BaseViewModel
    • ObservableObject 或 INotifyPropertyChanged 实现
    • AsyncCommand 辅助类
  3. 在 MauiProgram.cs 中注册服务:

    builder.Services.AddSingleton<INavigationService, NavigationService>();
    builder.Services.AddTransient<MainViewModel>();
    builder.Services.AddTransient<MainPage>();
    
  4. 在 Resources/Styles/Styles.xaml 中配置全局样式。

  5. 添加平台资源:

    • 应用图标
    • 启动屏幕
    • 权限清单

代理使用指南

  • 始终使用上述文件夹结构搭建新的 MAUI 应用(在项目创建后进行调整)。
  • 生成代码时,将文件放入正确的文件夹。
  • 当被要求“创建新页面”时,同时生成:
    • Views/MyPage.xaml
    • ViewModels/MyPageViewModel.cs
  • 当被要求“添加服务”时,创建:
    • Services/Interfaces/IServiceName.cs
    • Services/ServiceName.cs
  • 在 MauiProgram.cs 中注册它。

超出范围

  • 深层 UI 最佳实践(由 maui-ui-best-practices 覆盖)
  • 认证流程(由 maui-authentication 覆盖)
  • 部署(由 maui-deployment 覆盖)