Our enterprise application is a massive (1000+ pages) app and primarily it is glorified data entry application. There is no major business process. All most all pages have CRUD. We are trying to re-architecture the entire application from a old code base (C/C++) - desktop app to web based app.
We started with Angular but with limited to NO knowledge on Javascript, it was a steep learning curve. FYI: All our developers know C#. We find it very difficult to on-board new developers into Angular/Javascript world.
All that said, I was looking into ASP .Net Core + Razor Pages and find it way easier to transition when compared to Angular. These are the advantages I have seen so far:
Since it is a data entry system does client side rendering vs server side rendering, matter much?
Are there better advantage choosing Angular with .Net Core Web API over ASP .Net Core 2 + Razor Pages?
To start from the end, I'd advice you to use Blazor server-side SPA application.
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.
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.
Blazor server side is most appropriate for enterprise applications running in private network.
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.
Depends on your needs. Your company is full of C# developers so going to angular will increase the time and complexity of a project. Also since this is a web application that is meant for data entry in a corporate enviroment you don't care about loading times and optimization as much as you would in a commercial application. Generally try to develop using a ASP.NET Core framework with razor, and try to move to angular with a smaller project. That is my opinion. You want to deliver a technical solution that fits the needs of your company and keep development cost down, this should be the main axis that you make choices.
For enterprise developer, I think we are more focus on business logic layer rather than UI design like SAP ABAP development that UI is generated by framework or library. I prefer to use strong type no matter front end or back end. It saves a lot of time and avoid typo bugs especially team development.
For example, a Sales Order input screen like below, we just need to create model with attributes and do configuration. The library will generated input and search screen.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With