Blogs
📆 2025-12-22 19:34

10.0 Update Notes

Version 10.0 is a fresh start. It includes new features and improvements, plus architectural refactoring for better performance and maintainability.

Solution Template

The template has been refactored to provide an out-of-the-box experience. Key themes: simplification and standardization. We remove specific patterns and habits, adopting mainstream approaches for most scenarios.

Streamlined Framework Packages

  • Merged Ater.Web.Core and Ater.Web.Convention into Ater.AspNetCore; removed non-essentials.
  • Renamed Ater.Web.Extensions to Ater.AspNetCore.ToolKit as an optional package (no longer default).

Simplified DbContext

Previously, separate CommandDbContext and QueryDbContext increased mental overhead and didn't handle mixed scenarios well.

Now, one DefaultDbContext serves as the primary data access layer. For read-only contexts, inherit ReadonlyDbContext.

Refactored ManagerBase

ManagerBase is now lighter and more flexible. As an abstract class, inherit it regardless of data needs.

ManagerBase<TDbContext, TEntity> methods are optimized. See Manager Business Logic.

Localization

Templates support multi-language out of the box. Generated controllers inject Localizer for string localization.

Source generators auto-create constants from resource files.

Full Aspire Integration

With Aspire maturing, templates now treat it as a core dependency. Explore and extend it throughout development.

Use Aspire integration packages; cache and DB gain observability by default.

Docs provide examples for different scenarios.

Standards

Unified Exception Handling

GlobalExceptionMiddleware handles exceptions uniformly. Add custom logic as needed.

RESTful API Design

Generated endpoints follow RESTful standards.

Operation HTTP Status Notes
Filter POST 200 Now GET
Add POST 200 Now 201
Update PUT 200 Returns updated entity
Delete DELETE 200 Now 204

Performance

For simple add/update/delete operations, execute SQL directly instead of querying first. Judge existence by result.

Note

Complex logic (permissions, preconditions) still requires queries first.

Other

Hybrid Cache

See Cache Operations.

Swashbuckle.AspNetCore 10.0

Primary change: Microsoft.OpenApi package and OpenAPI spec upgrade to 3.1.0.

Performance

Now for simple add/update/delete operations, by default, data is no longer queried first, but relevant SQL operations are executed directly, and whether relevant data exists is judged based on the return result.

Note

For more complex logic, you still need to query first, such as some permission judgments, preconditions, etc.

Others

Hybrid Cache

Swashbuckle.AspNetCore 10.0

The main impact is the Microsoft.OpenApi package, and the OpenApi specification version upgrade to 3.1.0.