EasyAF 5.0: dotnet easyaf new, performance pass, .NET 10/11 - #4
Merged
Merged
Conversation
* Content fixes * Update docs.json * Add net11 support, CSDL LongDescription, and isolate EF tests. - Target net11.0 (SDK 11 RC1); keep per-TFM package groups with 12.0.0 caps; drop coverlet; floor test STJ at 10.x. - Map CSDL Summary to <summary> and LongDescription to <remarks>; skip empty XML docs. - Load SQL Server EasyAF_LongDescription extended properties into CSDL LongDescription. - Stub DirectUpdate/DirectDelete on EF Core net11 (Z.EntityFramework.Plus has no 11.x package). - Round Interval test expectations to 8 decimals for net11 Convert.ToDecimal(double). - Stop CodeGen tests from writing Baselines; isolate EntityManager tests from shared LocalDB. * Z.EntityFramework.EF6 reference update. * Install .NET 11 RC1 on GitHub Actions. * Basic Readme's (for now). * Fix EFCoreToEdmx temp file collision across TFMs. * Thanks, Postrges!
Main packs a stable EasyAF version that still references 11.0.0-rc.1 packages. TreatWarningsAsErrors was failing the build on that pack warning.
- Drop net11.0 from every project and the net11-only package groups, so the stable packages no longer depend on 11.0 RC packages. Remove the global NU5104 suppression that existed only for those RC dependencies. - Set RollForward=Major on the dotnet-easyaf tool so it still runs on a machine that only has the .NET 11 runtime. - Add DualHttpContextAccessor and InnerHttpContext with tests. - Docs: drop the .NET 11 DirectUpdate/DirectDelete note from the Business.EFCore readme, remove the internal Clarification Needed guide from the docs project, and regenerate the docsproj output (net10.0 assembly list, API reference for DualHttpContextAccessor and InnerHttpContext). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Target .NET 10 and 11 only; per-framework Microsoft.Build references - Add `dotnet easyaf new`: scaffold Core, Data, Business, Api, MessageBus, and Tests projects from the SDK templates into an .slnx - Keep TemplateEngine's NuGet.* and EF Core Design's Microsoft.Build.Framework out of Tools output so MSBuildLocator loads the SDK's copies - Support Guid, int, and long audit IDs; skip ICreatorTrackable for a nullable CreatedById with warning EASYAF005 - Move generator diagnostics into SourceGeneratorConstants; split EASYAF001 into 001/006/007; add EasyAFLaunchDebugger - Rename GenerateViews to EasyAFGenerateViews, with EASYAF008 for the old name - Add Tests.Analyzers.EF6 to test the source generator against Tests.Shared's EDMX - Rename Restier IModelBuilderExtensions to EasyAF_Restier_IModelBuilderExtensions - Replace EntityManager's TypeDictionary + LINQ checks with pattern matching; drop Ben.TypeDictionary - Cache ClaimsPrincipal ID claim types; add TryGetIdClaim for Guid, int, and long - Generate nameof setters instead of expression trees; create OriginalValues lazily - Add JsonSerializerOptions.IgnoreAuditFields(); obsolete the reflection-based converter - Add Benchmarks.Core/EF6/EFCore comparing EasyAF 4.x (V4) with 5.0 - Set DocumentationFile in Directory.Build.targets so it uses AssemblyName - Add 5.0 release notes; update the audit, table design, and converter docs - Remove a duplicate IsSampleProject check and a stale BurnRateContext item Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
dev's commits are the same changes that reached this branch through main (PR #3), so every conflict keeps this branch's side: the later 4.2.1 and 5.0 edits to the same lines. The only dev-specific difference, the missing NU5104 suppression in src/Directory.Build.props, was already removed here in 4.2.1. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
EasyAF 5.0 Preview 1
Platform
NuGet.*and EF Core Design'sMicrosoft.Build.Frameworkout of the Tools output, so MSBuildLocator loads the SDK's copies.DocumentationFiletoDirectory.Build.targetsso it doesn't need to be set in every project.IsSampleProjectcheck and a staleBurnRateContextitem.dotnet easyaf newclasslib/web/consoletemplates, in-process, into an.slnx.--no-api,--no-messagebus,--no-runtime,--webjob,--namespace,-f 10 | 11.Directory.Build.props/.targets,global.json,nuget.config,DEV.runsettings), plus Program.cs, appsettings and test base classes for each project.AddODataMcp→MapApiRoute→UseODataMcp), commented out untilcode generatecreates the Api class.code generate"projects not found" message now points todotnet easyaf new.Business / Core
Guid,intandlongaudit IDs. SkipICreatorTrackablewhenCreatedByIdis nullable, and report warning EASYAF005.EntityManager's TypeDictionary and LINQ checks with pattern matching, and dropBen.TypeDictionary.TryGetIdClaimforGuid,intandlong.nameofsetters instead of expression trees, and createOriginalValuesonly when first used.JsonSerializerOptions.IgnoreAuditFields()and mark the reflection-based converter obsolete.IModelBuilderExtensionsclass toEasyAF_Restier_IModelBuilderExtensions.Analyzer / CodeGen
SourceGeneratorConstants, split EASYAF001 into 001/006/007, and addEasyAFLaunchDebugger.GenerateViewstoEasyAFGenerateViews. The old name still works and overrides the new one, with warning EASYAF008.BusinessDependencyGeneratorno longer fails when there is no entity container.Tests.Analyzers.EF6, which tests the source generator against the EDMX in Tests.Shared, and check in its generated output.Benchmarks & docs
🤖 Generated with Claude Code