- Add NavigationManager.ResolveBrandingUrl and ResolveBrandingCssUrl
- Move the url rules to Volo.Abp.Ui.Branding.BrandingUrlHelper, shared with the mvc themes
Refreshes the cover image and an inline screenshot for the community article "How to Present Your Project To Your Mother" to use the latest visual assets.
Drop the top-level markdown titles from two community article posts so the content starts directly with the article body, matching the expected docs/article rendering format.
Updated the ABP Studio vs. Aspire/AI/CRUD and ABP vs. clean architecture comparison articles to clarify positioning, tool overlap, and ABP platform tradeoffs. The copy now better distinguishes Studio, Suite, Low-Code, templates, and starter kits, and adds supporting references for Aspire, Radzen, and related frameworks.
Adds two new Community Articles under docs/en covering: (1) ABP Studio vs Aspire, AI IDEs, and CRUD generators, and (2) ABP vs Clean Architecture templates, starter kits, and DIY ASP.NET Core. Each article includes its Post.md content and associated cover/inline images.
- One namespace no longer spans two assemblies now that they live in the domain layer
- The Data Protection purpose keeps its old string, so outstanding 2FA codes stay valid
- Match the ASP.NET Core provider, which keeps the key id and key ring location out of the log
- Assert the provider the manager uses, not only the one the key's descriptor hands out
- The public ProviderType is the last type registered under a key, not the one the manager uses
- Add cross-host coverage for a second user type and for both hosts opting out
- Register them in AbpIdentityDomainModule so both ends of a distributed flow use the same provider
- Add AbpIdentityTokenProviderOptions.UseAbpTokenProviders to opt out on every host
A native integer is a number in the api type system too, and a between rule
that carries its own comparer is skipped when its bounds no longer read as an
interval, because the comparer itself is not on the descriptor.
The contribution context carries the property now, so a rule on another type,
the ordinal comparison of two strings for example, no longer publishes a
numeric bound. Two bounds are compared as decimals, which are exact for every
integral type, and only fall back to double for the magnitudes decimal can
not hold.
It reflects the statically evaluable FluentValidation rules of a DTO into the
api definition, so the client proxy generators see the same constraints the
attributes already provide. A rule is only published when it applies to every
instance of the type, which leaves out the conditional rules, the rules of a
non-default rule set and the rules of a RuleForEach.
Volo.Abp.FluentValidation keeps its own dependencies, it does not depend on
Volo.Abp.Http.