Hi,
We are working on refactoring an Internal ERP system. previously written with Vb.net in XAF + devexpress. Now we want to adopt C# .net core + DDD best practices + ABP framework.
The project has approx 500 tables spread across 5 databases on 2 local servers on LAN. We can also put all the databases on one server. approx 80% are masters screens simple CRUD. but say around 20% screens have DENSE and complex designs which we shall be curating by hand.
On our Initial talk ABP sales suggested us "Start with ABP with a modular monolith project template. " and we tried a sample project from your site and agree that this is the way forward.
I am attaching the screenshots for this MODERN project + Modular Monolith.
The modular Monolith path takes us to React option only- which makes me think if we did not follow the process properly. And we feel we may miss Blazor part. We are not a Blazor fan but ABP site and examples talk too much about Blazor so we feel that Blazor may be very important. Since our background is different and we have a huge learning curve ahead of us for all the new stack except C# .net core we want to narrow down the things we should be following and learning.
We are also looking forward to use our projects API's in our existing mobile APP too. And the project UI may be used by users on Windows and Linux operating systems over any browser. I am wondering if you can share some insight about the type of project we should be setting up. Give us the best choice which should work for a long time in future.
Or guide us to documentation where we can read about the Project options. We are still in learning and Proof of conecpt phase clearing our doubts and understanding more about ABP framework.
thank you,
BP
3 Answer(s)
-
0
- For an internal ERP refactor, starting with a Modular Monolith is a good, future-proof choice in ABP (you keep clear bounded contexts/modules and can still deploy as one app; later you can split out services only if/when you truly need it).
- You’re not missing a step: in ABP’s modern template system, React is the UI option you’ll see in that “Modern + Modular Monolith” flow. That’s why it looks React-only in ABP Studio/Suite.
- Blazor is important in ABP, but it is not mandatory. ABP supports multiple official UI options; you should pick the one that best matches your team skills and UI complexity. Since you also need to reuse APIs for a mobile app, ABP’s backend (HTTP APIs, auth, permissions, etc.) fits well regardless of whether the web UI is React, Angular, MVC/Razor Pages, or Blazor.
Practical guidance for your case
- If you want a modern SPA and expect dense/custom UI screens: choose React (modern template). Your mobile app can consume the same backend APIs.
- If your team prefers C# end-to-end and a component-based UI inside .NET: choose Blazor (ABP supports it as a first-class UI option; you can also choose different Blazor UI libraries such as Blazorise/MudBlazor depending on your ABP version and preferences).
- If you want the most traditional server-rendered web approach: choose MVC / Razor Pages.
- If you already have Angular skills (or want Angular’s ecosystem): Angular is also a supported option.
Where to read (official docs)
- ABP UI options overview (lists React, MVC/Razor Pages, Blazor, Angular, etc.):
https://abp.io/docs/latest/framework/ui/ - React UI (modern template system):
https://abp.io/docs/latest/framework/ui/react - Blazor UI (overview):
https://abp.io/docs/latest/framework/ui/blazor/overall - MVC / Razor Pages UI:
https://abp.io/docs/latest/framework/ui/mvc-razor-pages/overall - Angular quick start:
https://abp.io/docs/latest/framework/ui/angular/quick-start - Solution template options (to understand template families like modern/classic and architectures):
https://abp.io/docs/latest/solution-templates/index
This response was generated by AI. If it didn’t solve your problem, feel free to post a new answer — our support team will jump in to help you soon.
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
Hi,
I understand this. but is there an option to generate a new project in say Blazor? We are comfortable with React also but just want to make sure that the modular monolith type of project is available only with React and not Blazor.
I would appreciate if some one from the support team can post a reply to my first message.
thanks
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post) -
0
Hi,
You didn't miss anything. The Modern template family currently supports React (or no UI) only, so the Modular Monolith path in the Modern wizard doesn't offer Blazor.
You can build a modular monolith with Blazor using the Classic templates. In ABP Studio: Create new solution → choose Classic → select Application (Single Layer) as the host → pick Blazor as the UI (Blazor WebApp, Blazor Server or Blazor WebAssembly, with Blazorise or MudBlazor as the component library) → later, on the Modularity step, enable Setup as a modular solution and add your modules. The host stays a thin shell and your business code goes into the modules, and you can add more modules from Solution Explorer at any time. MVC and Angular are available on the same path as well.
These two documents compare the template families and explain how to choose the host template for a modular solution:
- https://abp.io/docs/latest/solution-templates/modern-vs-classic
- https://abp.io/docs/latest/solution-templates/guide
Whichever UI you pick, the backend capabilities are the same: HTTP APIs, OpenIddict authentication, permissions, modularity. Your existing mobile app can consume the same APIs (it just needs its own client configuration on the auth server), and the web UI runs in modern browsers on Windows and Linux.
So the decision is mainly about your team: Blazor keeps everything in C#, while the Modern template uses React/TypeScript. Since you have dense custom screens ahead, a good way to decide during your proof of concept phase is to build one representative complex screen in the stack you're leaning towards. Blazor is a first-class UI option in ABP, but not using it doesn't cost you any backend capability.
Thanks
Markdown supported.Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)