Generic Abp is a set of modules for the ABP Framework.
- Go to the 'build' folder in
Power Shell
and executebuild-all-release.ps1
to generate a release version of the module. - Go to the
nupkg
folder and executepack.ps1
to package the module. - In the
nupkg
folder, executepush_packages.ps1
to publish the package to the NuGet server you set up
The demo is located in the src\demo\Generic.Abp.Demo
folder. After you open the solution, follow these steps to modify the program configuration:
- Modify the
appsettings.json
database connection string for theGeneric.Abp.Demo.DbMigrator
project, currently using MySQL. - Run the
Generic.Abp.Demo.DbMigrator
project once to migrate the database. - Modify the
appsettings.json
database connection string for the 'Generic.Abp.Demo.Web' project, and then run the project to open the demo. - Log in using
admin/1q2w3E*
.
Rewrote the default theme of ABP using Tailwind CSS and rewrote the login of the Account module and its related pages. This module only supports OpenIddict and does not support IdentityServer. This module also rewrites the Volo.Abp.OpenIddict.AspNetCore module, as the module's authorization page uses ABP's default theme, resulting in inconsistent styling. This module is for learning and reference only and is not recommended for use in a production environment.
As long as the module has changed the Configuration
related interface and the Settings
interface to accommodate Sencha Ext JS development, you can view it through the swagger
of the demo program.
The module has only one project, referenced in the HttpApi
of the Abp application and added dependencies.
To encapsulate some common business contingencies, reference and add dependencies in Domain.Shared
.
Some extensions have been made to Abp's original domain classes and interfaces, such as adding interfaces and entity classes such as ITree
, ITranslation
and Translation
.
Add an enumeration class for the application and return the enumeration class to the client via the /api/configuration/enums
interface.
To define an enumeration class, you need to reference the Generic.Abp.Enumeration.Domain.Shared
project in the Domain.Shared
project, and then create your own enumeration class by inheriting Enumeration
:
class MyEnum: Generic.Abp.Enumeration.Enumeration<MyEnum>
{
public static readonly MyEnum MyEnum1 = new MyEnum(1, "MyEnum1", isDefault: true);
public static readonly MyEnum MyEnum2 = new MyEnum(2, "MyEnum2");
protected MyEnum(byte value, string name, string[] permission = null, bool isDefault = false,
bool isPrivate = false) : base(value, name, permission, isDefault, isPrivate)
{
}
}
In the enumeration class, the following 5 properties are included:
- value: Enumeration value
- name:Enumeration name
- permission: Permissions, if not private, choose which enumeration items can be returned to the client based on the permissions
- isDefault: Whether the default value
- isPrivate:Private and not returned to the client
After completing the enumeration definition, if you want the enumeration to return to the client through the interface, you need to add the enumeration to the enumeration resource in the module initialization service ConfigureServices
:
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<EnumerationOptions>(options =>
{
options
.Resources
.Add(typeof(MyEnum));
});
}
Encapsulates the localization resources of Sencha Ext JS for dynamic localization.
Provides an interface for the Sencha Ext JS menu. In the future, the menu will be separated as a module, and the menu will be managed through the database.
Encapsulates file upload functionality (FileManager
)::
- CheckAsync: Verify by hashing the file that the file already exists, or that there is an uploaded chunk
- UploadChunkAsync: Upload a chunk of files
- MergeAsync: Merge file blocks and save
- GetFileAsync: Gets the entire file or a chunk of files
- GetThumbnailAsync: Get a preview picture of the file
Some accessibility features such as string growth, file type detection, etc.
Added Identity Server 4
management capabilities to [ABP Framework] (https://github.com/abpframework/abp#readme).
Add W2Ui to ABP Framework.
Added OpenIddict
management capabilities to [ABP Framework] (https://github.com/abpframework/abp#readme).
- Added multilingual support for roles
- Added configuration interfaces for lockout policy and password policy for users
- Added some user management interfaces
Add phone verification to your app.
- Reference
Generic.Abp.PhoneLogin.Domain.Shared
in the application'sDomain.Shared
module - Reference
Generic.Abp.PhoneLogin.Domain
in the application'sDomain
module - Reference
Generic.Abp.PhoneLogin.Account.Web
andGeneric.Abp.PhoneLogin.OpenIddict.AspNetCore
in the application'sWeb
module
- Reference
Generic.Abp.PhoneLogin.Domain.Shared
in the application'sDomain.Shared
module - Reference
Generic.Abp.PhoneLogin.Domain
amdGeneric.Abp.PhoneLogin.IdentityServer.Domain
in the application'sDomain
module - Reference
Generic.Abp.PhoneLogin.Account.Web
in the application'sWeb
module
For a specific example, please see the branch 测试identtiyServer4手机登录
Note: Authenticating to acquire a token using REST Client
requires adding a RedirectUris
(https://localhost:44350/signin-oidc
) and a CorsOrigins
(https://localhost
) for 'Demo_App'.
- Reference
Generic.Abp.PhoneLogin.Application
in the application'sApplication
module - Reference
Generic.Abp.PhoneLogin.Domain
in the application'sDomain
module - Reference
Generic.Abp.PhoneLogin.Web
in the application'sWeb
module
- Reference 'Generic.Abp.Metro.UI.Account.Web.OpenIddict' in the app's 'Web' module
- Reference 'Generic.Abp.Metro.UI.Identity.Web' in the 'Web' module of the app
- Reference 'Generic.Abp.Metro.UI.OpenIddict.Web' in the app's 'Web' module
If you want to see Metro UI demo, you can refer to 'Generic.Abp.Metro.UI.Theme.Basic.Demo' in the 'Web' module.