ASP .Net Core with Razor Pages Vs Angular for UI

To start from the end, I'd advice you to use Blazor server-side SPA application.

Why use SPA

SPA is similar to desktop applications in its design And it's most suitable to be used with data entry forms I guess your team is made of desktop app (WinForms, WPF) developers, and they would easily start developing once they comprehend the Component Model on which Blazor or any other SPA framework is based.

Why use Blazor

  • Your developers are well-acquainted with C#, and has poor knowledge of JavaScript
  • Learning curve of JavaScript + SPA framework, such as Angular is much more higher than Blazor, whether you know JavaScript or not.

Note: It must be emphasized here that the ability to develop Blazor applications requires some learning investment, though not as high as, say, Angular, even if you are a well-experienced Razor Pages or MVC developer. Note also: Knowledge of C# (language), does not reflect Knowledge of (Asp).Net Core Framework.

  • Shared Libraries: This is one of the factors why to use Blazor. In Blazor, you can create projects that can be shared on the Client and the Server. As for instance, you can create your Model in a Shared project, and use it on both sides.

Why use Blazor server side

Blazor server side is most appropriate for enterprise applications running in private network.

  • All the resources are under your control
  • You don't have to use web requests. You can use services which access your database directly or through repositories.
  • Unlike public server-side Blazor, private server-side Blazor, especially one for your corporate is not likely to incur any meaningful Network latency, if at all.

You can really create fast and robust and desktop-like app that way

Hope this helps...

Note: I did not finish my answer, and I'll update it from time to time. Please, don't hesitate to ask whatever question you want.


This is a highly opinionated question but in general, Single Page Applications require an effort a few orders of magnitude larger than Server rendered pages. You will have to duplicate logic on the C# backend and the typescript front-end. You will have to deal with tons of bugs as you code the front-end in a non type safe dynamic language that has arguably questionable constructs. In the end, Single Page Apps are worth it because they provide a rich and engaging experience to the end user if done properly. But getting there is an uphill battle.

Considering the experience of your developers, I would recommend doing it in Razor Pages or MVC and gradually introducing bits of Angular/React code to areas of the front end that require enhancements.

In other words, do the whole thing in Razor Pages/MVC, pick a small area, branch the middleware pipeline and serve a small Angular app.


Since most of your app is simple CRUD, consider using just razor/MVC.

Use Visual Studio + ASP.NET core + EF Core to automatically reverse engineer the database into models and database context. Then automatically generate (scaffold) the controllers and views for all CRUD operations. Sprinkle additional data annotations where needed.

And where you need more advanced data display/interaction (e.g. Grid, Calendar, ...) consider 3rd-party Javascript widgets. They don't require JavaScript expertise.