ABP Framework v2.0 and the ABP Commercial

User Avatar
4 years ago, 8829 views, 11 comments
Cover Image

ABP Framework v2.0 has been released in this week. This post explains why we have released an early major version and what is changed with version 2.0.

In addition to the v2.0 release, we are excited to announce the ABP Commercial, which is a set of professional modules, tools, themes, and services built on top of the open-source ABP framework.

ABP Framework v2.0

Why 2.0 instead of 1.2?

It was planned to release v1.2 after the v1.1.2 release. However, it is reported that v1.x has some performance and stability issues on Linux, especially when you deploy your application to Linux containers with low CPU and memory resources.

We have investigated the problem deeply and have seen that the root cause of the problem was related to the implementation of intercepting async methods. Besides, there were some async over sync usages that effected the thread pool optimization.

Finally, we solved all the problems with the great help of the community. But we also had some important design decisions which cause some breaking changes and we had to change the major version number of the framework because of the semantic versioning.

Most of the applications won't be affected by the breaking changes, or it will be trivial to make these necessary changes.

Breaking Changes

Removed Some Sync APIs

Some of the interceptors are required to use async APIs. When they intercept sync methods, they need to call async over sync. This eventually ends up with async over sync problem. That's why we have removed some sync APIs.

Async over sync pattern is a classical problem of C# when you need to call an async method inside a sync method. While there are some workarounds to this problem, they all have disadvantages and it is suggested to not write such code at all. You can find many documents related to this topic on the web.

To avoid this problem, we have removed:

If you get any compile error, just use the async versions of these APIs.

Always Async!

Beginning from the v2.0, the ABP framework assumes that you are writing your application code async first. Otherwise, some framework functionalities may not properly work.

It is suggested to write async to all your application services, repository methods, controller actions, page handlers.

Even if your application service method doesn't need to be async , set it as async , because interceptors perform async operations (for authorization, unit of work, etc...). You can return Task.Completed from a method that doesn't make an async call.

Example:

public Task<int> GetValueAsync()
{
    //this method doesn't make any async call.
    return Task.CompletedTask(42);
}

The example above normally doesn't need to be async because it doesn't perform an async call. However, making it async helps the ABP framework to run interceptors without async over sync calls.

This rule doesn't force you to write every method async . This would not be good and would be tedious. It is only needed for the intercepted services (especially for application services and repository methods)

Other Breaking Changes

See the release notes for the other breaking changes. Most of them will not affect your application code.

New Features

This release also contains some new features and tens of enhancements:

  • #2597 New Volo.Abp.AspNetCore.Serilog package.
  • #2526 Client-side validation for the dynamic C# client proxies.
  • #2374 Async background jobs.
  • #265 Managing the application shutdown.
  • #2472 Implemented DeviceFlowCodes and TokenCleanupService for the IdentityServer module.

See the release notes for the complete list of features, enhancements and bug fixes.

Documentation

We have completed some missing documentation with the v2.0 release. In the following weeks, we will mostly focus on the documentation and tutorials.

ABP Commercial

ABP Commercial is a set of professional modules, tools, themes, and services built on top of the open-source ABP framework.

  • It provides professional modules in addition to the ABP Framework's free & open source modules.
  • It includes a beautiful a UI theme with 5 different styles.
  • It provides the ABP Suite; A tool to assist your development to make you more productive. It currently can create full-stack CRUD pages in a few seconds by configuring your entity properties. More functionalities will be added over time.
  • Premium support for enterprise companies.

In addition to these standard set of features, we will provide customer basis services. See the commercial.abp.io web site for other details.

ABP Framework vs the ABP Commercial

The ABP Commercial is not a paid version of the ABP Framework. You can consider it as set of additional benefits for professional companies. You can use it to save your time and develop your product faster.

ABP Framework is open source & free and will always be like that!

As a principle, we build the main infrastructure as open-source and sell additional pre-built application features, themes, and tools. The main idea similar to the ASP.NET Boilerplate & the ASP.NET Zero products.

Buying a commercial license saves your significant time and effort and you can focus on your own business, besides you get dedicated and high priority support. Also, you will be supporting the ABP core team since we are spending most of our time to develop, maintain and support the open-source ABP Framework.

With the introduction of the ABP Commercial, now ABP becomes a platform. We call it as the ABP.IO Platform which consists of the open source ABP Framework and the ABP Commercial.

Demo

If you are wondering how exactly looks like the ABP Commercial application startup template, you can easily create a demo and see it in action. The demo includes all the pre-built modules and the theme.

Here, a screenshot from the IdentityServer management module UI:

abp-commercial-demo

This is another screenshot from a demo application using the material design style of the theme:

lepton-theme-material

Pricing

You can build unlimited projects/products, sell to unlimited customers, host unlimited servers without any restriction. Pricing is mostly based on the developer count, support level and source code requirement. There are three main packages;

  • Team license: Includes all the modules, themes and tools. Allows developing your product with up to 3 developers. You can buy additional developer licenses.
  • Business license: Allows downloading the source code of all the modules and the themes. Also, it includes 5 developer licenses by default. You can buy additional developer licenses.
  • Enterprise license: Provides unlimited and private support in addition to the benefits of the business license.

See the pricing page for details. In addition to the standard packages, we are also providing custom services and custom licensing. Contact us if you have any questions.

License Comparison

The license price changes based on your developer count, support level and source-code access.

The Source-Code

Team license doesn't include the source-code of the pre-built modules & themes. It uses all these modules as NuGet & NPM packages. In this way, you can easily get new features and bug fixes by just updating the package dependencies. But you can't access their source-code. So you don't have the possibility to embed a module's source code into your application and freely change the source-code.

Pre-built modules provide some level of customization and extensibility and allow you to override services, UI parts and so on. We are working on to make them much more customizable and extensible. If you don't need to make major changes in the pre-built modules, the team license will be ideal for you, because it is cheaper and allows you to easily get new features and bug fixes.

Business and Enterprise licenses allow you to download the source-code of any module or the theme when you need it. They also use the same startup template with the team license, so all modules are used as NuGet & NPM packages by default. But in case of need, you can remove the package dependencies for a module and embed its source-code into your own solution to completely customize it. In this case, upgrading the module will not be as easy as before when a new version is available. You don't have to upgrade it, surely! But if you want, you should do it yourself using some merge tool or Git branch system.

License Lifetime

ABP Commercial license is perpetual, which means you can use it forever and continue to develop your applications.

However, the following services are covered for one year:

  • Premium support ends after one year. You can continue to get community support.
  • You can not get updates of the modules & the themes after one year. You can continue to use the last obtained version. You can even get bug fixes and enhancements for your current major version.
  • You can use the ABP Suite tool for one year.

If you want to continue to get these benefits, you can extend your license period. Renewing price is 20% less than the regular price.

NDC London 2020

Just like the previous year, we are a partner of the famous software development conference: NDC London! In the previous year, we were there with the ASP.NET Boilerplate & ASP.NET Zero theme:

ndc-london-volosoft

This year, we will be focusing on the ABP.IO Platform (The Open Source ABP Framework and the ABP Commercial). Our booth wall will be like that:

ndc-london-volosoft

If you attend to the conference, remember to visit our booth. We would be glad to talk about the ABP platform features, goals and software development in general.

Would you like to meet the ABP Team?

If you are in London and want to have a coffee with us, we will be available at February 1st afternoon. @hibrahimkalkan and @ismcagdas will be there.

Just write to info@abp.io if you want to meet :)

11 comments

Leave Comment
User Avatar
moiseshv 4 years ago

Hello, can i buy separated ABP Suite tool to use with ABP community ?

User Avatar
lpadilla 4 years ago

There is a comparison table between features in aspnet boilerplate and aspnet zero. I cannot find something similar with the abp framework and abp commercial and it would be useful for deciding whether go with free or commercial template

User Avatar
mariano.gomez@unidata.io 4 years ago

Do you plan to include the functionality of Widgets in abp commercial?

User Avatar
anton 4 years ago

Hi I am coming from a MS Dynamics CRM xRM framework background and I am trying to figure out how fine grain authorization works in abp.io. To me it seems some fundamentals are missing like entity ownership, teams, business units as well as extra permissions on entities as implemented by MS in CRM https://docs.microsoft.com/en-us/power-platform/admin/security-roles-privileges or am I missing something totally? Anton

User Avatar
anton 4 years ago

Hi I am coming from a MS Dynamics CRM xRM framework background and I am trying to figure out how fine grain authorization works in abp.io. To me it seems some fundamentals are missing like entity ownership, teams, business units as well as extra permissions on entities as implemented by MS in CRM https://docs.microsoft.com/en-us/power-platform/admin/security-roles-privileges or am I missing something totally? Anton

User Avatar
Volethanh 4 years ago

Hi, As I know that, there is a commercial product of abp vNext. And I know last time you said that licensed user of aspnetzero would be able to get the licensed of abp vNext product. So I just want to know how can I get that ? Thanks

User Avatar
hikalkan 4 years ago

Please write to info@aspnetzero.com

User Avatar
myomyinthan 4 years ago

Hi , ABP commerce demo is running on microservice ? Thanks

User Avatar
hikalkan 4 years ago

The ABP Commercial demo (https://commercial.abp.io/demo) is a monolith application with Angular UI (authenticated over IdentityServer and using token based authentication). We didn't need a microservice design for the demo :)

User Avatar
Volethanh 4 years ago

How can I use this project as microservice ?

User Avatar
hikalkan 4 years ago

It completely depends on your development & deployment plan. You know, there is no single way of creating a microservice system. The startup template comes with fundamental modules (Identity, Language management, audit logging, saas... etc.) added as NuGet/NPM package references. You may want to use some or all of them as microservice instead of package reference. We've created a microservice demo solution that shows a sample implementation: https://docs.abp.io/en/abp/latest/Samples/Microservice-Demo So, as summary, ABP supports microservice scenarios and pre-built modules is compatible with microservice based deployment and runtime configuration. However, microservice solution is completely based on your requirements and there are thousands of different scenarios.

More From Hikalkan

Announcing ABP Studio (beta) General Availability

ABP Studio (beta) is generally available to everyone and ready for download. Continue Reading

hikalkan July 2024

Unifying the ABP Platform

Some big changes and improvements are coming to the ABP.IO Platform soon Continue Reading

hikalkan April 2024

ABP.IO Platform 7.1 Final Has Been Released

Introducing the ABP.IO Platform version 7.1! Continue Reading

hikalkan March 2023

ABP.IO Platform 5.2 Final Has Been Released

Introducing the ABP.IO Platform version 5.2.0! Continue Reading

hikalkan April 2022

ABP.IO Platform 5.2 RC Has Been Published

Introducing the new features and changes coming with ABP Framework and ABP Commercial version 5.2. Continue Reading

hikalkan March 2022

ABP.IO Platform v5.1 Has Been Released

Introducing the new features and changes coming with ABP Framework and ABP Commercial version 5.1. Continue Reading

hikalkan January 2022

ABP.IO Platform 5.0 RC.1 Has Been Released

Introducing the ABP v5.0 RC and the new features coming with this version. Continue Reading

hikalkan November 2021

ABP.IO Platform 4.4 Final Has Been Released!

ABP Framework and ABP Commercial 4.4 versions have been released. Continue Reading

hikalkan August 2021

ABP Platform 4.4 RC Has Been Released

This post covers the new features and changes coming with the ABP.IO platform version 4.4. Continue Reading

hikalkan June 2021

ABP.IO Platform v4.3 Has Been Released!

Introducing the ABP.IO Platform version 4.3.0! Continue Reading

hikalkan April 2021

ABP Commercial 4.3 RC Has Been Published

Introducing the ABP Commercial v4.3 RC and the new features coming with this version Continue Reading

hikalkan April 2021

ABP Framework 4.3 RC Has Been Published

Introducing the ABP v4.3 RC and the new features coming with this version Continue Reading

hikalkan April 2021

ABP.IO Platform 4.2 Final Has Been Released!

ABP Framework and ABP Commercial 4.2 versions have been released today. Continue Reading

hikalkan January 2021

ABP.IO Platform v4.2 RC Has Been Released!

This post covers the new features and changes coming with the ABP.IO platform 4.2 version. Continue Reading

hikalkan January 2021

ABP.IO Platform v4.1 Final Has Been Released!

ABP Framework and ABP Commercial 4.1 versions have been released. Continue Reading

hikalkan January 2021

ABP.IO Platform v4.1 RC Has Been Released!

Released ABP.IO Platform v4.1 RC. Some new features: Module Entity Extensions, Blazor UI Improvements, Spanish Language Translation etc. Learn more... Continue Reading

hikalkan December 2020

ABP.IO Platform 4.0 with .NET 5.0 in the 4th Year!

Released ABP.IO Platform v4.0 Final. Some new features: Migrated to .NET 5.0, Stable Blazor UI, Identity Server 4 Upgrade, Moved to System.Text.Jso... Continue Reading

hikalkan December 2020

ABP.IO Platform v4.0 RC Has Been Released based on .NET 5.0!

Released ABP.IO Platform v4.0 RC. Some new features: Migrated to .NET 5.0, Stable Blazor UI, Identity Server 4 Upgrade, Moved to System.Text.Json, ... Continue Reading

hikalkan November 2020

ABP Framework & ABP Commercial 3.3 Final Have Been Released

Released ABP v3.3. Some new features: New modules & features for the Blazor UI, Automatic Validation for AntiForgery Token for HTTP APIs, Rebus Int... Continue Reading

hikalkan October 2020

ABP Framework & ABP Commercial v3.3 RC Have Been Released

Released ABP v3.3 RC. Some new features: New modules & features for the Blazor UI, Automatic Validation for AntiForgery Token for HTTP APIs, Rebus ... Continue Reading

hikalkan October 2020

ABP Framework v3.2 Final Has Been Released

Released ABP v3.2 final. Some new features: The Blazor UI, MongoDB ACID Transactions, Kafka Integration for the Distributed Event Bus etc. Learn mo... Continue Reading

hikalkan October 2020

ABP Framework & ABP Commercial 3.2 RC With The New Blazor UI 🚀

Released ABP v3.2 RC. Some new features: The Blazor UI, MongoDB ACID Transactions, Kafka Integration for the Distributed Event Bus etc. Learn more ... Continue Reading

hikalkan September 2020

Introducing the Angular Service Proxy Generation

ABP Framework has introduced the new Angular Service Proxy Generation system with the version 3.1. This post introduces the service proxy generatio... Continue Reading

hikalkan September 2020

ABP Framework v3.1 Final Has Been Released

Released ABP v3.1 final. Some new features: Angular Service Proxies, Authorization Code Flow for the Angular UI, Global Feature System etc. Learn m... Continue Reading

hikalkan September 2020

ABP Framework v3.1 RC Has Been Released

Released ABP v3.1 RC. Some new features: Angular Service Proxies, Authorization Code Flow for the Angular UI, Global Feature System etc. Learn more... Continue Reading

hikalkan August 2020

ABP Framework v3.0 Has Been Released

Released ABP v3.0. Some new features: Angular 10, The Oracle Integration Package, Azure BLOB Storage Provider etc. Learn more about what's new with... Continue Reading

hikalkan July 2020

ABP Framework v2.9.0 Has Been Released

Released ABP v2.9.0. Some new features: Organization Units System, Blob Storing Package, EF Core Oracle Integration Package, Chat Module Angular UI... Continue Reading

hikalkan June 2020

ABP v2.8.0 Releases & Road Map

Released ABP Framework and ABP Commercial v2.8. Some new features: SignalR Integration Package, RTL Support for the MVC UI, New Lepton Theme Styles... Continue Reading

hikalkan May 2020

ABP Framework v2.7.0 Has Been Released!

Released ABP Framework v2.7. Some new features: Object Extending System, Text Templating Package, Subscribing to the Exceptions etc. Learn more abo... Continue Reading

hikalkan May 2020

ABP Framework v2.3.0 Has Been Released!

Released ABP Framework v2.3. Some new features: React Native Mobile App, Angular TypeScript Proxy Generator, CRUD app service etc. See the GitHub m... Continue Reading

hikalkan March 2020

ABP v1.0 Has Been Finally Released

Released the first stable ABP v1.0, after ~3 years of continuous development! Start playing with the new ABP framework now. See the GitHub mileston... Continue Reading

hikalkan October 2019

ABP v0.21 Has Been Released based on the ASP.NET Core 3.0

Released ABP v0.21 with no new feature. The release is just upgrade to the stable AspNet Core 3.0. Check v0.20 release notes for new features, and ... Continue Reading

hikalkan September 2019

ABP v0.19 Release With New Angular UI

Released ABP v0.19 with 90+ issues resolved and 650+ commits pushed. Some new features: Angular UI, Widget System. See the roadmap for all upcomings. Continue Reading

hikalkan August 2019

ABP CLI, New Templates & Features v0.18 Release

Released ABP v0.18 with 80+ issues resolved and 550+ commits pushed. Changes: ABP CLI command line tool, and new startup templates. See the roadmap... Continue Reading

hikalkan June 2019

Microservice Demo, Projects Status and Road Map

See microservice solution demo documentation for a detailed explanation of the solution. It aims to demonstrate a simple yet complete microservice ... Continue Reading

hikalkan February 2019