AgentSkillsCN

maui-data-storage

提供 .NET MAUI 应用程序数据存储的最佳实践与模式,涵盖 SQLite、EF Core、Preferences、SecureStorage 以及文件系统访问等技术。

SKILL.md
--- frontmatter
name: maui-data-storage
description: Provides best practices and patterns for data storage in .NET MAUI apps, including SQLite, EF Core, Preferences, SecureStorage, and file system access.

.NET MAUI — Data Storage Skill

Purpose

This skill provides agents with best practices and patterns for storing, retrieving, and managing data in .NET MAUI applications. It covers SQLite, EF Core, Preferences, SecureStorage, and cross-platform file system access.

The goal is to ensure that all data-related code is secure, maintainable, and aligned with modern MAUI architecture.

Core Principles

  1. Use the right storage for the right data
    • Sensitive data → SecureStorage
    • User settings → Preferences
    • Structured relational data → SQLite/EF Core
    • Files and exports → FileSystem.AppDataDirectory
  2. Cross-platform consistency Always use MAUI abstractions for file paths and storage.
  3. Abstraction Wrap storage logic in services and interfaces.
  4. Performance Use a single SQLite connection per app lifecycle.
  5. Safety Never store secrets or tokens in Preferences.

Supported Storage Mechanisms

  • SQLite (raw or EF Core)
  • Preferences
  • SecureStorage
  • File system access
  • JSON-based local storage

Recommended Folder Structure

text
├─ Services
│  └─ Data
│     ├─ Interfaces
│     └─ Models
└─ Database

/Services/Data /Services/Data/Interfaces /Services/Data/Models /Database

Agent Usage Guidelines

  • When generating data models, place them in /Services/Data/Models.
  • When generating database access, create:
    • IDatabaseService
    • DatabaseService
    • AppDbContext (if using EF Core)
  • When asked to “store user settings,” use Preferences.
  • When asked to “store sensitive data,” use SecureStorage.
  • When asked to “save a file,” use FileSystem.AppDataDirectory.

Out of Scope

  • Authentication token storage (covered in maui-authentication)
  • UI logic
  • Cloud sync or remote databases