Activities of "sayedzakaria"

the module project doesn't have any angular UI

I'm currently working on a project using ABP Framework (v0.9.26) with the following structure:

Architecture: Modular DDD with Layered

Frontend: Angular (main project)

Code generation: ABP Suite

I’ve successfully created multiple modules using ABP studio, and each one is structured as a layered module (with Domain, Application, HttpApi, etc.).

After adding these modules to the main app, I can see the APIs exposed in Swagger, and everything works on the backend as expected.

However, when I generate an entity using ABP Suite inside a module, the Angular UI is not created in the main frontend project. I do not see the expected list/create/edit components or menu integration.

❓ What I need help with: How can I generate the Angular UI (CRUD pages, routing, menu) for entities created inside modular projects using ABP Suite?

Is there a way to configure ABP Suite to detect the Angular project when working with a modular architecture?

Should I be generating the modules differently to enable automatic Angular UI generation?

🛠 Project Setup (Simplified): Backend: Layered Modular (ABP.IO)

Frontend: Angular (located at /angular)

Modules created using ABP Studio, then added to the main app

I would appreciate your guidance on how to generate or link Angular UI for these modules correctly.

Thank you!

the steps is add new entity using abp suite then add new method in angular project for uploading this entity data from excel using this method

uploadExcelTemplateByFile = (file: any, config?: Partial<Rest.Config>) => this.restService.request<any, void>( { method: 'POST', url: '/api/app/departments/upload-template', body: file, }, { apiName: this.apiName, ...config }, ); in the method i use file as any then add othe new entity using abp suite and it will change the type of the file from any to IFormFile

i have this code export interface IFormFile { contentType?: string; contentDisposition?: string; headers: Record<string, any>; length: number; name?: string; fileName?: string; }

if i adding any new entity it changed to export interface IFormFile { contentType?: string; contentDisposition?: string; headers: Record<string, StringValues>; length: number; name?: string; fileName?: string; }

also i have this method uploadExcelTemplateByFile = (file: any, config?: Partial<Rest.Config>) => this.restService.request<any, void>( { method: 'POST', url: '/api/app/departments/upload-template', body: file, }, { apiName: this.apiName, ...config }, ); it changed to uploadExcelTemplateByFile = (file: any, config?: Partial<Rest.Config>) => this.restService.request<any, void>( { method: 'POST', url: '/api/app/departments/upload-template', body: file, }, { apiName: this.apiName, ...config }, );

file: any changed to IFormFile

uploadExcelTemplateByFile = (file: IFormFile, config?: Partial<Rest.Config>) => this.restService.request<any, void>( { method: 'POST', url: '/api/app/departments/upload-template', body: file, }, { apiName: this.apiName, ...config }, );

i created pages and add a Custome code to it when i add new page using abp suite it make changes to old pages how to prevent this behaver

the log file 2024-12-26 12:01:55.081 +03:00 [INF] The authentication demand was rejected because the client application was not found: 'databandNDA_App'. 2024-12-26 12:01:55.083 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/connect/authorize?response_type=code&client_id=databandNDA_App&state=MkxLNnptY3R2ekpqTkwyVlF0TVBjSHEwZEM1ZlJiZWo1MUpvd2x2bUJjQ3pr&redirect_uri=https%3A%2F%2Fndaform.databand.sa&scope=openid%20offline_access%20databandNDA&code_challenge=VxTHxed4CHeSFGEeXTXnguxQKA0nyE1BQLiQZXQC0mM&code_challenge_method=S256&nonce=MkxLNnptY3R2ekpqTkwyVlF0TVBjSHEwZEM1ZlJiZWo1MUpvd2x2bUJjQ3pr&culture=en&ui-culture=en - 302 null null 35.9775ms 2024-12-26 12:01:55.279 +03:00 [INF] Request starting HTTP/2 GET https://ndaapi.databand.sa/Error?httpStatusCode=400 - null null 2024-12-26 12:01:55.281 +03:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)' 2024-12-26 12:01:55.281 +03:00 [INF] Route matched with {action = "Index", controller = "Error", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[Microsoft.AspNetCore.Mvc.IActionResult] Index(Int32) on controller Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared). 2024-12-26 12:01:55.282 +03:00 [INF] Executing ViewResult, running view ~/Views/Error/Default.cshtml. 2024-12-26 12:01:55.289 +03:00 [INF] Executed ViewResult - view ~/Views/Error/Default.cshtml executed in 6.9756ms. 2024-12-26 12:01:55.289 +03:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared) in 8.2255ms 2024-12-26 12:01:55.289 +03:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Controllers.ErrorController.Index (Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared)' 2024-12-26 12:01:55.290 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/Error?httpStatusCode=400 - 400 null text/html; charset=utf-8 10.5898ms 2024-12-26 12:01:55.514 +03:00 [INF] Request starting HTTP/2 GET https://ndaapi.databand.sa/__bundles/LeptonX.Global.3253AE0A9501A0665DAC7014DA5B2ED8.css?_v=638708003795576628 - null null 2024-12-26 12:01:55.514 +03:00 [INF] The file /__bundles/LeptonX.Global.3253AE0A9501A0665DAC7014DA5B2ED8.css was not modified 2024-12-26 12:01:55.515 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/__bundles/LeptonX.Global.3253AE0A9501A0665DAC7014DA5B2ED8.css?_v=638708003795576628 - 304 null text/css 0.7434ms 2024-12-26 12:01:55.516 +03:00 [INF] Request starting HTTP/2 GET https://ndaapi.databand.sa/Abp/ApplicationConfigurationScript - null null 2024-12-26 12:01:55.517 +03:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' 2024-12-26 12:01:55.518 +03:00 [INF] Route matched with {area = "Abp", action = "Get", controller = "AbpApplicationConfigurationScript", page = ""}. Executing controller action with signature System.Threading.Tasks.Task1[Microsoft.AspNetCore.Mvc.ActionResult] Get() on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController (Volo.Abp.AspNetCore.Mvc). 2024-12-26 12:01:55.525 +03:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript 2024-12-26 12:01:55.525 +03:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc) in 7.438ms 2024-12-26 12:01:55.525 +03:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' 2024-12-26 12:01:55.525 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/Abp/ApplicationConfigurationScript - 200 5966 application/javascript 9.1624ms 2024-12-26 12:01:55.526 +03:00 [INF] Request starting HTTP/2 GET https://ndaapi.databand.sa/__bundles/Views.Error.DefaultErrorComponent.default.F15FCDEA56EC024E1CDCD86CA6B586D8.css?_v=638708003786374757 - null null 2024-12-26 12:01:55.527 +03:00 [INF] The file /__bundles/Views.Error.DefaultErrorComponent.default.F15FCDEA56EC024E1CDCD86CA6B586D8.css was not modified 2024-12-26 12:01:55.527 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/__bundles/Views.Error.DefaultErrorComponent.default.F15FCDEA56EC024E1CDCD86CA6B586D8.css?_v=638708003786374757 - 304 null text/css 0.4088ms 2024-12-26 12:01:55.527 +03:00 [INF] Request starting HTTP/2 GET https://ndaapi.databand.sa/Abp/ServiceProxyScript - null null 2024-12-26 12:01:55.528 +03:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)' 2024-12-26 12:01:55.528 +03:00 [INF] Route matched with {area = "Abp", action = "GetAll", controller = "AbpServiceProxyScript", page = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult GetAll(Volo.Abp.AspNetCore.Mvc.ProxyScripting.ServiceProxyGenerationModel) on controller Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController (Volo.Abp.AspNetCore.Mvc). 2024-12-26 12:01:55.535 +03:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript 2024-12-26 12:01:55.535 +03:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc) in 7.4062ms 2024-12-26 12:01:55.535 +03:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)' 2024-12-26 12:01:55.536 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/Abp/ServiceProxyScript - 200 31710 application/javascript 8.9634ms 2024-12-26 12:01:55.536 +03:00 [INF] Request starting HTTP/2 GET https://ndaapi.databand.sa/Abp/ApplicationLocalizationScript?cultureName=en - null null 2024-12-26 12:01:55.537 +03:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc)' 2024-12-26 12:01:55.537 +03:00 [INF] Route matched with {area = "Abp", action = "Get", controller = "AbpApplicationLocalizationScript", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.ActionResult] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto) on controller Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController (Volo.Abp.AspNetCore.Mvc). 2024-12-26 12:01:55.542 +03:00 [INF] Request starting HTTP/2 GET https://ndaapi.databand.sa/__bundles/LeptonX.Global.4D60287B5E73BF5E2630D6B5AE4750A8.js?_v=638708003801887975 - null null 2024-12-26 12:01:55.542 +03:00 [INF] The file /__bundles/LeptonX.Global.4D60287B5E73BF5E2630D6B5AE4750A8.js was not modified 2024-12-26 12:01:55.542 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/__bundles/LeptonX.Global.4D60287B5E73BF5E2630D6B5AE4750A8.js?_v=638708003801887975 - 304 null application/javascript 0.7487ms 2024-12-26 12:01:55.543 +03:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript 2024-12-26 12:01:55.543 +03:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 6.2035ms 2024-12-26 12:01:55.543 +03:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc)' 2024-12-26 12:01:55.544 +03:00 [INF] Request finished HTTP/2 GET https://ndaapi.databand.sa/Abp/ApplicationLocalizationScript?cultureName=en - 200 60075 application/javascript 8.2286ms

the problem was in iis Go to IIS Manager Go to the application pool instance Click advanced settings Under Process model, set Load User Profile to true

i have a problem with login when i click on login button 400 Error An internal error occurred during your request!

Single layerd project

  • UI Type: Angular
  • Database System: EF Core (SQL Server)
  • Tiered (for MVC) or Auth Server Separated (for Angular): noi created opendict cert using this command dotnet dev-certs https -v -ep ndacert.pfx -p 7516623d-19f1-4839-bdbd-2ec4821ed811 and appsettings file is { "App": { "SelfUrl": "https://ndaapi.databand.sa", "ClientUrl": "https://ndaform.databand.sa", "CorsOrigins": "https://*.databand.sa,https://ndaform.databand.sa,https://ndaclient.databand.sa", "RedirectAllowedUrls": "https://ndaform.databand.sa" }, "ConnectionStrings": { "Default": "User Id=sa;Password=sa5000;Initial Catalog=DataBandNDADB;Data Source=.;TrustServerCertificate=True" }, "AuthServer": { "Authority": "https://ndaapi.databand.sa", "SwaggerClientId": "databandNDA_Swagger", "CertificatePassPhrase": "7516623d-19f1-4839-bdbd-2ec4821ed811" }, "StringEncryption": { "DefaultPassPhrase": "KArdOQgZyqyZN6gg" }, "OpenIddict": { "Applications": { "databandNDA_App": { "ClientId": "databandNDA_App", "RootUrl": "https://ndaform.databand.sa" }, "databandNDA_Swagger": { "ClientId": "databandNDA_Swagger", "RootUrl": "https://ndaapi.databand.sa" } } } }

and i use it PreConfigure<OpenIddictServerBuilder>(serverBuilder => { serverBuilder.AddProductionEncryptionAndSigningCertificate("ndacert.pfx", configuration["AuthServer:CertificatePassPhrase"]!);

});

2024-12-26 11:29:53.233 +03:00 [FTL] databandNDA terminated unexpectedly! Volo.Abp.AbpInitializationException: An error occurred during ConfigureServicesAsync phase of the module Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule, Volo.Abp.OpenIddict.AspNetCore, Version=9.0.2.0, Culture=neutral, PublicKeyToken=null. See the inner exception for details. ---> System.Security.Cryptography.CryptographicException: The system cannot find the file specified. at System.Security.Cryptography.X509Certificates.X509CertificateLoader.ImportPfx(ReadOnlySpan1 data, ReadOnlySpan1 password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadPkcs12NoLimits(ReadOnlyMemory1 data, ReadOnlySpan1 password, X509KeyStorageFlags keyStorageFlags, Pkcs12Return& earlyReturn) at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadPkcs12(ReadOnlyMemory1 data, ReadOnlySpan1 password, X509KeyStorageFlags keyStorageFlags, Pkcs12LoaderLimits loaderLimits) at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadFromFile[T](String path, ReadOnlySpan1 password, X509KeyStorageFlags keyStorageFlags, Pkcs12LoaderLimits loaderLimits, LoadFromFileFunc1 loader) at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadPkcs12PalFromFile(String path, ReadOnlySpan1 password, X509KeyStorageFlags keyStorageFlags, Pkcs12LoaderLimits loaderLimits) at System.Security.Cryptography.X509Certificates.CertificatePal.FromBlobOrFile(ReadOnlySpan1 rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at Microsoft.Extensions.DependencyInjection.OpenIddictServerBuilderExtensions.AddProductionEncryptionAndSigningCertificate(OpenIddictServerBuilder builder, String fileName, String passPhrase, Nullable1 flag) at databandNDA.databandNDAModule.<>c__DisplayClass1_0.<PreConfigureServices>b__3(OpenIddictServerBuilder serverBuilder) in C:\agent\_work\15\s\DataBandNDA\databandNDAModule.cs:line 146 at Volo.Abp.Options.PreConfigureActionList1.Configure(TOptions options) at Microsoft.Extensions.DependencyInjection.ServiceCollectionPreConfigureExtensions.ExecutePreConfiguredActions[TOptions](IServiceCollection services, TOptions options) at Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule.<>c__DisplayClass1_0.<AddOpenIddictServer>b__0(OpenIddictServerBuilder builder) at Microsoft.Extensions.DependencyInjection.OpenIddictServerExtensions.AddServer(OpenIddictBuilder builder, Action1 configuration) at Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule.AddOpenIddictServer(IServiceCollection services) at Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule.ConfigureServices(ServiceConfigurationContext context) at Volo.Abp.Modularity.AbpModule.ConfigureServicesAsync(ServiceConfigurationContext context) at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() --- End of inner exception stack trace --- at Volo.Abp.AbpApplicationBase.ConfigureServicesAsync() at Volo.Abp.AbpApplicationFactory.CreateAsync[TStartupModule](IServiceCollection services, Action1 optionsAction) at Microsoft.Extensions.DependencyInjection.ServiceCollectionApplicationExtensions.AddApplicationAsync[TStartupModule](IServiceCollection services, Action1 optionsAction) at Microsoft.Extensions.DependencyInjection.WebApplicationBuilderExtensions.AddApplicationAsync[TStartupModule](WebApplicationBuilder builder, Action1 optionsAction) at databandNDA.Program.Main(String[] args) in C:\agent_work\15\s\DataBandNDA\Program.cs:line 52

Question

is there away to know how many projects developers created using the abp suite? is there any limitation of projects creation ?

Showing 1 to 9 of 9 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 18, 2025, 07:10