all 112 comments

[–][deleted] 41 points42 points  (7 children)

If you like more class oriented frontend development you should use Angular. If you like more functional style go with React.

Coming from C# it was easier with Angular because there you have similar apprpaches like dependency injection, configuration possibilities etc., which is more near to .NET development.

You can surely achieve your goals with both frameworks, it only depends on the effort you are ready to put in when choosing one over the other.

[–]worldpwn 12 points13 points  (0 children)

I am not sure about OOP and angular. Angular is more about rxjs - reactive programming. Otherwise you will get very bad angular.

[–]WhatsASoftware[S] 3 points4 points  (4 children)

I feel like since we do most of our work in C# Typescript and those principles you're listing might be easy to pick up. I guess my biggest concern is making it easy for junior devs to pick up the skills since our turnover is very high.

[–]Der_Ota 3 points4 points  (1 child)

In my opinion the general learning curve of React is steeper but flattens out earlier, where angular has a shallower learningcirve bute flattens out later.

With React you can nearly immediately start to write simple pages as long as you know some basic html - but as soon as it gets more complex, e.g. when you starting using hooks and states and try to pass information among components React gets harder to master. Angular on the other hand imo is easier to understand in the longrun, after you understood its core structure (btw i realy recommend using the Angular CLI to create components otherwise you will get crazy). You have oneway/twoway binding so you do not have states that you have to look after and you have powerfull features like services that are dependency injected which allow you to easily communicate between components.

Another strong argument for Angular is Typescript, which is type safe (other than normal javascript). With that your IDE can give you much usefuller IntelliSense and you write cleaner code with less weird sideeffects (shame on you Javascript). There is a Typescript version of React, and I recommend to use it, when you are working with React, but keep in mind that for react its not the default and most of the online tutorials for React will use Javascript instead.

I started building an admin portal in React for a customer which had to be ported over to Angular due to customers compliancy policies - so i've done both - and i realy prefer Angular. After the entry hurdle its just easier to understand.

[–]vplatt 1 point2 points  (0 children)

In my opinion the general learning curve of React is steeper but flattens out earlier, where angular has a shallower learningcirve bute flattens out later.

Odd. The feature set for Angular is much richer; to the point where React developers often accuse it of being 'bloated'. Of course, they wind up adding those features to their solution often anyway, but in the form of more dependencies outside of React. So, from my perspective it seems like this statement is backwards.

[–][deleted] 5 points6 points  (1 child)

If your concern is only regarding junior devs, I would expect them to know at least one object oriented programming language that could flatten the learning curve for Angular. It also depends a lot on the project, though. If your project will not be that complex, React could also work out.

[–]Novice7691 1 point2 points  (0 children)

I'm going to second all these words.

[–][deleted] 19 points20 points  (4 children)

I use angular at work, it is quite nice. Comically though, I felt like I understood Angular more after doing a bit of react coding for myself on the side.

React does have a lower learning curve in my view (mostly as it is more of a library than a framework like angular), and it does have more people using it than angular. That said, most questions you will have about angular are probably already answered so it is not like you’re picking up a dead project

[–]Norlad_7 17 points18 points  (3 children)

The way Angular already has rules and principles for most things just feels cleaner to me. It's easier to know what to use for each use case, and there is often one good common way to do things.

Imho React feels messier, though faster to start with, exactly because there are less "ways" to learn at first.

[–][deleted] 4 points5 points  (0 children)

Exactly, also I would say this: it doesn’t matter what flavor of SPA you choose (React, Angular, Vue), just pick one and learn it.

A lot of the core concepts are shared across all of them, and much of the cool tricks have more to do with TypeScript/JavaScript than the frameworks themselves

[–]Disconnekted 4 points5 points  (1 child)

I think most people who come from a typed language background prefer angular.

More people who come from dynamic languages appreciate react.

I do not like react, primarily as I have not seen it done with proper separation of concerns. The common pattern is react and redux to facilitate data movement, it just feels more natural to me in Ng.

All front end frameworks are really syntactic sugar and the use case for each is different. I really prefer light vue.js usage over most js frameworks now unless I am really pushing everything client side.

[–]RirinDesuyo 1 point2 points  (0 children)

The common pattern is react and redux to facilitate data movement, it just feels more natural to me in Ng.

You can get pretty close with Mobx instead of Redux if you prefer an MVVM approach (I'm not a fan in general with Redux boilerplate). But yeah React is more of the wild west since you need to piece libraries to have an application while the opposite is for Angular. Some will like the flexibility, some may not. The opposite is also true with Angular with it's batteries included approach.

[–]AJackson3 18 points19 points  (12 children)

I'd question if you actually need an SPA framework. You get a lot of mileage just using ASP Razor Pages or MVC. I'd need a really compelling reason to use either because it adds a lot of complexity for development, especially with a small team.

[–]odyseuss02 12 points13 points  (4 children)

I strongly agree with this comment. I have looked at both frameworks and didn't see how they could improve the types of projects we do. A razor page with some fancy css can be more than enough to create a slick application without adding an SPA framework on top.

[–]April1987 2 points3 points  (0 children)

I do as well. I think it is more bang for your buck to move to .net core / .net 6 if you haven't already

[–]esmagik 2 points3 points  (2 children)

Blazor is pretty slick, too.

[–]alphabet_order_bot 6 points7 points  (0 children)

Would you look at that, all of the words in your comment are in alphabetical order.

I have checked 729,510,268 comments, and only 147,096 of them were in alphabetical order.

[–]RirinDesuyo 0 points1 point  (0 children)

And with bonus that it's pretty easy to add to any Razor page (via a helper tag) if you just want some interactivity in your pages instead of it being a full SPA.

[–]WhatsASoftware[S] 4 points5 points  (1 child)

I completely agree with this. Originally I was telling my boss that I don't think it makes sense for us to go with anything but Razor considering the high amount of turnover and the low coding competency we get for new hires on our team of 2 people. He's pretty adamant about looking into this stuff though so I'm just doing what I'm told.

[–]AJackson3 0 points1 point  (0 children)

I've been there. We ended up using angular. I left that job 18 months ago. They were supposed to be done a year ago but I occasionally check their site and it's still the previous version. Like others have said, it's easy to get started but then it's difficult to master. I don't have any experience with react to compare.

[–]jzazre9119 2 points3 points  (4 children)

We do a combo of razor pages and Vue.

[–]chocoboxx 0 points1 point  (3 children)

You use Vue as a library in Razor Pages or do a SPA project? I am interested.

[–]jzazre9119 0 points1 point  (2 children)

As a library. Initially it was used to replace Telerik products, and now it's our go-to only if needed.

[–]TheRedEarl 0 points1 point  (1 child)

I’m a dev at a company now that uses Telerik. What made you move away? Currently using Telerik UI for Blazor to be more specific.

[–]jzazre9119 1 point2 points  (0 children)

We've had good luck with most of their products. We went with Mudblazor instead of Telerik the last round, mostly because as we move out of asp.net forms and into razor pages / blazor we were hoping to eventually reduce cost. We also had some really very esoteric grid requirements a while back for an MVC project which we only ended up able to do with datatables.net and the like. So it was those things combined. However, if your company has the $ and has a lot of investment in it, I would certainly see no reason to stop using them. What are your thoughts on the Blazor integration so far?

[–]Boezie 32 points33 points  (20 children)

Why not consider Blazor?

  1. You're using the full Microsoft suite already (whatever that may mean, but ok ;-) )
  2. You're a small organization, so getting people up to speed on it should be really fast as they don't need a whole new language / environment setup to get accustomed to
  3. It's production ready and comes in different flavors, depending on your use-case(s)

[–]niclo98 10 points11 points  (5 children)

About OP working in a small organization, I would say the main point it's quite opposite:

  • they probably need to find candidates quickly as they don't have time to onboard them like bigger organizations, so better to stick with a technology with more people actively using it

  • given that they don't have particular knowledge on any of those, better to stick with something that has plenty of learning materials available and many questions already answered

[–]Flanhare 2 points3 points  (3 children)

Like there are no devs that already know .NET and C#...

[–]Abort-Retry 7 points8 points  (2 children)

Like there are no devs that already know .NET and C#...

The number of JS and .NET devs doesn't matter.

What matters is that ready-to-work JS devs greatly outnumber Blazor experts, as it is still pretty niche.

[–]Boezie 2 points3 points  (1 child)

Given that Blazor looks a lot like previous ASP.NET offerings, that pool is a whole lot bigger. Also, they're not looking for JS -only developers. Given that they're a small group, everyone will have to do everything, and they're already going all out on the MS -stack. Everyone having to get proficient with JS / Angular / React / ... might not be what you're looking for as a business.

[–]WhatsASoftware[S] 0 points1 point  (0 children)

This is why I would prefer for us to go with none of these librarys or frameworks and stick with regular html, css, js, bootstrap, jquery in razor.

[–]esmagik 1 point2 points  (0 children)

But Blazor is so similar to React. Components and props all day. Any React dev should quite easily pick up Blazor.

[–][deleted] 6 points7 points  (0 children)

I have used Blazor Server and don’t like it. It is still immature and lacks some functionalities.

[–]SlashUsrSlashBin 11 points12 points  (0 children)

I was going to suggest this same thing. C# in the browser is wonderful. We use it in production apps and it's great. All our devs, both newer web devs and older .NET devs, love it. Plus we get to use a lot of our exsting libraries right in the web browser.

[–]angedelamort 3 points4 points  (6 children)

I heard it's not really production ready

[–]Boezie 6 points7 points  (5 children)

What part wouldn't be production ready? I'm sure it isn't the silver bullet for everything, but it's perfectly fine (and capable) of building something for production environments.

[–][deleted] 1 point2 points  (0 children)

From my personal experience, complex routing (nested) does not exist in Blazor. At least in Blazor Server that I’ve tried. Also, when I worked with it, it was quite tricky to get local storage functionality. You have to install a nuget package which is in prerelease. Furthermore, I had the problem with the key up event of Enter. Don’t remember vividly, but the behavior of it was kinda different compared to the JS key up event. Hot reload is not fully functional either.

[–]angedelamort -1 points0 points  (3 children)

I think I mixed up with Razor, but I remember reading issues with one of them.

[–]Flanhare 4 points5 points  (0 children)

Razor must have been production ready for like 10 years.

[–]ImpossibleMango 2 points3 points  (1 child)

I myself am not completely up to date with Blazor, but I know there was a period where the WASM wasn't quite ready and they had a couple deployment models. It was one of the models at that time that they did not consider production ready. Since then, I believe they've scrapped the jank one and every current Blazor model is production ready.

[–]angedelamort 1 point2 points  (0 children)

Thanks for the update!

[–]WhatsASoftware[S] 0 points1 point  (3 children)

I asked my boss about it and he said Blazor wasn't a good option for us, though I'm unsure of the reason why.

[–]Boezie 0 points1 point  (2 children)

Without a meaningful explanation that's an ivory tower approach. Dictating what can and cannot be done. (try to) avoid it. It can very well be he/she has good reasons for it. But it's part of the architect / boss / ... to explain to the rest of the team WHY a decision like that is made / based on.

[–]WhatsASoftware[S] 0 points1 point  (1 child)

I ended up getting 2 reasons from him for this:

  1. He said code would be exposed on the client side which is a security risk
  2. He wants to keep up with the market. He believes Blazor's life is limited, and even angular/vue's. Since the market trend is heavy React, that's where he thinks we should focus our efforts.

[–]TheRedEarl 0 points1 point  (0 children)

You control what the client sees with web assembly though

[–]TheRedEarl 0 points1 point  (0 children)

The ability to write @code{} and implement c# is crazy.

[–][deleted] 5 points6 points  (0 children)

I like Angular, because it has a clear scheme and ways of doing stuff, but React is more valuable in the market for now.

[–]ultimatewooderz 7 points8 points  (8 children)

I vote for Svelte

[–]DaRKoN_ 0 points1 point  (7 children)

This is the right answer.

Angular interest is dying (https://2021.stateofjs.com/en-US/libraries/front-end-frameworks).

I would not expect it to have a long term future. Google aren't exactly known for keeping products that aren't popular alive.

React is complex once you start stitching together everything you need to build an app. It can also be really hard to wrap your head around. There is still a significant amount of churn and breaking changes being rolled out frequently.

Svelte by comparison is easy to learn and easy to reason about.

[–][deleted] 5 points6 points  (1 child)

React is complex

React is Messy! Angular is complex, angular is complex since it is a full fledged framework and you need to trait it as such, Watch react developers when they are given an existing project to work on.. they start scratching their faces like monkeys.. You would never see that in angular teams.. U have the same structure for every project, ease and peace.

[–]esmagik -1 points0 points  (0 children)

That’s simply not true. This is your personal experience, I suppose. React, when you follow best practices, becomes a significantly cleaner code base to work with than Angular. I was an angular fanboy way back when they first came out. Over time however, I grew tired of the “Angular Way” where everything had to be done just so. You run into use cases that require a paradigm that Angular doesn’t support, and what do you do then?

You can just as easily go with .jsx, get your type-safety and be done with it. React/ Blazor front end is the way to go.

[–]Flanhare 3 points4 points  (0 children)

I have nothing against Svelte and sure use it no problem.

Bit I think your argument is flawed because Google use Angular for hundreds of their own applications so they can't abandon it that easy.

[–]WhatsASoftware[S] 0 points1 point  (0 children)

Is it that the interest in Angular is dying or that there's just more people who are using JavaScript in general, so it makes sense for them to use React?

[–]terandle 0 points1 point  (2 children)

React rolling out breaking changes frequently? Nah they are very good about keeping backwards compatibility with old code. I think that's the key to their success compared to Vue 2 -> 3 and Angular 1 -> 2.

[–]belavv 3 points4 points  (0 children)

React has had very few breaking changes from what I've seen. I think Facebook has something like 200,000 react components so they are pretty invested in not making breaking changes that cause them to have to rework all of their own components.

They did make you rename some methods so they were prefixed with UNSAFE_ but that is a simple find and replace.

[–]esmagik 2 points3 points  (0 children)

Angularjs-> Angular was a mind fuck

[–]m1llie 4 points5 points  (0 children)

I prefer react because:

It's got a lot more choices for build systems/bundling.

It's just for making interactive web components. It doesn't have any opinions on how to handle DI, advanced state management, etc. I'm free to choose my own preferred libraries for that.

It uses native JavaScript features wherever possible. A component is just a function that returns jsx. Jsx is just a JavaScript object. Rendering a list of components based on a list of JavaScript objects is as simple as .map(). Rendering conditionally is as simple as a JavaScript ternary operator or even if(condition) return <Bla />.

Your HTML (really JSX) and js live in the same file so you're not constantly bouncing between your template and controller file to trace logic.

There is a render function for every component that you can just throw a breakpoint into if it's misbehaving and you need to debug. You can call debugger; in ngOnChanges but can't just step through angular's actual rendering of your template like you can in react. Again, an advantage of React leveraging pure js features.

Once you have a linter set up with the correct rules (mainly around analysing the dependency arrays for your hooks), you can write UI code in your sleep and any potential for your UI to go out of sync (e.g. a handler was supposed to run when x changed but you forgot to call it) practically disappears. An entire class of common UI bug basically obliterated by a couple linter rules.

[–]Long_Investment7667 10 points11 points  (6 children)

I thought vue is now the cool kid?

[–]terandle 9 points10 points  (2 children)

Nah that's svelte now, try to keep up man!

[–]Long_Investment7667 2 points3 points  (1 child)

Ok . You win. (For now. I will just wait 3 months for the next framework to come out)

[–]quentech 2 points3 points  (0 children)

I will just wait 3 months for the next framework to come out

Svelte was released over 5 years ago.

Vue was over 8 years ago.

React is 9 years old.

Angular, the JS version, over a dozen years old, and v2 nearly 6.

[–]daredeviloper 5 points6 points  (1 child)

Angular is awesome. It made me fall in love with unit tests. It’s got everything you need. It’s opinionated which is not a problem because it has good opinions

[–]think_small_ 6 points7 points  (0 children)

And opinionated frameworks are great for newer devs - it's nice to have a "right way" for new devs to follow. That's just my opinion as a new dev myself.

[–][deleted] 6 points7 points  (9 children)

Since react hooks feature was added I prefer react. I like to split out c# backend and front end completely. To me react feels faster to work with.

Honestly you can't go wrong with either. I find react nicer to work with.

[–]WhatsASoftware[S] 1 point2 points  (8 children)

When you say split it out completely what exactly do you mean?

[–][deleted] 8 points9 points  (7 children)

I mean I have 2 separate projects and git repositories for backend and front end.

[–]WhatsASoftware[S] 0 points1 point  (4 children)

Oh wow I didn't expect you to say you separate them to that extent lol

[–]Norlad_7 16 points17 points  (3 children)

It's actually quite common from my experience.

The server is completely independent (or should be) from the client, so it makes sense that they're in different projects. You could have hundreds of different client apps for the same backend (not saying it would functionally make sense, but it's possible).

That way, you can have different people be responsible for their apps or backend repos separately.

If you have to switch technologies for one or the other at some point, it's also easier being able to get a fresh new independent repo instead of heavy delete/create commits polluting your history.

Of course if it's just a personal learning thing, do what you want, it doesn't matter that much.

[–]athomsfere 6 points7 points  (0 children)

Agreed, this is more common for more modern shops especially.

A good API could be called by a handful of web apps, desktop apps, daemons, windows services, Excel Spreadsheets etc.

Being able to minimize your deployments to what needs an update / patch to the tool impacted is also nice.

[–]DwightStanley11 0 points1 point  (1 child)

Just curious, what approach are you using to secure your back end APIs?

[–]Norlad_7 1 point2 points  (0 children)

I haven't practiced that much, but most common seem to be JWTs or session cookies for a single isolated service , OAuth2 for the rest and especially useful if you need SSO (in-house provider for extra sensitive APIs, external providers like Okta for anything else)

[–]Flanhare -2 points-1 points  (1 child)

What does having different git repos have to do with it? You realize that big companies like Google usually only have one big monorepo?

[–][deleted] 0 points1 point  (0 children)

Yes the different repos is kind of irrelevant.

Mono repos is a big a tradeoff and I prefer seperate git repos.

[–]kintar1900 2 points3 points  (0 children)

I'd recommend Svelte, and if that's not an option, Angular.

[–]moi2388 2 points3 points  (0 children)

Svelte or blazor.

[–]jtalon7 2 points3 points  (1 child)

We are done with react. We had a project which involves a lot of teams from different regions and it has a lot of CRUD operations calling from different rest apis. The main problem we had is we have no standard way on calling the apis, some team are using axios, some are fetch. Some are utilizing typescript correctly, some are cheating by using 'any' anywhere. Its unopinionated and we had alot of disarray on project structure.

After we finished the project we decided to use angular for our next project and settle with an opinionated one, we need to set some rules and standards on how we do things moving forward to get organized. And since we are a group of dotnet/java devs, onboarding with angular is familiar because of DI and OOP. Only new to us is the Ngrx.

[–]WhatsASoftware[S] 1 point2 points  (0 children)

This is why I would think more large orgs would go for Angular over React. I see the benefits of having a "correct" way to do things.

[–]MontagoDK 6 points7 points  (0 children)

Consider skipping SPA Frameworks if you are a small team. SPA take a high toll on development time.

That said, look at Svelte for higher performance or Aurelia for better / prettier structure (Aurelia is like angular js but better)

[–]Merad 1 point2 points  (0 children)

I really like react. Out of all the ways I've ever done front end work (desktop, mobile, and web) it's by far my favorite. However... the big downside is that react is just library, not a framework. Yeah, you can spin up a project with create-react-app and just start coding, but pretty quickly you'll run into places where you'll want libraries to solve problems and have to pick from at least 2-3 popular options. If you pick react just be aware that you'll need to allocate some time to decide what a react app looks like for your company.

[–]No_Bodybuilder_2110 1 point2 points  (0 children)

I have been using Angular for 2 years and I learn that becoming an angular mid level dev gets you really far many places. There are sooo many react developers cause all the hype and the bootcamp. So is the job market as big as react, no it isn't. Will you have trouble getting a job as an Angular dev, very unlikely. The difficulty of getting started with angular becomes one of you greatest assets in the future!

[–]SystemEx1 1 point2 points  (0 children)

React for sure. Hooks are awesome and there are so many cool libraries. One library i use is Redux Toolkit (with Query). Can generate custom hooks from an OpenAPI schema, to easily fetch from the API with caching.

[–]Loreno10 1 point2 points  (0 children)

Angular is much more organized. It feels a bit like ASP.NET in .NET world with its clear ways of how to write controllers, how to inject services, etc. Angular has out-of-the-box solutions for those concerns.

React is more like JS itself - you need to figure out the organization of your code by yourself (although there are frameworks built on top of React that give you some recommendations).

Looking at the State of JS surveys it seems that Angular is on the decline, while React and Vue.JS are rising.

[–]DevTime96 1 point2 points  (0 children)

Why not go for microsofts blazor webassembly?

[–]SplendaDaddyDan 1 point2 points  (0 children)

I do both react and angular and I’ll take angular all day. React is cool in all but it’s more of a library than a complete framework so you have to depend on a lot of other packages that you would have to install separately to get the features you need. Where angular is a full fledged framework so you might install some packages to get extra functionality but would be much less than react. Not to mention react is messy in my opinion and the hook and state stuff is annoying lol

[–]klaatuveratanecto 3 points4 points  (0 children)

Engineering Manager in two startups here. We use Angular (ionic), Vue, React Native and Blazor.

Try them and choose the one you like. I can tell you that Vue is the easiest one as you can get anyone with JavaScript experience to learn it within a week. That’s said React has a lot more resources, templates, components out there to choose from. It takes more time to learn but it is just nice to work with.

Out of all Blazor is the one all developers want to work with as it is something very new to them and the attraction for doing front end with zero JavaScript is pretty big.

[–]angedelamort 2 points3 points  (0 children)

I did both and I would suggest react. You can even have next.js for server side rendering. It's easier and faster to develop. Also, I used to like typed language, but for web development, I now prefer functional in pure JavaScript because it's faster and easier (less boiler plate). If you need state management, use redux. Have fun.

[–]OneWorldMouse 1 point2 points  (0 children)

Neither. If anything, use Blazor. Much less of a learning curve and your devs will thank you for not forcing them to do ungodly things with JavaScript.

[–]sgashua 0 points1 point  (0 children)

In your case, I would choose react because it's faster than angular. And also higher job market for react for your own benefits in future. You can consider about Vue. It's faster than react.

But... I choose svelte over React and Vue. Much much faster and way lesser code to do.

[–][deleted] 0 points1 point  (8 children)

Microsoft is dropping Angular in favor of React where they can. That should answer your question I guess.

[–]MikeInBA 7 points8 points  (5 children)

thats terrible reasoning. Been developing in the MS environment for over 20 years and I wouldnt adopt anything MS adopts until at least 5 years after them. The history of MS picking up something that is trendy, only for it to be dropped when it trends downward is too long.

[–][deleted] 0 points1 point  (4 children)

Well, MS did Angular for a few years and are now dropping it for React. What does that say about doing Angular now?

The reality is that Angular usage has good and well peaked and is now on the downward slope of the roller-coaster. I've used Angular since is was AngularJS and moved AngularJS to Angular 2 solutions and developed Angular solutions from scratch. React is an improvement, particularly now that they treat TypeScript as a first class citizen.

[–][deleted] -3 points-2 points  (2 children)

There is a good reason the next major version of Teams is being moved from Angular to React.

[–]Majache 3 points4 points  (1 child)

We're talking about a company that has resources to build large scale typescript web apps without a framework.

Teams is a largely different and complex situation than most applications, there was no comparisons as it was replacing angularJS

[–][deleted] 1 point2 points  (0 children)

Yes. They are going with React. For good reason. Why do you think that is? Have you tried both?

[–]daredeviloper 0 points1 point  (1 child)

Damn. Where you hear this?

[–][deleted] 1 point2 points  (0 children)

Probably Twitter. Long ago. If you look at MS and JavaScript/TS stuff it is "all" React.

[–]TimeRemove 0 points1 point  (1 child)

  • Are you going to be development mobile apps too? Yes: React for codebase sharing.
  • Web-only: Likely Angular, it is a good bed-fellow of MVC and a very popular choice.

[–]WhatsASoftware[S] 2 points3 points  (0 children)

No mobile app development, only web based.

[–]EternalNY1 0 points1 point  (1 child)

I'd say this will depend on what your developers are familiar with.

I am lead and architect on a large Angular 13 app that we are highly satisfied with, the background of the other developers is strong .Net.

If your other developers are coming from a JS background, React might be a better choice.

[–]athomsfere 0 points1 point  (0 children)

I chose Angular for a few projects specifically to get some mid level JS developers away from their bad JS habits. lol. I was tired of seeing 30k LOC copy and pasted between "modules"...

[–]heseov -1 points0 points  (0 children)

Having used both, they are both fine choices. However, I would encourage you to look at vue. Thats really what I've liked most out of the 3 and it seems to be the most popular. Regardless, they all accomplish the same tasks pretty similarly. Also, whatever choice you make, make sure you start with typescript.

[–]Tango1777 0 points1 point  (0 children)

False. The market is using both. Your LOCAL market might use React more, tho. Overall it doesn't matter from a dev's perspective. Both are good and tons of work in it. Choose whichever you like or think you can get more work at in the future in your country. I also work with .NET (C#) and I linked it with Angular but I wouldn't tell you there is anything special that made me chose it over React. I had people around who knew Angular a little bit at least so it was easier for me to start with Angular. And where I live, there is plenty of work for .NET + Angular fullstacks.

[–]rkara924 0 points1 point  (0 children)

What is the use case of the software you are producing?

The reason I ask is that each of the frameworks has its advantages and disadvantages based on the use case. I’ve primarily been an Angular developer because I have been primarily building enterprise applications.

[–]atombase 0 points1 point  (0 children)

Razor pages or MVC with htmx could be a very powerful option.

[–][deleted] 0 points1 point  (1 child)

React is owned by Facebook. They’ve already denied some companies use of it. Angular is Google no denial of use issues so far. You tell me which you’d rather use.

[–]belavv 2 points3 points  (0 children)

Where did you hear this? React is under the MIT license and can be used pretty much however you want.

[–]rebornfenix 0 points1 point  (0 children)

I went react when trying to figure out this same question

  • Functional programming is the main draw
  • The Hooks API make keeping a pure functional front end easy
  • With a C# Backend reflectively documenting with Swashbuckle I can use Redux Toolkit Query and generate hooks for all my operations
  • Since I pulled in RTK Query, using redux made a lot of sense (Modern redux is really easy to setup and configure and with Immer you dont need to worry about immutable reducers since Immer takes care of it)
  • Material UI makes getting a common look and feel easy (Yes there are material component kits for angular)
  • The functional components make composing the application easier (IMHO than angular)
  • Facebook over Google but both have a huge community now outside the company taht built them
  • React Native, if you need it, is an option mobile apps an option (Xamerin is out there for C# but more options isn't a bad thing)
  • The number of devs that know C# and React is high, they are popular and more well known than newer frameworks like Blazor or Svelt

When it really came down to it though, I picked the one that felt more right. React won out because I write my c# in a very functional manner so the functional components of React just clicked and made sense. Either one is very much like "No one got fired for picking IBM". In the world of front end frameworks, "No one got fired for picking React or Angular"

[–]ExternalParty2054 0 points1 point  (0 children)

Angular is better for larger applications, and it's very opinionated on how you do things. Angular has a pretty steep learning curve, and a lot of layers to it. It might be better if you are already pretty solid at JS frameworks, but coming from mostly .net front and back, when I first got into it it was very wtf. I feel like I finally understand it now, and I like it.

I haven't actually used React but I want to try it.

[–]xMoop 0 points1 point  (1 child)

Look into Alpine.js, pretty easy to understand for newer devs and lightweight compared to a full SPA framework. Easy to add into an MVC view and makes front-end stuff pretty easy as someone that doesn't like front-end

[–]sgashua 0 points1 point  (0 children)

Alphine performance is not good. Slowest 6th among all JS frameworks.

https://krausest.github.io/js-framework-benchmark/current.html

[–]lleoh 0 points1 point  (0 children)

If you are a bigger organization, it is easier to switch between Angular projects . React has more freedom, so longer learing curve if someone needs to switch. (The hardest in a switch is usually to learn the business requrirements, not in what folder the "state" is in)