Software Engineer
3 weeks ago, 212 views
3 weeks ago, 168 views
4 weeks ago, 2470 views
1 month ago, 733 views
1 month ago, 1189 views
Today, we are happy to release the ABP Framework and ABP Commercial version 8.2 RC (Release Candidate). This blog post introduces the new features and important changes in this new version.
Try this version and provide feedback for a more stable version of ABP v8.2! Thanks to all of you.
Follow the steps below to try version 8.2.0 RC today:
8.2.0-rc.3
using a command line terminal:dotnet tool update Volo.Abp.Cli -g --version 8.2.0-rc.3
or install it if you haven't before:
dotnet tool install Volo.Abp.Cli -g --version 8.2.0-rc.3
--preview
option:abp new BookStore --preview
See the ABP CLI documentation for all the available options.
You can also use the Get Started page to generate a CLI command to create a new application.
You can use any IDE that supports .NET 8.x, like Visual Studio 2022.
There are a few breaking changes in this version that may affect your application. Please see the following migration documents, if you are upgrading from v8.x or earlier:
In this section, I will introduce some major features released in this version. Here is a brief list of titles explained in the next sections:
IBlockUiService
for Blazor UIASP.NET Blazor in .NET 8 allows you to use a single powerful component model to handle all of your web UI needs, including server-side rendering, client-side rendering, streaming rendering, progressive enhancement, and much more!
ABP v8.2.x supports the new Blazor Web App template, which you can directly create with the following command:
abp new BookStore -t app -u blazor-webapp
When you create the project, you will typically see two main projects for Blazor UI, besides other projects:
App.razor
component, which is the root component of your application)This new template overcomes the disadvantages of both Blazor WASM and Blazor Server applications and allows you to decide which approaches to use for a specific page or component. Therefore, you can imagine this new web UI as a combination of both Blazor Server and Blazor WASM.
This approach mainly overcomes the large binary downloads of Blazor WASM, and it resolves the Blazor Server's problem, which always needs to be connected to the server via SignalR.
If you are considering migrating your existing Blazor project to Blazor WebApp or want to learn more about this new template, please read the Migrating to Blazor Web App guide.
IBlockUiService
for Blazor UIIn this version, ABP Framework introduces the IBlockUiService
for Blazor UI. This service uses UI Block API to disable/block the page or a part of the page.
You just need to simply inject the IBlockUiService
to your page or component and call the Block
or UnBlock
method to block/unblock the specified element:
namespace MyProject.Blazor.Pages
{
public partial class Index
{
private readonly IBlockUiService _blockUiService;
public Index(IBlockUiService _blockUiService)
{
_blockUiService = blockUiService;
}
public async Task BlockForm()
{
/*
Parameters of Block method:
selectors: A string containing one or more selectors to match. https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector#selectors
busy : Set to true to show a progress indicator on the blocked area.
*/
await _blockUiService.Block(selectors: "#MySelectors", busy: true);
//Unblocking the element
await _blockUiService.UnBlock(selectors: "#MySelectors");
}
}
}
Here is the resulting UI with all possible options (block, block busy, and unblock):
MongoDB allows case-insensitive string comparisons by using case-insensitive indexes. You can create a case-insensitive index by specifying a collation.
To do that, you should override the CreateModal
method, configure the CreateCollectionOptions
, and specify the collation as below:
protected override void CreateModel(IMongoModelBuilder modelBuilder)
{
base.CreateModel(modelBuilder);
modelBuilder.Entity<Question>(b =>
{
b.CreateCollectionOptions.Collation = new Collation(locale:"en_US", strength: CollationStrength.Secondary);
b.ConfigureIndexes(indexes =>
{
indexes.CreateOne(
new CreateIndexModel<BsonDocument>(
Builders<BsonDocument>.IndexKeys.Ascending("MyProperty"),
new CreateIndexOptions { Unique = true }
)
);
}
);
});
}
After this configuration, a unique index will be created for the MyProperty
property and then you can perform case-insensitive string comparisons without the need to worry. See #19073 for more information.
We've also worked on ABP Commercial to align the features and changes made in the ABP Framework. The following sections introduce a few new features coming with ABP Commercial 8.2.
The Session Management feature allows you to prevent concurrent login and manage user sessions. You can allow concurrent login, allow only one session of the same device type, or logout from all other devices when a new session is created, by specifying in the settings page:
Also, you can view and manage users sessions on the Users
page of the Identity Module:
In this version, ABP Suite allows you to add a file/image property for an entity. You can select "File" as the property type for your properties as in the following figure:
Then, when you generate your entity and try to insert a record, you will see the file upload component on the create/update models:
You can upload a file with any supported extensions and under 10MB (this can be increased in the generated code, if you wish) and after that, you can download, delete and update the existing file any time you want:
Note: This feature has already been implemented for MVC & Blazor UIs, but not implemented for Angular UI yet. We aim to implement it for Angular UI with v8.2.0.
In this version on, ABP Suite provides DateOnly
and TimeOnly
types as property types. You can select these types when you create an entity:
Then, all related configurations (including db configurations) will be made by ABP Suite, and you will be able to see the fields in the UI:
Note: The
DateOnly
andTimeOnly
types were introduced with .NET 6. Therefore, please make sure that all of your projects' target frameworks are .NET8+. With ABP v8.2, all startup templates target a single target framework, which is .NET8, so if you created your project with version 8.2+, you don't need to make any changes.
In this version, the Audit Logging Module provides a built-in periodic log deletion system. You can enable/disable the clean-up service system wide, in this way, you can turn off the clean up service for all tenants and their hosts:
If the system wide clean up service is enabled, you can configure the global Expired Item Deletion Period for all tenants and hosts.
When configuring the global settings for the audit log module from the host side in this manner, ensure that each tenant and host uses the global values. If you want to set tenant/host-specific values, you can do so under Settings -> Audit Log -> General. This way, you can disable the clean up service for specific tenants or host. It overrides the global settings:
Note: To view the audit log settings, you need to enable the feature. For the host side, navigate to Settings -> Feature Management -> Manage Host Features -> Audit Logging -> Enable audit log setting management.
We organized ABP Dotnet Conference 2024 on May 2024 and we are happy to share the success of the conference, which captivated overwhelmingly interested live viewers from all over the world. 29 great line up of speakers which includes .NET experts and Microsoft MVPs delivered captivating talks that resonated with the audiences. Each of the talks attracted a great amount of interest and a lot of questions, sparking curiosity in the attendees.
Thanks to all speakers and attendees for joining our event. 🙏
We shared our takeaways in a blog post, which you can read at https://blog.abp.io/abp/ABP-Dotnet-Conference-2024-Wrap-Up.
Co-founder of Volosoft, Alper Ebiçoğlu gave a speech about "How to Build a Multi-Tenant ASP.NET Core Application" at the DevDays Europe 2024 on the 20th of May.
We are thrilled to announce that the co-founder of Volosoft and Lead Developer of the ABP Framework, Halil Ibrahim Kalkan gave a speech about "Building a Kubernetes Integrated Local Development Environment" in the DevOps Pro Europe on the 24th of May.
We are happy to announce that core team members of the ABP Framework, Alper Ebiçoğlu and Enis Necipoğlu will give speeches at the Devnot Dotnet Conference 2024 on 25th of May.
Alper Ebiçoğlu will talk about "AspNet Core & Multitenancy":
On the other hand, Enis Necipoğlu will talk about "Reactive Programming with .NET MAUI":
There are exciting articles contributed by the ABP community as always. I will highlight some of them here:
Thanks to the ABP Community for all the content they have published. You can also post your ABP-related (text or video) content to the ABP Community.
This version comes with some new features and a lot of enhancements to the existing features. You can see the Road Map documentation to learn about the release schedule and planned features for the next releases. Please try ABP v8.2 RC and provide feedback to help us release a more stable version.
Thanks for being a part of this community!
ABP 9.0 release candidate has been released today. Read the blog post to learn all new features in details. Continue Reading
ABP 8.3 stable version has been released today. Read the blog post to learn all new features in details. Continue Reading
We have combined the ABP (open-source) and ABP Commercial (paid) documents into a single, comprehensive resource. This unification brings you a bet... Continue Reading
Today, we are happy to release ABP version 8.3 RC (Release Candidate). This blog post introduces the new features and important changes in this new... Continue Reading
📢 We're excited to introduce the new ABP CLI after the announcement of the new unified ABP Platform. Continue Reading
ABP Framework and ABP Commercial 8.2 versions have been released today. Continue Reading
ABP Framework and ABP Commercial 8.1 versions have been released today. Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 8.1 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
Today, ABP Framework and ABP Commercial 8.0 versions have been released based on .NET 8.0. Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 8.0 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
ABP Framework and ABP Commercial 7.4 versions have been released today. Continue Reading
We're excited to introduce to you ABP's CMS Kit Module – a versatile module that empowers you to build your own dynamic content website with ease. ... Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 7.4 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
ABP Framework and ABP Commercial 7.3 versions have been released today. Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 7.3 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
ABP Framework and ABP Commercial 7.2 versions have been released today. Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 7.2 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 7.1 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
ABP Framework and ABP Commercial 7.0 versions have been released today. Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 7.0 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
ABP Framework and ABP Commercial 6.0 versions have been released today. Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 6.0 RC (Release Candidate). This blog post introduces the new features ... Continue Reading
ABP Framework and ABP Commercial 5.3 versions have been released today. Continue Reading
Today, we are happy to release the ABP Framework and ABP Commercial version 5.3 RC (Release Candidate). This blog post introduces the new features ... Continue Reading