Blog Post
- See the BLOG POST to learn new features and changes with this release.
Breaking Changes
- PR #4527: StringLengthAttribute usages converted to DynamicStringLengthAttribute (by cotur)
- ISSUE #4507: Fix routes for feature and permission controllers
- ISSUE #4506: Use tilde (~) istead of ^ for NPM package dependencies (MVC UI)
- ISSUE #4497: Use DynamicStringLengthAttribute instead of StringLengthAttribute on the pre-built modules
- PR #4479: Set ConcurrencyStamp property max length to constant (40) (by maliming)
- ISSUE #4454: Add forRoot Static Method for Theme Basic Configuration
- ISSUE #4433: Unify multiple update events for a single entity in the same unit of work
- ISSUE #4411: Don't publish auto distributed events for entities by default
- ISSUE #4410: Move EtoMappings from AbpDistributedEventBusOptions to AbpDistributedEntityEventOptions
- ISSUE #4407: Rename the Default BLOB container
- ISSUE #4376: Remove Config Packages
- PR #4363: Change UOW Timeout property type to int?. (by maliming)
- ISSUE #4361: Please set length to EntityFrameworkCore IdentityServerClients table, column "ExtraProperties" and "ConcurrencyStamp"
- ISSUE #4355: Can not set TimeOut for the UnitOfWorkAttribute
- ISSUE #4351: Remove ObjectExtensionPropertyInfo.ValidationAttributes
- ISSUE #4323: Set AbpSequentialGuidGeneratorOptions.DefaultSequentialGuidType by the database provider packages
- ISSUE #4281: Remove all deprecateds in Angular UI
- PR #4279: Make GetClaimsPrincipal mehtod public. (by maliming)
- ISSUE #4254: Remove NGXS Whereever Not Required
- ISSUE #4245: Compile Angular UI packages with TypeScript v3.8 & Angular v9
- ISSUE #4224: Set the ListService's page variable initial value to 0
- PR #4178: Make base properties of common base classes protected instead of public (by maliming)
- ISSUE #4136: Change the defining nav items structure and deprecate the old structure
- ISSUE #3968: Make base properties of common base classes protected instead of public
Features
- PR #4540: Implemented: Support embedded files with manifest created by Microsoft.Extensions.FileProviders.Embedded (by hikalkan)
- ISSUE #4528: Support embedded files with manifest created by Microsoft.Extensions.FileProviders.Embedded
- PR #4524: Introduced DynamicMaxLength (by cotur)
- ISSUE #4517: Add abp.currentUser.roles as a string array in the client side
- ISSUE #4503: Introduce @libs/uppy npm package
- ISSUE #4502: Introduce DynamicMaxLength
- PR #4500: Implement the ICacheSupportsMultipleItems for the AbpRedisCache (by liangshiw)
- ISSUE #4496: Introduce the DynamicStringLengthAttribute
- ISSUE #4494: Upgrade Angular version of the templates to v10
- ISSUE #4489: Implement the ICacheSupportsMultipleItems for the AbpRedisCache
- ISSUE #4483: Create Volo.Abp.Caching.StackExchangeRedis package
- ISSUE #4482: Add SetMany and GetMany to the IDistributedCache
- ISSUE #4472: Add Extensibility System for Angular UI
- PR #4353: Configure IdentityModel request message & configure all http clients. (by maliming)
- PR #4346: Split
ICrudAppservice
and implementations (by NecatiMeral) - ISSUE #4342: Complete methods of IAsyncQueryableExecuter
- PR #4325: Add AddAbpDeveloperSigningCredential method. (by maliming)
- ISSUE #4282: Introduce read-only app service
- PR #4236: Blog module admin separation (by yekalkan)
- PR #4200: Implement Blob Storing Azure Provider. (by maliming)
- ISSUE #4160: Create Oracle.EntityFrameworkCore Integration Package
- ISSUE #4106: Create a page to list all ABP related NPM/Nuget packages
- ISSUE #4098: Blob Storing Azure Provider
- ISSUE #4070: Separate admin side of the blog module
- ISSUE #71: Implement IAsyncQueryableExecuter as chain of responsibility
Enhancements
- ISSUE #4545: Hide a menu item when required policies are not met for all its children
- PR #4522: updated "^" chars to "~" char in npm packages (by AkinSabriCam)
- PR #4513: Change Volo.Docs.Admin.HttpApi.Client project target to netstandard2.0 (by liangshiw)
- ISSUE #4509: Change Volo.Docs.Admin.HttpApi.Client project target to netstandard2.0
- PR #4505: Added PeriodicBackgroundworker quartz adapter (by liangshiw)
- PR #4493: Remove unnecessary launchSettings.json file. (by maliming)
- ISSUE #4491: Optimize getting features
- ISSUE #4487: Optimize getting settings
- PR #4477: MongoDbRepository.AddGlobalFilters extracted to a service (by iyilm4z)
- ISSUE #4465: Could just tidy up and exclude launchSettings.json?
- PR #4453: Soft Delete & Common Test Done for MemoryDB (by iyilm4z)
- PR #4443: Use PreConfigure to configure IdentityBuilder (by liangshiw)
- ISSUE #4442: [bug] TokenCleanupBackgroundWorker will fail when enable Volo.Abp.BackgroundJobs.Quartz
- ISSUE #4440: Docs is wrong about dependency injection part of customizing SignInManager
- ISSUE #4426: Refactor the Angular UI module template
- PR #4424: added missing turkish localization keys and values (by AkinSabriCam)
- ISSUE #4422: Add DynamicLayoutComponent to the root level as a layout
- ISSUE #4418: Add route provider to Angular app templates
- ISSUE #4408: Normalize blob and container names in the providers
- ISSUE #4401: Ngx-Datatable Sorting Behavior Does Not Match ABP
- PR #4387: abp update command enhancement(--check-all). (by maliming)
- PR #4360: Add Languages/LanguageFiles map feature. (by maliming)
- PR #4345: Added
IsSuitableForDynamicClientProxying
and added generic interface restriction (by NecatiMeral) - ISSUE #4332: Revise design for search/filter & nav on the docs module
- PR #4326: Update document (by liangshiw)
- ISSUE #4322: Error occurred-css file can not found ,When I store my doc on github
- PR #4316: Make WebRequestResources store resources according to the current request Path. (by maliming)
- ISSUE #4298: Database BLOB provider can configure the default container if not configured before
- ISSUE #4296: DatabaseBlobProvider auto save changes
- ISSUE #4280: Dynamic C# API Clients - Nested interfaces inheriting
IRemoteService
- PR #4273: No longer get the last version after the specified version (by liangshiw)
- ISSUE #4271: CLI : When specifying the version, do not get the last version
- PR #4270: Using AbpAspNetCoreMvcUiMultiTenancyModule instead of AbpAspNetCoreMultiTenancyModule. (by maliming)
- PR #4269: Upgrade RabbitMQ.Client to 6.1.0 (by liangshiw)
- ISSUE #4268: Consider upgrade RabbitMQ to 6.x.x
- PR #4266: FileSystemBlobProvider Ehnancements. (by maliming)
- ISSUE #4252: Create Page & Sort Directives to Adapt NgxDatatable to ListService
- PR #4247: Remove inherits directive in all pages. (by maliming)
- PR #4238: Remove redundant injection (by liangshiw)
- ISSUE #4237: Idea of passing twice the same parameter(same injection) to constructor in IdentityUserManager class?
- PR #4234: Allow set datatables default configuration (by liangshiw)
- ISSUE #4232: Allow set datatables dom property value
- ISSUE #4225: abp update command enhancement.
- ISSUE #4198: Replace the abp-tables with the ngx-datatable
- ISSUE #4197: Implement ngx-datatable
- ISSUE #4175: Consider to remove inheriting from a base class for pages (cshtml files)
- ISSUE #4150: Work on language / culture name differences between libraries
- ISSUE #4126: FileSystemBlobProvider Ehnancements
- ISSUE #4107: Design the packages page UI
- ISSUE #4027: Upgade NPM dependencies to latest versions before v3.0 (Angular UI)
- ISSUE #4026: Upgade NPM dependencies to latest versions before v3.0 (MVC UI & Core packages)
- ISSUE #4018: Upgade Nuget dependencies to latest versions before v3.0
- PR #3982: Define CollectionFixture in each test project. (by maliming)
- ISSUE #3201: Complete the tag helper documentation (II)
- ISSUE #2833: Implement Soft Delete for the MemoryDB
- ISSUE #2437: Optimize getting permissions
- ISSUE #2207: Extract MongoDbRepository.AddGlobalFilters to a service
Bug Fixes
- PR #4515: Generate the correct editLink value (by liangshiw)
- ISSUE #4514: Doc module generated incorrect edit link
- ISSUE #4370: Bug: Feature name Localizations are wrong in feature management modal.
- PR #4331: Update IIdentityClaimTypeRepository & IIdentityRoleRepository (by liangshiw)
- ISSUE #4330: IIdentityRoleRepository and IIdentityClaimTypeRepository should add filtered GetCountAsync method
- ISSUE #4309: Multiple bound script & stype is empty.
- ISSUE #4291: Bug: Identity module Users create/edit modals shouldn't need role permission
- ISSUE #4289: Bug: Feature values are not cleared entirely in database
- ISSUE #4220: Broken RTL Styles on Production Build
Others
- PR #4552: Create Documentation for Organization Unit Management (by gterdem)
- ISSUE #4551: Create Documentation for Organization Unit Management
- ISSUE #4550: Create a sample application for Organization Unit Managment
- PR #4546: Hid Menu Items When Permission Check For All Children Fail (by armanozak)
- PR #4543: Used Legacy Router Config w/ Children Based on Router Data (by armanozak)
- ISSUE #4542: Fix use of legacy router data based routes config
- ISSUE #4537: Refactor the Bookstore tutorial without NGXS
- PR #4536: Refactored the bookstore tutorial (by mehmet-erim)
- PR #4534: Add migration guide from v2.x to v3.0 for Angular UI (by armanozak)
- PR #4533: Documented how RoutesService works and modifying the menu (by armanozak)
- ISSUE #4532: Document how RoutesService works
- PR #4526: Updated ListService documentation according to ngx-datatable (by armanozak)
- ISSUE #4525: Update ListService documentation according to ngx-datatable
- PR #4521: Exclude primitive type in CreateType method. (by maliming)
- PR #4519: Add roles to CurrentUserDto. (by maliming)
- PR #4510: Upgraded Angular versions to v10 (by mehmet-erim)
- ISSUE #4486: System. Int32 in Angular when primary key is int
- PR #4485: Upgraded NPM Packages (by mehmet-erim)
- PR #4476: Implement LoggedOut View (by gterdem)
- PR #4474: Added Extensibility System for Angular UI (by armanozak)
- PR #4471: Add NamingNormalizerProviders to BlobContainerConfiguration. (by maliming)
- PR #4459: projectbuilding: change environments folder location in angular (by yekalkan)
- ISSUE #4458: Change in project download step: environments folder location in angular
- PR #4457: Recreated Angular module template (by mehmet-erim)
- PR #4455: Added forRoot Static Method for Theme Basic Configuration (by armanozak)
- PR #4446: Remove unnecessary property. (by maliming)
- PR #4445: Improved Routes Handling and the New Config Modules (by armanozak)
- ISSUE #4438: UserLoginInfo's Property typo
- PR #4427: Configure extensible Dtos (by liangshiw)
- PR #4423: Defined the DynamicLayoutComponent in the root level (by mehmet-erim)
- ISSUE #4421: Fix the ngx-datatable localization problem
- PR #4420: Fixed bugs in permission management document (by berkansasmaz)
- PR #4404: Created NavItemsService (by mehmet-erim)
- PR #4402: Modified Ngx-Datatable Sorting Behavior (by armanozak)
- PR #4399: Fix datatables-entensions.js localized bug (by liangshiw)
- ISSUE #4395: datatables-extensions.js could not get localized information.
- PR #4394: Update libs folders (by yekalkan)
- PR #4392: Upgade Nuget dependencies to latest versions. (by maliming)
- ISSUE #4391: Cli: Switch-to-preview command doesn't work for npm preview packages
- PR #4384: Update identityserver client seed data (by gterdem)
- ISSUE #4382: Update identityserver client seed data
- ISSUE #4381: Implement LoggedOut View
- PR #4380: Implement FrontChannel Endpoint (by gterdem)
- ISSUE #4379: Implement FrontChannel Endpoint
- ISSUE #4378: IdentityServer Single SignOut implementation
- PR #4377: Eliminated Config Packages & Removed Routes From Config State (by armanozak)
- PR #4374: Turkish localizations for base and account resources of abp.io (by ebubekirdinc)
- PR #4365: Upgade npm dependencies to latest versions (by yekalkan)
- PR #4364: Removed deprecateds in Angular UI packages (by mehmet-erim)
- PR #4354: Remove npm packages that are not needed for the virtual file module demo (by liangshiw)
- PR #4348: Complete methods of IAsyncQueryableExecuter. (by maliming)
- PR #4321: Refactored some scripts in ng-packs (by mehmet-erim)
- PR #4312: Document the Azure BLOB storage integration. (by maliming)
- PR #4308: Create documentation for Carousel Tag Helper (by gterdem)
- PR #4307: Abp Carousel Tag Helper behaviour error (by gterdem)
- ISSUE #4306: Abp Carousel Tag Helper behaviour error
- PR #4304: Update OrganizationUnitRepository (by liangshiw)
- ISSUE #4303: Organization unit mongodb does not implement phone number filter
- ISSUE #4302: IOrganizationUnitRepositoryΓÇÖs GetMembersCountAsync method miss "filter" argument
- PR #4300: Create documentation for Tables Tag Helper (by gterdem)
- ISSUE #4299: Document the Azure BLOB storage integration
- PR #4297: Create documentation for Button Groups Tag Helper (by gterdem)
- PR #4295: Create documentation for Borders Tag Helper (by gterdem)
- PR #4293: Remove role permission requests from user create edit modals (by yekalkan)
- PR #4292: Create documentation for Breadcrumbs Tag Helper (by gterdem)
- PR #4290: Fix: Feature values are not cleared entirely in database (by yekalkan)
- ISSUE #4278: Document the ICurrentUser
- PR #4276: Create documentation for Navs Tag Helper (by gterdem)
- PR #4265: Create documentation for Badges Tag Helper (by gterdem)
- ISSUE #4264: Create documentation for Tables Tag Helper
- ISSUE #4263: Create documentation for Carousel Tag Helper
- ISSUE #4262: Create documentation for Button Groups Tag Helper
- ISSUE #4261: Create documentation for Borders Tag Helper
- ISSUE #4260: Create documentation for Breadcrumbs Tag Helper
- ISSUE #4259: Create documentation for Navs Tag Helper
- ISSUE #4258: Create documentation for Badges Tag Helper
- ISSUE #4255: Clock documentation
- PR #4250: Document the Console application startup template. (by maliming)
- PR #4233: Update the document to exclude cshtml in the virtual file. (by maliming)
- ISSUE #4230: Sample: Using Stored Procedures, User Defined Functions and Views .
- ISSUE #4227: Try to replace the pages in the module with pre-compiled views.
- PR #4221: Fixed Broken RTL Styles on Production Build (by armanozak)
- PR #4216: Implement ngx-datatable and replace the abp-tables with the new table (by mehmet-erim)
- ISSUE #4212: Upgrade samples to v2.9.
- ISSUE #4184: Add reference to the SignalR & Tiered architecture blog post from the signalr documentation
- ISSUE #4183: An error in generating a URL from the title (abp-module-blogging)
- ISSUE #4100: Document blob storing system (with the providers)
- ISSUE #4095: [Question] Abp Core: Microservices Demo, Missing localization Resources
- ISSUE #4011: Document the Console application startup template
- ISSUE #3925: please add a sample about how to extend IdentityUser.
- ISSUE #3903: Document pagination in BookStore tutorial
- ISSUE #3756: Add Permission Management Component replacement example to Component Replacement document
- PR #2883: dev-app working with Angular 9 (by jrocha)