ABP Framework v2.3.0 Has Been Released!

User Avatar
4 years ago, 6452 views, 4 comments
Cover Image

In the days of coronavirus, we have released ABP Framework v2.3 and this post will explain what's new with this release and what we've done in the last two weeks.

About the Coronavirus & Our Team

We are very sad about the coronavirus case. As Volosoft team, we have remote workers working in their home in different countries. Beginning from the last week, we've completely started to work remotely from home including our main office employees.

We believe in and pray for that the humanity will overcome this issue in a short time.

About the Release Cycle

Beginning from the ABP v2.1.0, we have started to release feature versions once in two weeks, on Thursdays. This is the 3rd release after that decision and we see that it works fine for now and improved our agility.

We will continue to release feature versions (like v2.4, v2.5) in every two weeks. In addition, we may release hotfix versions (like v2.3.1, v2.3.2) whenever needed.

What's New in ABP Framework v2.3.0

We've completed & merged 104 issues and pull requests with 393 commits in this two weeks development period.

I will introduce some new features and enhancements introduced with this release.

React Native Mobile Application

We have finally completed the react native mobile application. It currently allows you to login, manage your users and tenants. It utilizes the same setting, authorization and localization systems of the ABP Framework.

A few screenshots from the application:

mobile-ui

It doesn't have much functionality but it is a perfect starting point for your own mobile application since it is completely integrated to the backend and supports multi-tenancy.

Angular TypeScript Proxy Generator

It is common to call a REST endpoint in the server from our Angular applications. In this case, we generally create services (those have methods for each service method on he server side) and model objects (matches to DTOs in the server side).

In addition to manually creating such server-interacting services, we could use tools like NSWAG to generate service proxies for us. But NSWAG has the following problems we've experienced:

  • It generates a big, single .ts file which has some problems;
    • It get too large when your application grows.
    • It doesn't fit into the modular approach of the ABP framework.
  • It creates a bit ugly code. We want to have a clean code (just like if we write manually).
  • It can not generate the same method signature declared in the server side (because swagger.json doesn't exactly reflect the method signature of the backend service). We've created an endpoint that exposes server side method contacts to allow clients generate a better aligned client proxies.

So, we've decided to create an ABP CLI command to automatically generate the typescript client proxies (#2222) for your REST API developed with the ABP Framework.

It is easy to use. Just run the following command in the root folder of the angular application:

abp generate-proxy

It only creates proxies only for your own application's services. It doesn't create proxies for the services of the application modules you're using (by default). There are several options. See the CLI documentation.

CRUD Application Services for Entities with Composite Keys

CrudAppService is a useful base class to create CRUD application services for your entities. But it doesn't support entities with composite primary keys. AbstractKeyCrudAppService is the new base class that is developed to support entities with composite primary keys. See the documentation for more.

Add Source Code of the Modules

The application startup template comes with some application modules pre-installed as NuGet & NPM packages. This have a few important advantages:

  • You can easily upgrade these modules when a new version is available.
  • Your solution becomes cleaner, so you can focus on your own code.

However, when you need to make major customizations for a depended module, it is not easy as its source code is in your applications. To solve this problem, we've introduces a new command to the ABP CLI that replaces NuGet packages with their source code in your solution. The usage is simple:

abp add-module --with-source-code

This command adds a module with source code or replaces with its source code if it is already added as package references.

It is suggested to save your changes to your source control system before using this command since it makes a lot of changes in your source code.

In addition, we've documented how to customize depended modules without changing their source code (see the section below). It is suggested to use modules as packages to easily upgrade them in the future.

Source code of the free modules are licensed under MIT, so you can freely change them and add into your solution.

Switch to Preview

ABP Framework is rapidly evolving and we are frequently releasing new versions. However, if you want to follow it closer, you can use the daily preview packages.

We've created an ABP CLI command to easily update to the latest preview packages for your solution. Run the following command in the root folder of your solution:

abp switch-to-preview

It will change the versions of all ABP related NuGet and NPM packages. You can switch back to the latest stable when you want:

abp switch-to-stable

See the ABP CLI document fore more.

Documentation Improvements

Extending/Customizing Depended Application Modules

We've created a huge documentation that explains how to customize a depended module without changing its source code. See the documentation.

In addition to the documentation, we've revised all the modules (#3166) to make their services easily extensible & customizable.

EF Core Migration Guide

We've recently created a guide to explain the migration system that is used by the ABP startup templates. This guide also explains how to customize the migration structure, split your modules across multiple databases, reusing a module's table and son on.

Migration from the ASP.NET Boilerplate

If you have a solution built on the ASP.NET Boilerplate, we've created a guide that tries to help you if you want to migrate your solution to the new ABP Framework.

Some Other Features

The Framework

  • Add IRepository.GetAsync and IRepository.FindAsync methods (#3184).

Modules

  • Get password & email address of the admin while creating a new tenant, for the tenant management module (#3088).
  • Elastic search integrated full text search for the docs module (#2901).
  • New Quartz background worker module (#2762)

Samples

  • Add multi-tenancy support to the microservice demo (#3032).

See the release notes for all feature, enhancement and bugfixes.

What's Next?

We have the following goals for the next few months:

  • Complete the documentation and samples, write more tutorials.
  • Make the framework and existing modules more customizable and extensible.
  • Integrate to gRPC & implement gRPC endpoint for pre-built modules (#2882).
  • Create a Blazor UI for the ABP Framework & implement it for all the modules and startup templates (#394).
  • Add new features to pre-built modules and create new modules for the ABP Commercial.

See the GitHub milestones for details.

4 comments

Leave Comment
User Avatar
Sharafudeen 4 years ago

All these features and upcoming features are released "same-time" also in the commercial ABP Framework? If you provide video tutorials for commercial ABP Framework, it will be more helpful to follow. This is awesome framework.. planning to implement in our cloud suite product..!!

User Avatar
merdan 4 years ago

Could you also update Angular Tutorial (https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=NG) to demonstrate usage of generated TypeScript proxies with NgXS state management? Or will generating proxies also generate NgXS files?

User Avatar
hikalkan 4 years ago

It will be updated soon.

User Avatar
Alum 4 years ago

1、在用EF切换mysql时ApiSecret、ClientSecret对象的Value字段 及ClientRedirectUri对象的RedirectUri和ClientPostLogoutRedirectUri的PostLogoutRedirectUri字段长度过长不能作为mysql的主键出现 2、在项目初始化后启动时web项目无法正常启动,提示Redis缓存服务器拒绝连接

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.0 and the ABP Commercial

Released ABP Framework v2.0 and ABP Commercial. See the release notes for changes. Create a demo to see application startup template of ABP Commerc... Continue Reading

hikalkan January 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