NativeData Status and Roadmap

The live backlog, milestone progress, and prioritized work items are tracked in the NativeData GitHub Project.

Release execution guidance: see release-checklist.md.

Vision

NativeData aims to provide a nativeAOT/trimming-friendly ORM for .NET 10 by favoring:

  • compile-time metadata over runtime reflection
  • explicit provider wiring over dynamic provider loading
  • predictable SQL generation over broad dynamic conventions

What’s Implemented

Package Status
NativeData.Abstractions βœ… Stable β€” contracts, IRepository<T>, ISqlDialect, IEntityMap<T>
NativeData.Core βœ… Stable β€” SqlRepository<T>, DbCommandExecutor, NativeDataContext, NativeDataQuery<T>
NativeData.Sqlite βœ… Stable β€” SQLite provider (Microsoft.Data.Sqlite)
NativeData.Postgres βœ… Stable β€” PostgreSQL provider (Npgsql)
NativeData.Generators βœ… Stable β€” Roslyn source generator, emits IEntityMap<T> at compile time
NativeData.Analyzers βœ… Stable β€” 6 diagnostic rules (ND0001–ND0004, ND1001–ND1002)
NativeData.Extensions.DependencyInjection βœ… Stable β€” AddNativeData<TContext>(), scoped context, DI integration

See providers.md for the provider compatibility matrix.

Roadmap

The full milestone backlog, priorities, and work item status are tracked in the NativeData GitHub Project.

Milestone Focus Status
v0.2.0 Foundation hardening β€” XML docs, CI, edge-case tests βœ… Done
v0.3.0 Source-generated IEntityMap<T> end-to-end βœ… Done
v0.4.0 Analyzer pack expansion (ND0001–ND1002) βœ… Done
v0.5.0 Second provider β€” PostgreSQL (Npgsql) βœ… Done
v0.6.0 LINQ-style fluent query builder (NativeDataQuery<T>) βœ… Done
v0.7.0 NativeDataContext + DI integration (AddNativeData<T>) βœ… Done
v1.0.0 API freeze, full docs, production baseline πŸ”„ In Progress

Architecture

  • Abstractions β€” contracts isolated from runtime implementation
  • Core β€” ADO.NET implementation, provider-agnostic
  • Sqlite / Postgres β€” provider-specific behavior in dedicated packages
  • Generators / Analyzers β€” compile-time tooling, no runtime overhead
  • samples/ β€” AOT publish smoke tests and provider samples

Non-Goals

NativeData intentionally avoids in core:

  • runtime expression compilation (LINQ translation is source-generated or compile-time-bounded)
  • runtime assembly scanning or dynamic provider loading
  • proxy-based change tracking (incompatible with AOT/trimming)
  • migrations