.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
- 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
- Cross-platform consistency Always use MAUI abstractions for file paths and storage.
- Abstraction Wrap storage logic in services and interfaces.
- Performance Use a single SQLite connection per app lifecycle.
- 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
├─ 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:
IDatabaseServiceDatabaseServiceAppDbContext(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