Need advice about which tool to choose?Ask the StackShare community!
ASP.NET Core vs React: What are the differences?
Introduction: ASP.NET Core and React are two popular technologies used in web development. ASP.NET Core is a cross-platform, open-source framework for building web applications, while React is a JavaScript library for building user interfaces. While both technologies have their own strengths and purposes, there are key differences between them.
Language and platform: ASP.NET Core uses C# as its primary language and can be used to develop web applications on Windows, macOS, and Linux. On the other hand, React is based on JavaScript and can be used for developing user interfaces in web applications.
Server-side vs client-side rendering: ASP.NET Core supports server-side rendering, where the HTML is generated on the server and sent to the client browser. This can help with initial page load times and improve SEO. React, on the other hand, is primarily used for client-side rendering, where the HTML is generated on the client side using JavaScript. This allows for more dynamic and interactive user interfaces.
Tooling and ecosystem: ASP.NET Core comes with a comprehensive set of tools and frameworks, such as Visual Studio and Entity Framework, which provide a rich development experience. It also has a large ecosystem of libraries and packages available for different purposes. React has its own set of tools, such as Create React App and React Developer Tools, and a vibrant ecosystem with numerous libraries and packages specifically tailored for building user interfaces with React.
Learning curve: ASP.NET Core, being a full-featured framework, has a steeper learning curve compared to React. It requires understanding concepts like server-side programming, routing, and database access. React, on the other hand, focuses solely on the user interface and has a simpler abstraction model, making it easier for developers to learn and get started with.
Component-based vs MVC architecture: ASP.NET Core follows the Model-View-Controller (MVC) architectural pattern, where the application is divided into models, views, and controllers. React, on the other hand, uses a component-based architecture, where the application is built by combining reusable components. This allows for better code organization, reusability, and maintainability in React applications.
Performance and scalability: ASP.NET Core, being a server-side framework, has the advantage of running on the server, which can handle heavy processing and database interactions. This can result in better performance and scalability for certain types of applications. React, on the other hand, focuses on the client-side rendering, which offloads some of the processing to the client's browser, resulting in a more responsive user interface.
In summary, ASP.NET Core and React have key differences in terms of language and platform, server-side vs client-side rendering, tooling and ecosystem, learning curve, architecture, and performance and scalability. Understanding these differences can help developers choose the right technology for their web development needs.
For context, I currently use JavaScript (React) and Python (Flask) in my daily routine.
I need your help in choosing either Spring Boot or ASP.NET Core. Both frameworks seem to have mature ecosystems. I would like to hear your thoughts on the following points:
- Difficulty level of both frameworks
- Level of community support
- Career prospects i.e do Spring based jobs pay more or vice versa
- which one will be helpful if I decide to transition towards a more specialized field like data engineering.
I am asking this because it is something that I am also exploring in parallel. I know that Python and #SQL play a huge role in big data.
I'll preface this by saying I haven't ever done work on the Microsoft stack, so take this with a grain of salt.
Community support: Java tends to have a more active community (and much more diverse universe of new open source projects) than .Net (related to below).
Difficulty level: I'd say the Java/Spring stack is more difficult because Java developers tend to use more community projects and have to know which ones to choose in which circumstances (e.g. what logging framework to use? What database connection pooling library to use? What testing framework to use). That being said, most decisions you have to make have choices that are vastly more popular than others. My impression is that .NET guys use stuff from the standard library almost exclusively. If it's not provided there, it's a problem they never thought to solve or maybe write their own (usually the former).
Career prospects: I'll get hate for this probably, but Java/Spring has more jobs than .Net. .NET Core even more so because it's new. Most .NET jobs out there are going to be not Core, and not on anything other than Windows. LinkedIn search for jobs in United States shows 97,103 for Java and 36,448 for C#. That's not to say some individual city might not have more .NET than Java, but by and large Java is bigger. Also, .NET is not dying at the same pace as say Ruby on Rails (sorry Rails fans). I'd say it's ticking very slowly lower, maybe even holding steady. I wouldn't say you're screwed career-wise if you choose .NET. C# is also pretty similar to Java from what I've seen, and I know professionals that have transitioned to Java (though interestingly, I don't know any that did the reverse). Several companies have basically no .NET footprint, for example, Amazon, Google, Facebook, LinkedIn, Twitter all have Java, but basically no C#.
Specialized fields: Neither Spring or .Net are going to be a thing in a field like data science. That's exclusively Python (some R) for the most part. The only exception being that there is some Java in Hadoop, and Scala in Spark (which runs on the JVM). But I think those are generally more for data products being created, and not data science work. I'm also under the impression this is increasingly less the case than historically. Some other specialties might make Java useful, for example Android development.
In short, Java is the COBOL of the modern enterprise (which is both a good and bad thing). I recommend it to anyone over .NET, but not for technical reasons. It's for reasons related to the questions you asked. There are actually reasons I think CLR and C# are actually better from a technical perspective than Java (unsurprisingly, since they had the benefit of hindsight). But that's not what you were asking about...
Spring boot helps you creating microservices in hours, not days and there is a very active community around it with amazing integrations. Check one of the tutorials maybe. At least here in Germany, the job market will be better for Spring Boot as well, there are a lot more companies using Java then C#.
ASP.NET Core is pretty new while spring boot is very old but with a different name. Spring boot is just a pack of spring packages which make your life easier. I also believe that java community is way stronger than c# community... You can do your job in both frameworks and it's up to you what you choose after-all you're going to work on the project/lead it ... but whatever you choose.. after a few days of investment stick with your decision because in both frameworks you'll encounter challenges :)
I’ll echo what others have said here with a few twists.
I have experience with both platforms including Micronaut, a relatively new kid on the block. It all depends on your near term goal. If it is to make money, sure Java jobs pay more generally because there is more hassles when dealing with the entire ecosystem. Like someone said earlier, you have to make a decision at almost every stage of the development cycle from the IDE, dependency resolution framework, logging, serialization, microservice framework etc. There is just too much choice which some may argue is an advantage while others may argue is a distraction and productivity killer. At the end of the day you can build solid systems with both frameworks.
Coming to ASP Core, yes I also agree that options are more streamlined. You’ll be using Visual Studio or Visual Studio code. For dependency management, you’ll be using Nuget. But I disagree with one of the comments above about the lack of choice. In some aspects .NET actually has more choice believe it or not for example choice of ORM. There is entity framework, nhibernate, dapper etc. For J2ee, hibernate reigns supreme although you have JPA. For dependency injection you have many IoC containers like unity, castle Windsor in .NET while you have Guice and maybe a Spring based implementation.
Also C# is technically a better language that Java. That’s not questionable as has also been stated above. Many things are done right obviously by avoiding some of the mistakes made in the underlying architecture surrounding the Java programming language. That’s why Microsoft created c# to begin with. The language is a lot cleaner and allows you to focus on learning core principles and nail down fundamental OO with emphasis on good design. I find too many distractions in the Java ecosystem which takes me away from understanding the core problem I am trying to solve.
So as you can this is not an easy decision and as someone has stated there’s work to do regardless of what technology choice you make.
If your sole purpose is to make a higher base salary, sure pick Spring Boot. If you want to quickly deliver something and iterate, pick ASP Core. I personally use c# for all private projects and proving concepts even though my employer is a Java shop. It allows me to stay focused on solving the problem and not constantly wrestle with issues such as Gradle dependency resolution glitches in IntelliJ.
Given that you can transfer skills from .NET to J2ee I recommend guys to pick up ASP get a couple of services to get a feel web development as you can still get jobs in Java even with that experience. Companies don’t care these days. In fact a lot of companies are going to Go so there’s that too.
Depends on your immediate term goal.
As a medium level .Net programmer trying to implementing a website, I decided to go through the Asp.Net Core. I found some tutorials on the web and started learning; however, I faced a problem. Even though I have been working with .Net and C# (mostly with unity game engine, which led to a quite amazing mobile game, published on a Persian app store) for two years or even more, by start learning Asp.Net Core, I found out that I do not know .Net as much as I expected. There were some things I should have learned before.
I searched for other frameworks, and Django was a popular one. Besides, I have planned to learn Python for machine learning. The website I want to make (with a small team) is nearly similar to Khan Academy. (We are going to use React for front-end)
So, What should I do? Continue working on .Net core with its amazing new features, or start getting into the Python and Django?
Your advice accompanied by reasons will be greatly appreciated!
Having worked with many J2EE database applications in the past, I now turn to Django if I can and the project allows it as it is so quick to get up and running. It has a logical workflow and organized structure and it comes with a high level of security (if you import the appropriate backends). If you are wanting to incorporate python-based data processing (or cython), it is relatively easy to write a backend plugin. I have found it more stable with updates than other frameworks (particularly compared to the NPM world such as React which so often descends into dependency hell when a version of something is updated). One hassle worth mentioning is the database migrations support which can sometimes mess up during development but there are workarounds. With a React frontend, you would be using the Django REST Framework (https://www.django-rest-framework.org/) so you may find that you have to overwrite a lot of the methods here as the defaults are fairly basic CRUD operations which don't really support nested relationships very well. I don't have any experience with .Net so I can't give a comparison except of course, the obvious one, portability, as Python is platform-independent. PS, I would recommend Vue over React also for a well organized front-end.
You can get done what you want with just about any modern framework and language.
Django is fast and easy to learn but as your website grows you will need more and more community apps whose release cycles do not keep up with Django. Unless you are willing to work on the community apps, Django may not be for you.
Compare the active community sizes of Django apps to Ruby on Rails apps and you'll see very active communities with Ruby on Rails and small Django communities. Don't switch to Ruby on Rails though--it is a small, dying community of enthusiasts.
ASP.NET Core is a great backend framework, the community is large and you can always find answers; however, according to the StackOverflow developer survey, it is not desirable for the majority of programmers. I still use it though because my background evolved from C to C++ and then to C#. I also like the Microsoft world.
I've programmed a lot using Angular and some React but am switching to Vue.js which is much easier to learn and faster to code in. Be sure to use TypeScript with Vue.js. Just watch the video on the Vue home page to see how fast he can code using Vue.
But do you really want to code a website from scratch? If not, try WordPress Elementor. It may save you tons of time.
For mobile, use Google Flutter. In my 35 years of professional programming I've never seen anything more elegant, easy to learn, well documented and beautiful than Flutter. From one a single base you can target both Android and IOS and soon Web. You can also develop in Android Studio which means your screen real estate requirements are small so you don't need two monitors.
I find myself in the opposite boat, I have made commercial websites with Django and now find myself learning ASP.NET. My recommendation comes with the following caveats... regardless of direction the learning will happen. Django is a very battery included framework, so the initial process will be painless, I found that documentation and support for more advanced use cases to be fairly easy to get support.
I personally found Django pretty nice to work with.
Go with the ASP.NET Core. It is a very mature technology now and there are tons of documentation, tutorials and support you can find online. Also ASP.NET Core Web API plays quite well with the React. It is easy to implement the entire back-end in .NET Core (APIs, authentication, database access layer...) and if you need any third party package, I'm pretty sure you will find and implement in a form of a NuGet package. Who knows, maybe one day you'll need to create a mobile app and with a fully functional Web API, it would be more-less easy task to build a mobile app on top of it.
I recommend you use a framework such as Firebase instead of implementing your own backend server for the website.
I found that Firebase enables me to build websites more quickly since it takes care of the backend for me so most of my development time is building the front-end (using React in your case).
If you're going to learn Python anyway, Django project will boost your learning process. Since you're going to use React , you only neet to create REST API. Basic API can be created with Django rather easy.
What is the best MVC stack to build mobile-friendly, light-weight, and fast single-page application with Spring Boot as back-end (Java)? Is Bootstrap still required to front-end layer these days?
The idea is to host on-premise initially with the potential to move to the cloud. Which combo would have minimal developer ramp-up time and low long-term maintenance costs (BAU support)?
React might be a good option if you're considering a mobile app for the future, because of react native. Although, Vue.js has the easiest learning curve and offers a better developer ramp-up time. Vue.js is great to build SPAs, very clean and organized and you won't have a lot of long-term maintenance problems (like AngularJS, for example). Bootstrap can still be used, but with flexbox there's no need anymore.
I recommend React because of less memory occupant compare to Angular, but this will depend on your organisation flexibility. When you use React you need to import different libraries as per your need. On the other side angular is a complete framework.
Performance-wise I vote for react js as it loads up quickly and lighter on the mobile. You can make good PWA with SSR as well.
If you are new to all three react will be a good choice considering, react-native will be useful if you want to build cross platform mobile application today or tomorrow. If you are talking about bootstrap styling framework than it's a choice you can style ur components by ur self or use bootstrap 4.0 framework. The complete stack mentioned above is platform agnostic u can run it anywhere you want be it cloud or on-premise.
I have a mission to make a web application for my organization (engineering consultant). With the following bullet points that the new web app has to cover, what is the right tool?
It should be able to display employee data and project data. For example, when searching the name of Mr. Peter Parker, I should be able to click on the name to see his personal profile and also a list of construction projects he is or was a part of. Also, if I click on a project name, say Project ABC building, it should show me the detail of this project (who is the client, who works on this project, where, start-finish dates, etc.)
It should be able to sync with the database from Microsoft Access.
(optional) 3. The user of this web app should be able to propose a rotation of role (Ex. Boss might want Mr. Peter Paker to work in another project next month, he can just drag Peter into XYZ Building.)
you can achieve what you want with both. but for me, the obvious choice is Aspnet core. the main reason is being the easiness of writing code in a multi-threading manner & ORM. the Django ORM is ugly as hell that I don't even want to look into its code. I did a couple of projects with Django and I wish I never did it. the amount of nuances was so much that after we delivered the projects I rejected any new Django project. I know people still using that and getting projects done but it's not a clever choice when there are easier choices out there.
moreover, after the latest upgrade, the Aspnet core 3 is the fastest and best of framework in 2020.
I always use Django on my projects. It is really easy and friendly fro the developer. It also comes with an inbuilt admin panel where you can manage all your models (tables), Django has a great authentication and authorization system, and it provides a great and powerful URL dispatcher, suitable for your needs. Furthermore, you can use a called django-pyodbc that is coded specifically for Microsoft SQL Server, and the SQL dialects for SQL Server ("T-SQL") and Access ("Access SQL"). However, I would not recommend using an Access DataBase with any web application's backend. Of course, it depends if you explicitly have Microsoft as your main tech stack.
Hope I helped you, and good luck with your project!
Would recommend Asp.net core with angular, It would integrate fine. I have experienced Django its good for fast, short span projects. But when it comes to speed, maintainability Asp .net is a winner. Though you can use angular/react in both frameworks. Your application consists of crud operations so you can have a choice based upon availability of resource, maintenance and time
Short answer, ASP.NET because of #2. I think the Microsoft stack, now and in the future will be easier to sync with Microsoft Access. I haven't done extensive research but usually Microsoft office apps work well with the MSFT stack. BUT I personally prefer Django.
We are coming from a C# background and we are trying to port our Windows Forms and WPF UIs to the browser. Our current UI is hosted in a "framework" which hosts all Windows and you can navigate in the program. As a back-end, we want to use ASP.Net Core to use some existing logic as well as database access logic. We already collected some experience in JS and TS and are able to create basic UIs in vanilla JS/TS. But we struggle a bit with navigation from one "App" to another "App".
What would be your recommendation?
Coming from C# I think you’ll find Angular comfortable. If you were more node/ruby/web developer savvy I’d probably recommend React.
Angular comes with everything you need out of the box, it’s a bit more opinionated framework. React is a series of libraries that you can patch together to tweak exactly how you like to web dev.
Have you tried Angular or React? They are frameworks for creating single page WebApps where the DOM is updated on a single webpage, what this means is that your app only loads once and thereafter it is as smooth as a native experience. What you can do is build one menu interface and then have multiple apps all running in the same project. Google Docs is a good example of this. Angular is easier to manage, but personally a bit jarring to get into and understand, whereas React is a bit messier, but easier to pick up.
I think react easy and fast to learn for you.
Simple datepickers are cumbersome. For such a simple data input, I feel like it takes far too much effort. Ideally, the native input[type="date"]
would just work like it does on FF and Chrome, but Safari and Edge don't handle it properly. So I'm left either having a diverging experience based on the browser or I need to choose a library to implement a datepicker since users aren't good at inputing formatted strings.
For React alone there are tons of examples to use https://reactjsexample.com/tag/date/. And then of course there's the bootstrap datepicker (https://bootstrap-datepicker.readthedocs.io/en/latest/), jQueryUI calendar picker, https://github.com/flatpickr/flatpickr, and many more.
How do you recommend going about handling date and time inputs? And then there's always moment.js, but I've observed some users getting stuck when presented with a blank text field. I'm curious to hear what's worked well for people...
In my view, the upside of React is you're likely to find more existing, robust design systems (e.g. sets of components containing anything from buttons to datepickers) in the React ecosystem than Vue. UI frameworks aside, momentjs comes in when you want operate on the date(times) you get back from whatever datepicker you choose (e.g. date formatting, date match).
I find using Vue.js to be easier (more concise / less boilerplate) and more intuitive than writing React. However, there are a lot more readily available React components that I can just plug into my projects. I'm debating whether to use Vue.js or React for an upcoming project that I'm going to use to help teach a friend how to build an interactive frontend. Which would you recommend I use?
I've used both Vue.js and React and I would stick with React. I know that Vue.js seems easier to write and its much faster to pick up however as you mentioned above React has way more ready made components you can just plugin, and the community for React is very big.
It might be a bit more of a steep learning curve for your friend to learn React over Vue.js but I think in the long run its the better option.
I chose to use Vue.js a few years ago mainly for the easy learning curve. I have no experience with React, so I won't make any comparison here. Regarding available components, I never felt locked in because of Vue when looking for components. It happens that a component I wish to use is not available as a Vue component (and nobody published any Vue wrapper for it), but in such cases I was able to quickly hack a Vue wrapper component. In the end I don't think a decision to choose one framework over another should be made solely because of the number of components available. (And not all components in either framework is maintained, bug free, documented or easy to use)
I would also go with React. The learning curve can be a little more difficult but as soon as you got the concepts it's really easy to create things. As everybody has mentioned the React community is huge and it keeps growing, anything you may need for your project there are super high probabilities that you will find it.
React is great, Vue.js is also great. But I'm personally using React, because React is changing the way I look at how JavaScript should be. This is a really big plus for me. Vue is good, but it's just another alternative. Also, too many big companies are using React, that means you can trust it for big projects.
I'd have to concur that I'd advise React. In addition to the reasons mentioned, the developer pool is significantly larger (and also slightly more expensive) for React. In time, engineering costs will even out as more and more teams adopt it. The community support is fantastic, and the available components significant.
Would start with Vue especially if you want to progress more quickly and don't want/need to spend time learning React just for the sake of it. You can always pick up React later if necessary. I would caution about using "more readily available React components" just because they exist.
Both have their pro's and con's; however to agree what has been mentioned here before; Using Vue.js will be easier as it's learning curve isn't steep; plus learning Vue.js will teach you fundamentals which (in a sense) can be applied to React as well. Community support for React is indeed very big, but Vue.js is also still growing. Component wise, I wouldn't worry to much about that, writing your own components is also a good tool for learning a language.
Anything that interacts with the Internet, websites, applications, etc., while it may be more complex to build, will be easier to maintain in the long run. React
offers more flexibility, a much larger support base for knowledge and opinion, and is just as stable asVue
.
To make the best comparison in my opinion, think of React
as the Android OS and Vue
more like iOS. While Vue
may be advantageous in some cases, it is limited by constricting parameters. On the other hand, while React
may be more complex and incorporate more open-source/third-party constructs, it is supported by over 50,000 npm packages and allows for the use of JSX. Which I might add, once learned, becomes second nature to employ and offers more flexibility.
Having developed in both Vue.js and React, I agree with your assessment of Vue. It does feel light and easier to understand and therefore learn. Seeing that Vue has some genetic roots with React, I would say start your friend out on Vue. If they need to learn React later, that should give them a good foundation. If you have a Pluralsight subscription, look for my course on Vue.js and feel free to use the demo project as a starting point.
VueJS hands down. Which components do you need? Have a look at Vuetify, mature project, plenty of components ready to plug and play. If on the other side you need more customization, have a look at tailwindcss. VueJS is much cleaner and IMO will overtake React soon. It's simply a better React.
I would recommend both of them since Vue is a UI library and helps you to design beautiful website while react allows you to handle backend problems like comment management and onspot reloading more efficiently also react includes useState and react is a framework while vue is a library
Virtual dom and JSX. Vue is just a baby to the race. React has it's mobile platform version as react native . so it would be easy for you and you wont reinvent the wheel again for mobile apps.
We did a comparison between React, Vue and Angular and while found each capable of supporting our needs, we ended up using VueJS because of its ease of use, the ability to use templates, large and growing community and good documentation. After developing on it for a around 4 months we re-evaluated and agreed that we had made the right choice and continue to migrate our products/platform to it.
As others have stated there are more canned components available for React, but your observation about it's complexity is an important one. There are architectural aspects of Vue.js that lead to cleaner more concise solutions. As React apps get bigger they become a little unwieldy. Depending on your requirements you need to weigh those competing concerns. Our team is using React, but I am beginning to question that choice as time goes on. Another consideration is that Vue.js is becoming more mature as we speak. Also as others join the project, react developers should be productive in Vue.js within days. Just my 2 cents...
It is hard to say which is good. I've used both. Vue is easier. But I feel more comfortable with React. That is why I chose React.
It all depends. Vue.js is smaller, and from what I saw (benchmarks) faster. It's also slightly more intuitive and easier to grasp. React is more popular, and the adoption rate is much higher.
Again, it all depends.
If I may, my personal choice would perhaps be either React or Svelte.
It was easier to find people who've worked on React than Vue. Angular did not have this problem, but seemed way too bloated compared to React. Angular also brings in restrictions working within their MVC framework. React on the other hand only handles the view/rendering part and rest of the control is left to the developers. React has a very active community, support and has lots of ready-to-use plugins/libraries available.
It is a very versatile library that provides great development speed. Although, with a bad organization, maintaining projects can be a disaster. With a good architecture, this does not happen.
Angular is obviously powerful and robust. I do not rule it out for any future application, in fact with the arrival of micro frontends and cross-functional teams I think it could be useful. However, if I have to build a stack from scratch again, I'm left with react.
Working on a new SaaS web/mobile app and ended up with React as our choice of Frontend JavaScript framework for SPA web version with React Native for iOS, Android, Windows clients.
The key takeaways:
Both frameworks can do the job quite well for us. This might be true for the majority of utility web apps being built out there as well, so there was no "wrong" decision here.
Vue is often cited as easier to learn and code on. But only in case your engineers never worked with either Vue or React and start learning them from scratch. In our case, we knew we'll be hiring engineers who already have experience in the framework we'll select - so it was not a big argument for Vue.
We're building our engineering team in Ukraine and realised we have 3(!) times more engineers with React experience on the market than having Vue experience.
Mobile - React Native, despite being a different framework, still shares a lot with React and it's just easier for React developers to start using React Native in days.
The strongest points for our decision:
React community is larger, means more/faster answers to your questions and existing components.
Way more experienced React engineers on the market.
React + React Native is a great combo if you're building web and mobile clients of the same app.
I used React not just because it is more popular than Angular. But the declarative and composition it gives out of the box is fascinating and React.js is just a very small UI library and you can build anything on top of it.
Composing components is the strongest asset of React for me as it can breakdown your application into smaller pieces which makes it easy to reuse and scale.
Svelte is everything a developer could ever want for flexible, scalable frontend development. I feel like React has reached a maturity level where there needs to be new syntactic sugar added (I'm looking at you, hooks!). I love how Svelte sets out to rebuild a new language to write interfaces in from the ground up.
Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:
- Nuxt.js consisting of Vue CLI, Vue Router, vuex, Webpack and Sass (Bundler for HTML5, CSS 3), Babel (Transpiler for JavaScript),
- Vue Styleguidist as our style guide and pool of developed Vue.js components
- Vuetify as Material Component Framework (for fast app development)
- TypeScript as programming language
- Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
- ESLint, TSLint and Prettier for coding style and code analyzes
- Jest as testing framework
- Google Fonts and Font Awesome for typography and icon toolkit
- NativeScript-Vue for mobile development
The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:
- Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
- Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
- Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
- Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
- Large scaling. Vue.js can help to develop pretty large reusable templates.
- Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
The project is a web gadget previously made using vanilla script and JQuery, It is a part of the "Quicktext" platform and offers an in-app live & customizable messaging widget. We made that remake with React eco-system and Typescript and we're so far happy with results. We gained tons of TS features, React scaling & re-usabilities capabilities and much more!
What do you think?
Comparing to ASP.NET Core MVC or ASP.NET Core Web API Simplify.Web allows you to easily build your web-site or REST API without any additional/complicated setup, covering cases like localization by default. It's projects structure very lightweight, just a minimum amount of what you need to setup ASP.NET Core request pipeline.
It is build on top of Simplify.DI IOC container abstraction, no dependency on Microsoft.Extensions.DependencyInjection and it's syntax. You can easily switch between DryIoc, SimpleInjector, CastleWindsor etc.
Any internal module of Simplify.Web can be easily replaced on extended by your custom module, covering your custom cases.
For HTML pages generation Simplify.Templates can be used allowing you to use just regular plain HTML without additional setup.
Can be easily integrated with Simplify.WindowsServices converting your web application not just to web-application, but a standalone windows service which can also do some background jobs via Simplify.WindowsServices.
And it is open source, of course :)
When I started TipMe, I thought about using React frontend. At the end, plain, simple jQuery won.
I had to build this iteration of the site fast and by using jQuery I could keep using Django as a full stack development tool. One important point is Django form (combined with Django Bootstrap3) means that I don't have to reinvent form rendering again, which will be the case with React.
Over time, more interactivity seeped into the site and React components start making its way into the codebase.
I now wish the site is built using React so that I could add more user friendly interfaces easier (no more fuddling with server states) but I would still say jQuery helped me get past those early days.
React has by far and away been our most important library choice throughout the history of Sellpy. It is a library that offers great flexibility supported by a really strong core. The React team is doing incredible work bringing quality features to the core project and tons of quality third party libraries fill in the gaps.
Pros of ASP.NET Core
- C#143
- Performance118
- Open source96
- NuGet90
- Easy to learn and use84
- Productive81
- Visual Studio77
- Fast73
- Fast Performance With Microservices70
- Easily Expose API67
- Cross Platform64
- Scalable61
- Rapid Development60
- Web Apps55
- Visual Studio Code46
- Easy to learn44
- Azure Integration39
- MVC38
- Professionally Developed Packages34
- Great MVC and templating engine with Razor32
- Signalr31
- Razor Pages31
- Dependency Injection30
- JetBrains Rider26
- Easy to start25
- Tooling24
- MVVM20
- One stop shop20
- Fantastic and caring community16
- Add a pro11
- High Performance10
- Linux Support9
- Native AOT4
- Free4
- Integration test easy & reliable3
- WASI/WAGI3
- Easy tooling to deploy on container3
Pros of React
- Components832
- Virtual dom673
- Performance578
- Simplicity508
- Composable442
- Data flow186
- Declarative166
- Isn't an mvc framework128
- Reactive updates120
- Explicit app state115
- JSX50
- Learn once, write everywhere29
- Easy to Use22
- Uni-directional data flow21
- Works great with Flux Architecture17
- Great perfomance11
- Javascript10
- Built by Facebook9
- TypeScript support8
- Server Side Rendering6
- Speed6
- Feels like the 90s5
- Excellent Documentation5
- Props5
- Functional5
- Easy as Lego5
- Closer to standard JavaScript and HTML than others5
- Cross-platform5
- Easy to start5
- Hooks5
- Awesome5
- Scalable5
- Super easy4
- Allows creating single page applications4
- Server side views4
- Sdfsdfsdf4
- Start simple4
- Strong Community4
- Fancy third party tools4
- Scales super well4
- Has arrow functions3
- Beautiful and Neat Component Management3
- Just the View of MVC3
- Simple, easy to reason about and makes you productive3
- Fast evolving3
- SSR3
- Great migration pathway for older systems3
- Rich ecosystem3
- Simple3
- Has functional components3
- Every decision architecture wise makes sense3
- Very gentle learning curve3
- Split your UI into components with one true state2
- Image upload2
- Permissively-licensed2
- Fragments2
- Sharable2
- Recharts2
- HTML-like2
- React hooks1
- Datatables1
Sign up to add or upvote prosMake informed product decisions
Cons of ASP.NET Core
- Great Doc5
- Fast3
- Professionally written Nuget Packages, vs IMPORT junk2
- Clean2
- Long polling is difficult to implement1
Cons of React
- Requires discipline to keep architecture organized41
- No predefined way to structure your app30
- Need to be familiar with lots of third party packages29
- JSX13
- Not enterprise friendly10
- One-way binding only6
- State consistency with backend neglected3
- Bad Documentation3
- Error boundary is needed2
- Paradigms change too fast2