Created: 2026-01-01 Completed: 2026-01-01 Status: Completed Priority: High
Neatoo 10.1.1 and RemoteFactory 10.1.0 introduced C# record support. This todo tracks updating all documentation to reflect this new capability.
4c83d45 on 2025-12-30)| Commit | Date | Description |
|---|---|---|
0df02e5 |
2026-01-01 | 10.1.1 - RemoteFactory 10.1.1. Support for Records |
1b0695f |
2025-12-31 | .NET 8, .NET 9 and .NET 10 support |
d4c4ce2 |
2025-12-31 | Race condition fix in AsyncTasksTests |
9e62dda on 2025-12-30)| Commit | Date | Description |
|---|---|---|
27760f8 |
2026-01-01 | 10.1.0 - Record Support |
9cb1ee5 |
2026-01-01 | v10.1.1 - Directory.build fix |
b90ba4d |
2026-01-01 | .NET 8.0, .NET 9.0, .NET 10.0 target support |
[Create]: Records with primary constructors can use [Create] on the type declaration[Service] attribute works in positional record parameters[Fetch] methods work with records (sync and async)[Remote] with proper serializationNeatooJsonSerializerrecord - fully supportedrecord class - fully supportedrecord struct - NOT supported (generates diagnostic NF0206)_pages/reference/base-value-objects.md
[Create] pattern[Fetch] operationsrecord struct constraint_pages/reference/factory-operations.md
[Create] section[Create] on type declaration syntaxrecord struct limitation_pages/concepts/factories-overview.md
_pages/introduction.md
CLAUDE.md
4c83d45 → 0df02e59e62dda → 27760f8~/.claude/skills/neatoo/SKILL.md
~/.claude/skills/neatoo/factories.md
[Create][Fetch] for records~/.claude/skills/neatoo/entities.md
[Factory]
[Create]
public record Money(decimal Amount, string Currency = "USD");
// Generated:
public interface IMoneyFactory
{
Money Create(decimal amount, string currency = "USD");
}
[Factory]
[Create]
public record Address(
string Street,
string City,
string State,
string ZipCode,
[Service] IAddressValidator validator);
// Generated (services hidden):
public interface IAddressFactory
{
Address Create(string street, string city, string state, string zipCode);
}
[Factory]
[Create]
public record CustomerSummary(Guid Id, string? Name, string? Email)
{
[Remote]
[Fetch]
public static async Task<CustomerSummary?> Fetch(
Guid id,
[Service] IDbContext db)
{
var entity = await db.Customers.FindAsync(id);
return entity is null ? null
: new CustomerSummary(entity.Id, entity.Name, entity.Email);
}
}
[Factory]
[Create]
public record OrderLookupResult(
Guid OrderId,
string? CustomerName,
decimal Total,
OrderStatus Status)
{
[Remote]
[Fetch]
public static async Task<OrderLookupResult?> Fetch(
Guid orderId,
[Service] IOrderRepository repo)
{
return await repo.GetOrderSummaryAsync(orderId);
}
}
After updates, verify:
https://github.com/NeatooDotNet/Neatoo/docs/todos/remotefactory-record-support-update.mdhttps://github.com/NeatooDotNet/RemoteFactory/docs/todos/record-support-plan.mdbase-value-objects.md page should emphasize this